رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران

er.khanaki

کاربـــر عـــــادی
  • تعداد ارسال ها

    3
  • تاریخ عضویت

اعتبار در سایت

0 خوب

درباره er.khanaki

  • تاریخ تولد تعیین نشده
  1. er.khanaki

    مشکل رو رفع کردم : Q_INVOKABLE QString getData(); public slots: void emitSignal(); signals: void mySignal(); بعد با کد زیر سیگنال readyRead رو به slot ساخته شده متصل کردم QObject::connect(_serialport,SIGNAL(readyRead()),this,SLOT(emitSignal())); void serialPort::emitSignal() { emit mySignal(); } QString serialPort::getData() { QByteArray serialData; QString serialBuffer = ""; serialData = _serialport->readAll(); serialBuffer = QString::fromStdString(serialData.toStdString()); qDebug() << serialBuffer; return serialBuffer; } کد در qml SerialPort { id:serialport onMySignal: { txtCommunication.append(getData()); } } فعلا به این شکل رفعش کردم . اگر کسی راه حل بهتری داشت. ممنون می شم کدش رو برام بگذارد. به نظرم اگر بشه از خود سیگنال readyRead استفاده کنه عالی میشه.
  2. er.khanaki

    تشکر برای جواب تابع getdata برای qml فراخوانی کردم مشکل اینجاست وقتی در textarea این تابع رو فراخوانی میکنم فقط یک بار اجرا میشه. TextArea { id:txtCommunication anchors.fill: parent; readOnly: true text: serialport.getData(); } درخود کلاس qserialport یک سیگنال وجود دارد که هر وقت دیتا ای در حال دریافت می باشد تابع getData رو اجرا میکنه. مشکل زمانی به وجود می یاد که می خوام هر و وقت تابع getData اجرا می شه و داده ها از سریال پورت دریافت می شود به صورت اتوماتیک به qml ارسال شده و در textarea نمایش دهد. . QObject::connect(_serialport,SIGNAL(readyRead()),this,SLOT(getData())); یا هر وقت تابع getData اجرا شد و داده هارو دریافت کرد یک سیگنال در qml اجرا شده و کد زیر هم اجرا بشود. mySignal:txtCommunication.serialport.getData()
  3. سلام به همه دوستان. یک کلاس سی داریم که ارتباط سریال رو انجام میده و من با این کد qmlRegisterType<serialPort>("io.qt.Serial.SerialPort", 1, 0, "SerialPort"); کلاس سی رو نمونه سازی کردم در qml. مشکل اینجاست که چطور زمانی که در سی و توسط پورت سریال اطلاعاتی رو دریافت کردم textarea در qml مقادیر رو نمایش بده. کد دریافت از سریال در کلاس سی ++ QString serialPort::getData() { QByteArray serialData; QString serialBuffer = ""; serialData = _serialport->readAll(); serialBuffer = QString::fromStdString(serialData.toStdString()); qDebug() << serialBuffer; return serialBuffer; } textarea in qml Rectangle { id:containerTextArea width: parent.width anchors.top: container.bottom anchors.bottom: btnClearTextCommunication.top color: "#e0e0eb" TextArea { id:txtCommunication anchors.fill: parent; readOnly: true } } نمونه سازیم کلاس سی++ SerialPort { id:serialport }
×
×
  • جدید...