用一个工作线程来发送询问命令,等待接收到下位机应答数据后退出。如果两秒下位机未应答,则重发询问命令。重发10次下位机不应答,则认为通信故障,
2011-05-03 23:29
555 查看
http://topic.csdn.net/u/20081107/09/69dbccb7-5da3-4b50-9792-8cd2df37f2b5.html
最后用线程同步的方法解决
//初始化同步事件
hTimer=::CreateEvent(NULL,FALSE,FALSE,NULL);
//线程中的相关代码
CRecordreaderView *m_pView = (CRecordreaderView *)lParam;
/////////////////////
发送查询命令相关代码
////////////////////
while(::WaitForSingleObject(hTimer,2000)==WAIT_TIMEOUT && m_pView-> m_iReSendcnt <10)
{
////////////////////////////////
发送查询命令相关代码(重发)
////////////////////////////////
m_pView-> m_iReSendcnt++;
}
m_pView-> m_iReSendcnt=0;
//接收到下位机应答数据后
::SetEvent(hTimer);//置进程同步变量
非常感谢各位大侠的帮助
最后用线程同步的方法解决
//初始化同步事件
hTimer=::CreateEvent(NULL,FALSE,FALSE,NULL);
//线程中的相关代码
CRecordreaderView *m_pView = (CRecordreaderView *)lParam;
/////////////////////
发送查询命令相关代码
////////////////////
while(::WaitForSingleObject(hTimer,2000)==WAIT_TIMEOUT && m_pView-> m_iReSendcnt <10)
{
////////////////////////////////
发送查询命令相关代码(重发)
////////////////////////////////
m_pView-> m_iReSendcnt++;
}
m_pView-> m_iReSendcnt=0;
//接收到下位机应答数据后
::SetEvent(hTimer);//置进程同步变量
非常感谢各位大侠的帮助
相关文章推荐
- 关于Socket通信中多个线程同时向一个服务端口发送数据时的注意点
- 手把手教你Android手机与BLE终端通信--连接,发送和接收数据
- 搭建一个服务器框架,进程间利用管道通信,线程处理数据
- 非阻塞TCP套接字的要点 发表于 2015-04-22 | 分类于 网络编程 | 套接字的默认状态是阻塞的。如果一个套接字不能立即完成相应的调用,那么该线程就会被投入睡眠,等待相应的操
- 编写一个聊天程序:有接收数据部分,和发数据的部分, 这两部分需要同时执行,使用多线程实现,一个控制接收,一个控制发送
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- 手把手教你Android手机与BLE终端通信--连接,发送和接收数据
- 网络通信中,DELPHI的string类型数据转换为C++字符串发送的一个陷阱
- 主窗口退出时等待工作线程退出
- Android新起线程 http请求数据发送 handler接收处理
- Web服务接收手机端发送过来的数据,分析判断后产生应答。
- Qt---接收下位机发送的hex数据(有待改进)
- 一个简单的socket服务端和客户端程序:客户端发送数据给服务端,服务端接收到数据后再给客户端发送数据
- NB-IOT之一个完整的BC95 UDP从开机到数据发送接收过程
- VC写串口通信遇到只能接收发送数据交替执行的情况
- [Socket网络编程]由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。
- 一个线程通信问题(sub运行10次,然后main运行100次,这样交替循环50次)
- 手把手教你Android手机与BLE终端通信--连接,发送和接收数据
- Socket处理发送和接收数据包,一个小实例:
- iOS 一个在UDP/TCP通信时,对16进制、10进制、NSData等数据之间的转换发送等处理的工具类库,一行代码将16进制字符串轻松转换成UDP需要的指令数据