金刚石合成控制系统中多串口通信技术的设计与实现
>
virtual~CSerialPort();??//析构函数
//InitPort()函数实现初始化串口
BOOLInitPort(
char*str=“com1”,
UINTBaudRate=9600,
UINTParity=0,
UINTByteSize=8,
UINTStopBits=1,
UINTReadMultiplier=0,
UINTReadConstant=0,
UINTWriteMultiplier=10,
UINTWriteConstant=1000);
DCBGetDCB();?//获得DCB参数
//SetDCB()函数实现设置DCB参数
BOOLSetDCB(
UINTBaudRate=9600,
UINTParity=0,
UNITByteSize=8,
UINTStopBits=1);
//GetTimeOuts()函数获得超时参数
COMMTIMEOUTSGetTimeOuts();
//SetTimeOuts()函数设置超时参数
BOOLSetTimeOuts(
UINTReadMultiplier=0,
UINTReadConstant=0,
UINTWriteMultiplier=10,
UINTWriteConstant=1000);
//WritePort()函数实现写串口操作
voidWritePort(HANDLEport,CString);
CStringReadPort(HANDLEport);//读串口操作
BOOLClosePort();?//关闭串口
};
下面对该类的重要函数作以说明:
(1)在构造函数CSerialPort()中已对该类的数据成员进行了初始化操作。
(2)初始化串口函数InitPort()函数用于完成串口的初始化工作,包括打开串口、设置DCB参数、设置通信的超时时间等。
打开串口使用CreateFile()函数,其中InitPort()函数中的第一个参数为要打开的串口,通常将该参数赋给CreateFile()函数中的第一个参数;设置DCB参数应调用该类中的SetDCB()函数,并将InitPort()函数中的第2至第5参数赋给SetDCB()函数;设置通信的超时时间应调用该类中的SetTimeOuts()函数,并将InitPort()函数中的第6至第9参数赋给SetTimeOuts()函数。另外,该串口是系统资源,应该根据不同要求对其安全属性进行设置。
(3)SetDCB()函数用于设置DCB参数,包括传输的波特率、是否进行奇偶校验、每字节长度以及停止位等。
(4)SetTimeOuts()函数用于设定访问的超时值,根据设置的值可以计算出总的超时间隔。前面两个参数用来设置读操作总的超时值,后面两个参数用来设置写操作总的超时值。
(5)WritePort()函数用来完成向串口写数据。由于该系统需要对多个串口进行通信,所以首先应把串口号作为参数传递给该函数;接着该函数把按参数传递过来的、要发送的数据进行编码(也就是加入校验,这样能减少误码率),然后再调用WindowsAPI函数WriteFile()并把数据发送到串口。
(6)ReadPort()函数用来完成从串口读数据,由于有多个串口,所以应把串口作为参数传递进来,然后调用API函数ReadFile(),并把下位机发送到串口,数据读出来放到缓存里面,接着对数据进行处理以将其变换成字符
串(CString)类型并返回。
(7)GetDCB()函数主要用于获得串口的当前配置,可通过调用API函数GetCommState()来实现,然后再进行相应的处理。
(8)G 《金刚石合成控制系统中多串口通信技术的设计与实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174470.html
virtual~CSerialPort();??//析构函数
//InitPort()函数实现初始化串口
BOOLInitPort(
char*str=“com1”,
UINTBaudRate=9600,
UINTParity=0,
UINTByteSize=8,
UINTStopBits=1,
UINTReadMultiplier=0,
UINTReadConstant=0,
UINTWriteMultiplier=10,
UINTWriteConstant=1000);
DCBGetDCB();?//获得DCB参数
//SetDCB()函数实现设置DCB参数
BOOLSetDCB(
UINTBaudRate=9600,
UINTParity=0,
UNITByteSize=8,
UINTStopBits=1);
//GetTimeOuts()函数获得超时参数
COMMTIMEOUTSGetTimeOuts();
//SetTimeOuts()函数设置超时参数
BOOLSetTimeOuts(
UINTReadMultiplier=0,
UINTReadConstant=0,
UINTWriteMultiplier=10,
UINTWriteConstant=1000);
//WritePort()函数实现写串口操作
voidWritePort(HANDLEport,CString);
CStringReadPort(HANDLEport);//读串口操作
BOOLClosePort();?//关闭串口
};
下面对该类的重要函数作以说明:
(1)在构造函数CSerialPort()中已对该类的数据成员进行了初始化操作。
(2)初始化串口函数InitPort()函数用于完成串口的初始化工作,包括打开串口、设置DCB参数、设置通信的超时时间等。
打开串口使用CreateFile()函数,其中InitPort()函数中的第一个参数为要打开的串口,通常将该参数赋给CreateFile()函数中的第一个参数;设置DCB参数应调用该类中的SetDCB()函数,并将InitPort()函数中的第2至第5参数赋给SetDCB()函数;设置通信的超时时间应调用该类中的SetTimeOuts()函数,并将InitPort()函数中的第6至第9参数赋给SetTimeOuts()函数。另外,该串口是系统资源,应该根据不同要求对其安全属性进行设置。
(3)SetDCB()函数用于设置DCB参数,包括传输的波特率、是否进行奇偶校验、每字节长度以及停止位等。
(4)SetTimeOuts()函数用于设定访问的超时值,根据设置的值可以计算出总的超时间隔。前面两个参数用来设置读操作总的超时值,后面两个参数用来设置写操作总的超时值。
(5)WritePort()函数用来完成向串口写数据。由于该系统需要对多个串口进行通信,所以首先应把串口号作为参数传递给该函数;接着该函数把按参数传递过来的、要发送的数据进行编码(也就是加入校验,这样能减少误码率),然后再调用WindowsAPI函数WriteFile()并把数据发送到串口。
(6)ReadPort()函数用来完成从串口读数据,由于有多个串口,所以应把串口作为参数传递进来,然后调用API函数ReadFile(),并把下位机发送到串口,数据读出来放到缓存里面,接着对数据进行处理以将其变换成字符
串(CString)类型并返回。
(7)GetDCB()函数主要用于获得串口的当前配置,可通过调用API函数GetCommState()来实现,然后再进行相应的处理。
(8)G 《金刚石合成控制系统中多串口通信技术的设计与实现(第2页)》