下位机个数不会很多,不会超过10个,一天估计只需要轮询几次就可以,用一个标志设置分机故障是个办法,主要是轮询谁有好的方法,就是设置定时器?还有超时定时器?我轮询到一个设备可能要发几条指令来回控制操作,才能轮询下一个,我用的是CSerial Port类,只会开启监听线程,这样轮询通信,界面响应不会受影响吧?
解决方案 »
- ActiveX的调试
- MFC中,选择Combo Box列表不同的下拉项时在编辑框显示不同的内容
- 【在线等】为什么通过ATL 事件映射sink event就不能get_event?
- memset(m_szCommand, 0, sizeof(m_szCommand));
- 如何从CSPC1View中调用其他类的函数
- VC的win32下同DOS的CLRSCR函数是什么?
- 奇怪的CTreeCtrl 错误!高瘦帮忙
- 为什么我的IDC_EDIT控件不能编辑呢
- 菜鸟的一个小问题
- 新手请教!
- Win Hook 捕获 Win +D 这样的 组合键啊???
- 求助:ListCtrl 的CheckBox快速点击时GetState不变
在OnTimer调用CSerialPort打开端口,然后在启一个Timer事件,定时发送(时间间隔可以长一点,这样就无啥超时处理了,反正通讯要求不高)就可以了。接收线程用来处理接收数据即可。如果收到,则做个正常标识,未收到,则做个超时或故障标识即可。如果考虑到一次通讯不成功,则可以考虑所有设备或故障设备多通讯几次轮询完毕,退出接收线程 ,关闭CSerialPort打开的端口。我想这样就满足你的需求了。
不知这种思路是否满足?