摘自:http://www.yesky.com/201/1734701.shtml
在現代的各種實時監控系統和通訊系統中,在windows 9x/nt下利用vc++對rs-232串列埠程式設計是常用的手段。
本程式以動態連線庫(dll)形式實現對多串列埠的操作,mscomm串列埠通訊控制項在基於對話方塊的程式中很好使用,但在基於文件的程式不能直接使用該控制項,且生成的可執行檔案不能適用於不同的計算機。
windows通訊一般都以wosa(windows open services architecture,即windows開放式服務體系)模型
程式進行資料交換。windows對序列口的讀寫也不例外,通過呼叫win32的串列埠通訊api函式,即可編寫序列通訊程式。本dll是基於api函式的。
一、 多串列埠dll功能
(一) 串列埠引數設定
對rs-232-c串列埠進行引數配置是使用串列埠進行通訊的必要條件。而且由於場合不同、用途、功能的不同對串列埠也採取不同的配置方式,為了使本程式更靈活,適應面更廣,採取將所有的可能引數都預先設定在幾個組合框中,可以在程式執行後隨時更改設定。
圖1 串列埠引數設定介面
串口號: 自動檢測計算機存在的串列埠,但只能控制從com1到com5,能滿足絕大多數人的需求。
是否使用:如果選中,則表示要對該串列埠進行初始化,以及收發控制。否則表示對計算機存在的串列埠不操作。
波特率:從1200bps到57600bps。
校驗:有無校驗(noparity)。
資料位:7位或是8位。
停止位:1位、1.5位或是2位。
流控制:有無流控制(flow)。
(二) 串列埠收發資料除錯顯示
在進行串列埠操作時,尤其是在除錯期間,需要知道串列埠的收發資料。本dll提供串列埠收發資料的顯示介面。
圖2 串列埠收發資料ascii顯示介面
圖3 串列埠收發資料16進製制顯示介面
(三) 串列埠引數設定檔案
串列埠引數設定檔名為mscommset.ini,該檔案儲存在工程工作目錄下,如果沒有該檔案,串列埠按預設值設定,在設定串列埠引數後,自動生成該設定檔案。其內容如下:
[0串列埠資訊]
use=1
baud=2400
port=1
databits=8
stopbits=1
flow=0
parity=n
[1串列埠資訊]
use=1
baud=2400
port=2
databits=8
stopbits=1
flow=0
parity=n
[2串列埠資訊]
use=0
baud=2400
port=1
databits=8
stopbits=1
flow=0
parity=n
[3串列埠資訊]
use=0
baud=2400
port=4
databits=8
stopbits=1
flow=0
parity=n
[4串列埠資訊]
use=0
baud=2400
port=1
databits=8
stopbits=1
flow=0
parity=n
二、 多串列埠dll的作用
本dll 提供三個檔案serialapidll.dll,serialapidll.lib和multiserialapi.h。在應用時,要把這三個檔案拷貝到相應的目錄下,並且要作如圖4的設定。詳見示例工程。
圖4 應用工程連線設定介面
三、 多串列埠dll主要函式使用說明
1.bool oncommscreate(cwnd* pparentwnd);
建立串列埠,本dll同時建立32個串列埠。pparentwnd為視窗指標,一般為this。
2. bool oncomportopen();
根據串列埠設定檔案中的設定引數,開啟多串列埠。
3.void oncommsend(unsigned int uicom, cstring ssenddata, unsigned int uikind);
往指定串列埠傳送資料。其中uicom為指定的串列埠,注意串列埠1的uicom為0;ssenddata為要傳送的字串; uikind: 傳送資料型別:0:原始資料 1:加回車符 2:加校驗和。
4.void onmscommsset();
開啟串列埠設定介面,改變串列埠設定,並儲存到設定檔案中。
5.bool oncomporttimerprocess(cstring strprocess[maxport]);
判斷串列埠接收的一組資料是否已經接收完。
6. bool onpopupdialog();
開啟串列埠收發資料顯示除錯介面。
VC介面解決方案
vc介面解決方案 關鍵字 vc 簡介 vc採用delphi裡邊成熟的介面元件vclskin,vclskin有原始碼,有一百多個,將它做成dll來用,效果相當不錯。二 效果預覽 例項中的效果如下圖 效果預覽 三 呼叫方法 建立vc工程skintest,vc的建立就不具體介紹了,新增 如下 宣告 hmo...
多版本( 30)並行控制的解決方案
之前也寫了和轉了一些解決方案,發現並沒有乙個能完全符合自己需求的方式,於是在現有的方案中取各家精華,盡量規避各種坑,形成了現在的管理模式,可以看做 是 fork 機制的另一種實現方式。fork 是同乙個賬戶只能 對同乙個專案 fork 一次,無法滿足我的要求 單版本庫多分支簡直滅絕人性,分支數量多到...
USB轉串列埠晶元解決方案
usb轉串列埠晶元解決方案 ch340 usb轉串列埠晶元。一般成本比較低。黑色塑料封裝的也比較常見。驅動安裝為,乙個2.77m的ch341 w7.exe。直接安裝就可以了。不確定時候需要重啟。一般重啟是不會帶來問題的,所以,可以重啟電腦再試。其餘的有待補充。ft232bl 這種方案也用過。將rx和...