网络传真软件Window同步串行通信类的实现
为了网络传真使用方便,将Windows串口通信API封装到同步通信类中,在此节选部分代码,来说明实现过程。
(1)创建电子传真通信句柄。
_com_handle=CreateFile(
com_sl:r’,
GENERIC_READ I GENERIC_WRITE,
OPEN_EXISTING,
FILE_AITRIBUTE_NORMAL,
中第六个参数设置通信类型,如果是同步通信方式,采用//FILE AITRIBUTENORMAL,如果是异步通信方式,采用//FILE一AITRIBUTE—NORMAL l FILE一FIAG— OVERLAPPED。
SetupComm(_com_handle,in_buf,_out_buf);//设置推荐缓冲区。
SetCommState(_com_handle,&-dcb);//设置串口参数:波特率,停止位等。
SetCommTimeouts(_com_handle,&一co);//设置超时时间。
PtlrgeComm(_com_handle, PURGE_TXABORT I PURGE_RXABORT I PURGE_TX-
ClEAR l PURGE_RXCLEAR);//清空串口缓冲区。
(2)传真群发同步读方法。
if(ClearCommError(一com_handle,&error,&stat)&&error>O)//清除错误
PurgeComm(_com_handle, PURGE_RXABORT I PURGE_RXCLEAR);
ReadFile(_com_handle, buf, buf_len, &r_len, NULL);
(3)群发传真同步。
if(ClearCommError( _com_handle,&error,NULL)&&error>O)//清除错误
PurgeComm( _com_handle, PURGE_TXABORT I PURGE_TXCLEAR);
WriteFile(_com_handle, buf, buf_len, &w_len, NULL);
FlushFileBuffers(_com_handle);//等待数据写完。