2011-10-07 53 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, 馬丁