2011-10-07 25 views
0

我有一个程序将与多个COM端口进行通信。截至目前,我已将所有的代码放在一个文件中,而且这是半麻烦的。我怎么能组织它以一种方式将所有串行连接和连接参数设置在其他位置,这样我就可以只读或写主文件中的端口。C++源代码组织 - COM端口初始化

下面是配置的一个例子,我的意思是

HANDLE hSerial = CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); 


DCB dcbSerialParams = {0}; 
dcbSerialParams.DCBlength=sizeof(dcbSerialParams); 

dcbSerialParams.BaudRate=CBR_9600; 
dcbSerialParams.ByteSize=8; 
dcbSerialParams.StopBits=ONESTOPBIT; 
dcbSerialParams.Parity=NOPARITY; 
+0

怎么样把你的功能发布的所有代码接受一个字符串,返回一个手柄?或者创建一个代表COM的类。 – stijn

回答

0

HANDLE hSerial = CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,.......

是唯一的每个COM端口的唯一事情是名称为“COM3”因此,这是所有你需要提供给功能。由Createfile返回的句柄完全标识了打开的端口,这是您读完/写入端口并在完成时关闭端口的唯一方法。

所以学习功能,通过在港口的名称,并返回手柄

0

另一个模块定义“T_COMport”类。添加足够的构造函数参数来设置端口,以及读/写方法,_DCB结构,所有那些令人讨厌的恼人的串口设置调用,以及任何线程或其他必要的东西,以使端口在您需要的情况下工作。也许是一个或两个rx数据或任何其他事件。像平常一样将模板放在头文件中,像往常一样将其包含在主应用程序中。

只是为每个端口创建一个实例并开始读取/写入内容。

RGDS, 马丁