ورود

View Full Version : سریال پورت در qml



ali_72
شنبه 19 دی 1394, 13:49 عصر
سلام

سمپل سریال پورت برای qt زیاده ولی نمیدونم من که از qml استفاده میکنم چطور استفاده کنم

ممنون میشم راهنمایی کنید

با امید تقریبا 0 درصد این تاپیک رو می نویسم

اگه دوستان تونستن راهنمایی کنن که چقدر خوب
اگه نشد آخرش که باید در بیاد
جوابش رو اینجا بنویسم :لبخند:

negative60
شنبه 19 دی 1394, 18:40 عصر
QML فقط يک رابط کاربری هست
سورس برنامه شما با ++c هست که هم ميتونيد از کلاس های کيوت بهره ببريد هم کتابخونه های ديگه که برای ++c موجود هست

ali_72
یک شنبه 20 دی 1394, 08:19 صبح
QML فقط يک رابط کاربری هست
سورس برنامه شما با ++c هست که هم ميتونيد از کلاس های کيوت بهره ببريد هم کتابخونه های ديگه که برای ++c موجود هست

ممنون دوست عزیز
بله میدونم
ولی مثلا ارتباط با دوربین و تنظیمات اون با خود qml انجام شد
خواستم ببینم برای ارتباط با پورت سریال چه کارهایی میشه انجام داد
که البته من هم در جستجو به نتیجه ای که شما گفتید رسیدم

ali_72
یک شنبه 20 دی 1394, 11:38 صبح
من تصمیم به اجرا مثال زیر از سایت qt داشتم

http://doc.qt.io/qt-5/qtserialport-creaderasync-example.html

با کد زیر در main.cpp:


#include <QApplication>#include <QQmlApplicationEngine>
#include <QtSerialPort/QSerialPort>
#include "serialportreader.h"


int main(int argc, char *argv[])
{
QApplication app(argc, argv);


QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));




QStringList argumentList = QCoreApplication::arguments();


QTextStream standardOutput(stdout);
int argumentCount = QCoreApplication::arguments().size();
if (argumentCount == 1) {
standardOutput << QObject::tr("Usage: %1 <serialportname> [baudrate]").arg(argumentList.first()) << endl;
return 1;
}


QSerialPort serialPort;
QString serialPortName = argumentList.at(1);
serialPort.setPortName(serialPortName);


int serialPortBaudRate = (argumentCount > 2) ? argumentList.at(2).toInt() : QSerialPort::Baud9600;
serialPort.setBaudRate(serialPortBaudRate);


if (!serialPort.open(QIODevice::ReadOnly)) {
standardOutput << QObject::tr("Failed to open port %1, error: %2").arg(serialPortName).arg(serialPort.errorString() ) << endl;
return 1;
}


SerialPortReader serialPortReader(&serialPort);


return app.exec();
}




ولی خطای زیر را دارم:


138299

negative60
یک شنبه 20 دی 1394, 15:24 عصر
اين ماژول رو در فايل pro. پروژه اضافه کرديد؟

QT += serialport

اين لينکی که قرار داديد تو خود Qt Creator وجود داره مثل اين مثال (http://doc.qt.io/qtcreator/creator-build-example-application.html) انجام بديد مونتها بجای dock , سريال(serial) رو سرچ کنيد