QModbusRtuSerialMaster 重置输出队列
Posted
技术标签:
【中文标题】QModbusRtuSerialMaster 重置输出队列【英文标题】:QModbusRtuSerialMaster reset output queue 【发布时间】:2020-01-27 20:40:54 【问题描述】:有没有办法重置 QModbusRtuSerialMaster 实例的输出队列。
我认为另一端已被它无法处理的重试饱和,导致 QModbusRtuSerialMaster 重试使问题变得更糟。
如果某个特定消息在一段时间后没有回复,则可能的解决方案是重置输出队列,删除挂起的请求。
我查看了源代码和文档,但没有看到任何明显的方法。
我猜只是关闭并重新打开它不会立即刷新队列,而是等待队列清除。
【问题讨论】:
【参考方案1】:我不认为你可以。虽然可能有一些解决方法:例如关闭连接,或者由于请求队列是在内部处理的,您可以减少 timeout 和 number of retries。
另外,我认为如果你的slave无法处理请求,你应该改变你的业务逻辑以减少请求或创建自己的队列并以不同的时间发送。
【讨论】:
以上是关于QModbusRtuSerialMaster 重置输出队列的主要内容,如果未能解决你的问题,请参考以下文章