PURGE_TXABORT);
for (;;) file://只要线程运行,就处于监视端口行为的无限循环
{
bResult = WaitCommEvent(m_hComm, &Event, &m_ov);
file://m_ov是OVERLAPPED类型的成员变量
if (!bResult)
{ file://进行出错处理}
else
{
Event = WaitForMultipleObjects(4, m_hEvent, FALSE, INFINITE);
file://无限等待设定的事件发生,数组m_hEvent根据需要定义了须响应的接收,发送,关闭端口事件和OVERLAPPED类型的hEvent事件
switch (Event)
{ file://读写事件的响应处理过程,在此略}
}
return 0;
}
这样监控主程序就可以使用AfxBeginThread()函数来产生CommThread串口监控线程。如果要实现对所有端口的同时监控,可以分别对端口建立监控线程。
5 小结
作为一个机房监控系统的组成部分,本串口通信程序在VC++6.0下编译通过,在使用windows 98/NT的局域网里运行良好。
……