公司网站的建设要注意什么网站需要流量
news/
2025/9/24 6:38:08/
文章来源:
公司网站的建设要注意什么,网站需要流量,怎样做网络推广引流,抖音代运营怎么取消老套路#xff0c;一图胜千言#xff0c;框图可能有点随意#xff0c;后面我会解释 先描述下背景#xff0c;编程语言是QT5 C,在Modbus线程内有一个死循环#xff0c;一直在读8个线圈的状态#xff0c;该线程内读到的消息会直接发送给UI线程#xff0c;UI线程会解析Modb…老套路一图胜千言框图可能有点随意后面我会解释 先描述下背景编程语言是QT5 C,在Modbus线程内有一个死循环一直在读8个线圈的状态该线程内读到的消息会直接发送给UI线程UI线程会解析Modbus数据帧然后拿到8个布尔值如果发现M1的值为true就发送置位信号该信号连接到了Modbus线程其实就是将一个置位命令添加到队列。 ModBus线程一直也在判断队列是否为空如果不为空就发送置位数据帧且本次循环略过发送读取状态的命令因为判断用户队列和读取状态的代码块是if else的关系最后呈现的现象是每次都会收到两次置位信号有时甚至是三次经过一天半的折腾各种打日志分析加互斥量加标志位我认知范围内的办法上齐了依然解决不了。后来通过打印每个消息发送的时间大概猜到了问题就是说当Modbus线程接收到数据帧会马上发送给UI线程但是在死循环下一个周期的时候判断队列依然是空的于是它又读了一次又发送了一次数据帧直到死循环的第三个周期才判断到队列内有命令了然后才发送了置位信号所以呈现出的现象就是读到了两次置位信号其实为题就出在我在Modbus线程接收到数据后并没有处理而是原封不动的发给了UI线程等UI线程处理完添加命令到队列的时候Modbus线程的死循环已经又跑了一次了就造成了这个现象。后来通过加标志位的方式解决了这个问题。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915097.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!