星期四, 1月 27, 2005

SerialCtl and SerialThread

SerialCtl      and SerialThread

是一個polling mode的Serial port 通訊class。

因為是polling mode,為了不要block 整個程式的動作,通常用一個thread來執行SerialCtl。這個Thread不斷的poll COM PORT reading,並且提供一個interface,讓外部經由Thread 控制SerialCtl作Sending,Open,Close COM PORT的動作。

所以實際讓外界接觸到的應該是SerialThread Class。SerialCtl只是將WINAPI包裝起來的Class。


SerialCtl


SerialCtl
~SerialCtl


setStatus

return   : void
argument :  
    BOOL on_off

**** 沒有implement ****

openPort

return   : bool
argument :
    DCB             dcb
    const char*     portName="COM1"

使用WINAPI (CreateFile,GetCommState,SetCommState,SetCommTimeouts),開啟COM PORT (由argument : port_Name指定)。並且依照dcb的內容設定COM PORT。


read_scc

return   : bool
argument :
    char                   *inputData
    const unsigned int&    sizeBuffer
    unsigned long&         length

使用WINAPI (ReadFile) 向COM Port讀取資料。


write_scc

return : bool
argument :
    LPCVOID                data
    const unsigned int&    sizeBuffer
    unsigned long&         length

用WINAPI (WriteFile) 向COM PORT寫入 length數量(單位: byte)的資料。


getHandlePort

return   : HANDLE
argument : void

**** 沒有implement ****


getStatusPort

return   : bool
argument : void

傳回port的open/close狀態

沒有留言:

張貼留言