Qt modbus相关类QModbusClient踩坑记录

11 篇文章 4 订阅

qt 5.9.2读写串口,利用QModbusClient类,频繁读写时,运行一定时间后(20分钟、1小时……)串口发不出去数据,加上手动给它重连后经常会报异常,然后就是直接退出,debug最后的信息是

qt.modbus: (Client) Device is not connected
"in SerialModbus::sendModbusRawRequestBlock_test: Device not connected."
ASSERT failure in processQueue: "send timer active", file qmodbusrtuserialmaster_p.h, line 290
Debugging has finished

后来看到网友的帖子(原文链接:https://blog.csdn.net/libingjy/article/details/118364968):

qt5.12.10 modbus 读写串口操作

两种崩溃情况,做下记录免得后来者继续踩坑

assert failure in processqueue unexpected state

assert failure in processqueue response timer active
 

解决方案:

5.13 的qt版本修复了这个问题

qt全版本离线包下载地址https://download.qt.io/archive/qt/

装上Qt5.13 .0后这个问题不再出现,这里感谢网友的分享

qtmodbus踩坑记录_libing的专栏-CSDN博客

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt是一种跨平台的应用程序开发框架,而Modbus是一种通信协议,用于在不同设备之间传输数据。在Qt中,可以使用Qt Modbus库来实现Modbus TCP通信。 Qt Modbus库提供了一组功能丰富的和方法,方便开发者在Qt应用程序中实现Modbus TCP通信。通过引入Qt Modbus库,开发者可以方便地创建Modbus TCP客户端或服务器,在这两种模式下进行通信。 使用Qt Modbus库,首先需要创建一个QTcpSocket对象,并使用它来建立与Modbus TCP服务器的连接。然后,可以创建一个QModbusClient或QModbusServer对象,进行数据的读取和写入。 在Modbus TCP客户端模式下,可以使用QModbusTcpClient来读取和写入Modbus寄存器的数据。开发者可以使用相关方法发送读取请求或写入请求,并通过信号槽机制来获取响应数据。 在Modbus TCP服务器模式下,可以使用QModbusTcpServer来监听来自客户端的请求,并根据请求进行相应的数据读取和写入。开发者需要实现相应的槽函数来处理客户端请求,并发送响应数据。 Qt Modbus库还提供了一些其他实用工具,例如QModbusDataUnit、QModbusReply等,用于处理Modbus TCP通信中的数据单元和响应。 总结来说,Qt Modbus库提供了一套方便实用的和方法,用于在Qt应用程序中实现Modbus TCP通信。通过使用Qt Modbus库,开发者可以快速构建Modbus TCP客户端或服务器,并实现数据的读取和写入等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值