找回密码
 立即注册
收起左侧

QSerialBus类使用问题

1
回复
3875
查看
[复制链接]
累计签到:147 天
连续签到:1 天
来源: 2019-10-22 18:40:34 显示全部楼层 |阅读模式
1Qter豆
想请问一下Qt带的modbus类具体用法,目前根据示例教程做的一个串口传输ModbusRTU主站,能够发送数据到下位机了,但是却等不到finish信号,无法接收下位机的返回数据啊

if (auto *reply = client->sendReadRequest(QModbusDataUnit(QModbusDataUnit::InputRegisters,1000,3),0x01))
{
if (!reply->isFinished())
connect(reply, &QModbusReply::finished, this, &learn::read_ready);
else
{
delete reply; // broadcast replies return immediately
qDebug()<<"应答结束";
}
}



目前存在进不去 read_ready 函数问题,下位机的 modbus 从站没问题,使用 modbuspoll 测试了

回复

使用道具 举报

累计签到:147 天
连续签到:1 天
2019-10-23 20:06:19 显示全部楼层
官方的文件里已经执行过连接,但是串口事件就是无法导致槽函数执行
  1. m_serialPort = new QSerialPort(q);

  2.         QObject::connect(&m_responseTimer, &Timer::timeout, q, [this](int timerId) {
  3.             onResponseTimeout(timerId);
  4.         });

  5.         QObject::connect(m_serialPort, &QSerialPort::readyRead, q, [this]() {
  6.             onReadyRead();
  7.         });
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了