• 3338阅读
  • 2回复

[提问]Qt5自带的QSerialbus类使用问题 [复制链接]

上一主题 下一主题
离线search
 

只看楼主 倒序阅读 楼主  发表于: 2019-10-23
现在通过自带的serialbus类使用ModbusRTU
  1. QT       += core gui
  2. QT       += serialbus serialport
目前问题是发出数据后一直没有完成信号,一直不执行read_ready函数,但是下位机使用modbuspoll测试过了正常收发。
  1. reply = client->sendReadRequest(data,1);
  2.     if (reply)
  3.     {
  4.     if (!reply->isFinished())
  5.     {
  6.          connect(reply, &QModbusReply::finished, this, &learn::read_ready);
  7.     }
现在运行后控制台只打印了发出的数据,没有打印返回的数据,也没提示超时接收
  1. qt.modbus: (RTU client) Sent Serial PDU: 0x0300000002
  2. qt.modbus.lowlevel: (RTU client) Sent Serial ADU: 0x010300000002c40b
想请问一下解决方法,程序是在windows平台运行的
离线search

只看该作者 1楼 发表于: 2019-10-23
官方的文件里执行了信号与槽的连接,可是槽函数却不会执行
  1. m_serialPort = new QSerialPort(q);
  2.         
  3.         QObject::connect(&m_responseTimer, &Timer::timeout, q, [this](int timerId) {
  4.             onResponseTimeout(timerId);
  5.         });
  6.         QObject::connect(m_serialPort, &QSerialPort::readyRead, q, [this]() {
  7.             onReadyRead();
  8.         });

离线zxwmail

只看该作者 2楼 发表于: 2019-10-24
Qt自带的modbus通讯例子先看看,
快速回复
限100 字节
 
上一个 下一个