BOOL CCOMReadBuf::GetOneByte(BYTE *cb) |
(四) 控制命令的發(fā)送
控制命令可以從對(duì)話條上的編輯框獲取,然后就可以通過(guò)寫(xiě)文件形式從端口發(fā)送出去,這部分實(shí)現(xiàn)起來(lái)較簡(jiǎn)單,也牽扯不到線程等技術(shù)。主要的代碼主要有:
…… |
(五) 監(jiān)測(cè)信息的顯示
本程序選擇了列表視圖作為數(shù)據(jù)的顯示途徑。為了能及時(shí)的將接收到的數(shù)據(jù)反饋給監(jiān)控者,在視類中通過(guò)定時(shí)器完成定時(shí)刷新的功能,可以在視類的OnCreate() 函數(shù)里用SetTimer(……)函數(shù)在程序開(kāi)始執(zhí)行時(shí)打開(kāi)定時(shí)器,在OnDestroy()里用KillTimer(……)函數(shù)在程序退出前先關(guān)閉定時(shí)器。在定時(shí)器消息 WM_TIMER的響應(yīng)函數(shù)里完成向列表控件添加最新接收到的信息。主要語(yǔ)句有:
…… |
四、 調(diào)試與檢測(cè)
現(xiàn)在程序已經(jīng)寫(xiě)完,可以編譯運(yùn)行。我們最好先檢驗(yàn)一下機(jī)器串口是否能正常工作,可用DOS下的Comdebug程序檢查。在確認(rèn)串口工作正常后,如果條件允許最好同另一臺(tái)計(jì)算機(jī)或外設(shè)相連,進(jìn)行檢測(cè),如筆者用的是一臺(tái)高頻段數(shù)傳電臺(tái)。如果只有一臺(tái)計(jì)算機(jī)也可以進(jìn)行簡(jiǎn)單的測(cè)試:將計(jì)算機(jī)串口的第2腳和第3腳短接,即自己發(fā)送、接收數(shù)據(jù)。如果接有外設(shè),當(dāng)有采集到的數(shù)據(jù)送到端口時(shí)就會(huì)在列表中將時(shí)間和信息內(nèi)容記錄下來(lái),也可以在對(duì)話條中輸入命令來(lái)控制外設(shè)的工作狀態(tài),完全具備實(shí)時(shí)監(jiān)控軟件所需的功能。
小結(jié):
串行通訊在通訊領(lǐng)域被廣泛應(yīng)用,標(biāo)準(zhǔn)的RS-232-C接口已成為計(jì)算機(jī)、外設(shè)、交換機(jī)和許多通訊設(shè)備的標(biāo)準(zhǔn)接口。計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)等都可以通過(guò)RS-232-C接口進(jìn)行方便的連接,以實(shí)現(xiàn)監(jiān)視、控制外設(shè)和傳輸數(shù)據(jù)等目的。對(duì)于其他類型的串口通訊程序本文所介紹的方法也是值得借鑒的。本程序由
Microsoft Visual C++ 6.0編譯、在Windows 98下運(yùn)行通過(guò)。





