?? ch341pt.bas
字號(hào):
Attribute VB_Name = "CH341PTDLL"
' 2005.07.28
'****************************************
'** Copyright (C) W.ch 1999-2005 **
'** Web: http:'www.winchiphead.com **
'****************************************
'** DLL for USB interface chip CH341 **
'** C, VC5.0 **
'****************************************
'
' USB總線接口芯片CH341端口應(yīng)用層接口庫 V1.0
' 南京沁恒電子有限公司 作者: W.ch 2005.07
' CH341-Port-DLL V1.0
' 運(yùn)行環(huán)境: Windows 98/ME, Windows 2000/XP
' support USB chip: CH341, CH341A
' USB => Serial, Parallel
'
Public Const MAX_DEVICE_PATH_SIZE = 128 ' 設(shè)備名稱的最大字符數(shù)
Public Const MAX_DEVICE_ID_SIZE = 64 ' 設(shè)備ID的最大字符數(shù)
Declare Function CH341PtGetVersion Lib "CH341PT.DLL" () As Long ' 獲得DLL版本號(hào),返回版本號(hào)
Declare Function CH341PtHandleIsCH341 Lib "CH341PT.DLL" (ByVal iPortHandle As Long) As Boolean ' 指定已經(jīng)打開的端口句柄
' CH341PtHandleIsCH341 檢查已經(jīng)打開的端口是否為CH341端口
' iPortHandle ' 指定已經(jīng)打開的端口句柄
Declare Function CH341PtNameIsCH341 Lib "CH341PT.DLL" (ByVal iPortName As String) As Boolean
' CH341PtNameIsCH341 檢查指定名稱的端口是否為CH341端口
' iPortName 指定端口名稱,例如"COM3","COM15"等,該端口必須未被占用(指未被其它程序打開)
' 端口設(shè)備事件通知回調(diào)程序
' sub mPCH341PT_NOTIFY_ROUTINE (byval iDevIndexAndEvent as long) ' 端口設(shè)備序號(hào)和事件及當(dāng)前狀態(tài)(參考下行說明)
' iDevIndexAndEvent: 正數(shù)說明是設(shè)備插入事件/已經(jīng)插入, 負(fù)數(shù)說明是設(shè)備拔出事件/已經(jīng)拔出, 其絕對(duì)值是設(shè)備序號(hào)(1到255)
Declare Function CH341PtSetDevNotify Lib "CH341PT.DLL" (ByVal iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean ' 指定端口設(shè)備事件回調(diào)程序,為NULL則取消事件通知,否則在檢測(cè)到事件時(shí)調(diào)用該程序
' CH341PtSetDevNotify 設(shè)定端口設(shè)備事件通知程序
' iDeviceID, 可選參數(shù),指向以\0終止的字符串,指定被監(jiān)控的設(shè)備的ID或者不含序號(hào)的主名稱,對(duì)于串口該參數(shù)必須為NULL或者"COM"
' iNotifyRoutine 指定端口設(shè)備事件回調(diào)程序,為NULL則取消事件通知,否則在檢測(cè)到事件時(shí)調(diào)用該程序
'/* 即插即用設(shè)備的應(yīng)用程序編程參考
'1. 主程序啟動(dòng),默認(rèn)是禁止數(shù)據(jù)傳輸?shù)?,只有在確定有CH341端口可用并且打開端口后才進(jìn)行數(shù)據(jù)傳輸
'2. 調(diào)用CH341PtSetDevNotify設(shè)置插拔監(jiān)視,如果將來發(fā)生CH341端口的插拔事件DLL將會(huì)自動(dòng)調(diào)用iNotifyRoutine所指定的子程序或者函數(shù)
'3. 從端口1到端口255(正常到20即可)逐個(gè)調(diào)用CH341PtNameIsCH341確定是否為CH341端口,如果返回是則記憶其端口號(hào)并打開后開始傳輸,如果返回否則休息
'4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件參數(shù)后通知主程序處理,也可以在該子程序中處理,
' 分析事件參數(shù),如果是正數(shù)則說明有一個(gè)端口插入,需要打開時(shí)應(yīng)該首先用CH341PtNameIsCH341判斷是否為CH341端口,是則記憶其端口號(hào)并打開后開始傳輸,
' 如果是負(fù)數(shù)則說明有一個(gè)端口拔出,判斷其端口號(hào)(用0減去該負(fù)數(shù)得端口號(hào))是否與記憶的已打開的端口號(hào)相同,是則應(yīng)該及時(shí)關(guān)閉
'5. 當(dāng)前已經(jīng)打開的端口號(hào)應(yīng)該保存為全局變量, 如果端口未打開或者被關(guān)閉,那么應(yīng)用程序應(yīng)該停止數(shù)據(jù)傳輸
'6. 如果事先未用CH341PtNameIsCH341確定是否為CH341端口,那么在端口已經(jīng)打開后,也可以調(diào)用CH341PtHandleIsCH341判斷是否為CH341端口
'*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -