3.5 从串口读取数据函数ReadCom
ReadCom函数从给定串口读取一个字节的数据,如ReadCom (COM1),其源代码如下。
byte ReadCom (int port) {
unsigned int nRet;
nRet = bioscom (2, 0, port); /*从端口读取一个字节*/
return (byte)(nRet & 0xff);
}
该函数与IsCom函数配套使用,即IsCom返回QueueIsNotEmpty时,就使用ReadCom读取该字节。
3.6 通用数据发送函数SendData
以上函数可以方便地初始化串行接口,进行单字节的发送和接收。但是,在实际的计算机监控系统中,数据是以若干字节组成的协议为单位进行收发的,因而,设计通用和可靠的串口通信协议的发送与接收函数,可以大大节省系统开发时间,这也是计算机监控系统中的关键技术。本文设计了一个通用串口数据发送函数SendData,可以从指定的串口nPort发送字节数组ComData,其中,下标为0的字节表示该字节数组的长度,其它为待发送的字节,其源代码如下。
void SendData(int nPort, byte *ComData)
{
int nlength, i;
nlength = ComData[0]; /*取字节数组的长度*/
for(i=0; i<nlength; i++) ToCom(nPort, ComData[i+1]);
}
SendData函数首先取得字节数组的长度,然后,在for循环中调用ToCom函数,逐个发送字节。
|