VC 多串列埠控制解決方案 API版

2021-05-21 21:59:41 字數 2394 閱讀 7162

摘自: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和...