2012年10月22日 星期一
自動搜尋ComPort+MSComm+傳輸模組=自定義控制項 For VB6
本以為會很難, 好佳在只遇到一些小問題, 拜google大神之賜也都順利排除, 底下是這個自定控件的原來樣子
一個picturebox+一個MSComm控制項, 會合成下面那個控制項
拉到表單會變成這樣, 在運行程式時, 它會自隱藏, 就像MSComm控件一樣, 有了這個東西能做什麼呢?
這可好用了, 你只要給這個控件你的SerialPortName(這個名稱在注冊表裡), 和你想傳給你的USB virtual ComPort(目前是內定成Pic的Device)的指令字串, 如下
dim TransferCommandString(5) as string
TransferCommandString(0)="L" => L是指byte mode, H是指word mode
TransferCommandString(1)="W" => W是指I2C的Write, 也可以是R=Read, C=Receive,S=send
TransferCommandString(2)="6C" => 6C是指I2C Device的Address
TransferCommandString(3)="01" => 01是指I2C Device的Command Addr
TransferCommandString(4)="11" => 11是指I2C Device的low byte data(選擇byte mode就只到這裡)
TransferCommandString(5)="22" =>22是指I2C Device的high byte data(選擇Word mode才有這個指令)
ComPort1.SerialPortName="\Device\USBSER000" => 這個指Pic在注冊表裡的名稱
ComPort1.ConnectPicDevice => 按照SerialPortName去找Device, 一但找到會自動設定MSComm相關屬性, 並打開它
ComPort1.Output=TransferCommandString => 把你的指令陣列送到Pic去做處理
這樣就完成了, 自己都覺得很方便, 而且它是做成控件, 以後一拉出來就不用再把以前的程式剪來貼去, 程式變得簡潔, 好維護, 更重要的是它是會自動搜尋comport的number, 依注冊表名稱找到後, 會自動設定MSComm的相關屬性(目前是固定, 也許以後可以改成user自己設定), 相當人性化, 下一個文章是再把輸入指令的部份+Comport的控件就變成一個完整的I2C for USB virtual ComPort控件, 指令可自由輸入, 也同時支援byte mode and word mode, 繼續努力囉~~
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言
歡迎大家來討論交流一下~~~