Attribute VB_Name = "Driver_Module"
'***********************************************************
' 用于AD采集的引數結構
Type USB2813_PARA_AD
FirstChannel As Long ' 首通道,取值范圍為[0, 15]
LastChannel As Long ' 末通道,取值范圍為[0, 15]
InputRange As Long
GroundingMode As Long
End Type
' AD硬體引數(USB2813_PARA_AD)中的InputRange模擬量輸入范圍所使用的選項
Public Const USB2813_INPUT_N10000_P10000 = &H0 ' ±10000mV(默認配置)
Public Const USB2813_INPUT_N5000_P5000 = &H1 ' ±5000mV
Public Const USB2813_INPUT_N0_P10000 = &H2 ' 0~10000mV
' AD引數(USB2813_PARA_AD)中的GroundingMode使用的模擬信號接地方式選項
Public Const USB2813_GNDMODE_SE = &H0 ' 單端方式(SE:Single end)
Public Const USB2813_GNDMODE_DI = &H1 ' 雙端方式(DI:Differential)
'***********************************************************
' 8253計數器控制字
Type USB2813_PARA_CNT ' 計數器控制字(CONTROL)
OperateType As Byte ' 操作型別
CountMode As Byte ' 計數方式
CountType As Byte ' 計數型別
End Type
' USB2813_PARA_CNT_CTRL引數結構體各成員使用的選項
' 操作型別(OperateType)
Public Const USB2813_OPT_TYPE_0 = &H0 ' 計數器鎖存操作
Public Const USB2813_OPT_TYPE_1 = &H1 ' 只讀/寫低位元組
Public Const USB2813_OPT_TYPE_2 = &H2 ' 只讀/寫高位元組
Public Const USB2813_OPT_TYPE_3 = &H3 ' 先讀/寫低位元組,后讀/寫高位元組
' 計數方式(CountMode)
Public Const USB2813_CNT_MODE_0 = &H0 ' 計數方式0,計數器結束中斷方式
Public Const USB2813_CNT_MODE_1 = &H1 ' 計數方式1,可編程單次脈沖方式
Public Const USB2813_CNT_MODE_2 = &H2 ' 計數方式2,頻率發生器方式
Public Const USB2813_CNT_MODE_3 = &H3 ' 計數方式3,方波頻率發生器方式
Public Const USB2813_CNT_MODE_4 = &H4 ' 計數方式4,軟體觸發選通方式
Public Const USB2813_CNT_MODE_5 = &H5 ' 計數方式5,硬體觸發選通方式
' 計數型別(BCD)
Public Const USB2813_CNT_TYPE_BIN = &H0 ' 計數型別0,二進制計數
Public Const USB2813_CNT_TYPE_BCD = &H1 ' 計數型別1,BCD碼計數
'***********************************************************
' 用于開關量輸出的引數結構
Type USB2813_PARA_DO ' 數字量輸出引數
DO0 As Byte ' 0通道
DO1 As Byte ' 1通道
DO2 As Byte ' 2通道
DO3 As Byte ' 3通道
DO4 As Byte ' 4通道
DO5 As Byte ' 5通道
DO6 As Byte ' 6通道
DO7 As Byte ' 7通道
End Type
'***********************************************************
' 用于開關量輸入的引數結構
Type USB2813_PARA_DI ' 數字量輸入引數
DI0 As Byte ' 0通道
DI1 As Byte ' 1通道
DI2 As Byte ' 2通道
DI3 As Byte ' 3通道
DI4 As Byte ' 4通道
DI5 As Byte ' 5通道
DI6 As Byte ' 6通道
DI7 As Byte ' 7通道
End Type
'***********************************************************
' CreateFileObject中的Mode引數使用的檔案操作方式控制字(可通過或指令實作多種方式并操作)
Public Const USB2813_modeRead = &H0 ' 只讀檔案方式
Public Const USB2813_modeWrite = &H1 ' 只寫檔案方式
Public Const USB2813_modeReadWrite = &H2 ' 既讀又寫檔案方式
Public Const USB2813_modeCreate = &H1000 ' 如果檔案不存可以創建該檔案,如果存在,則重建此檔案,并清0
'######################## 常規通用函式 #################################
Declare Function USB2813_CreateDevice Lib "USB2813" (Optional ByVal DeviceLgcID As Integer = 0) As Long ' 創建設備物件(使用設備邏輯號)
Declare Function USB2813_CreateDeviceEx Lib "USB2813" (Optional ByVal DevicePhysID As Integer = 0) As Long ' 創建設備物件(使用設備物理號), DevicePhysID指定的物理號由板上DID拔碼器實作)
Declare Function USB2813_GetDeviceCount Lib "USB2813" (ByVal hDevice As Long) As Integer ' 取得USB2813在系統中的設備數量
Declare Function USB2813_GetDeviceCurrentID Lib "USB2813" (ByVal hDevice As Long, ByRef DeviceLgcID As Long, ByRef DevicePhysID As Long) As Boolean ' 取得當前設備的物理ID號和邏輯ID號
Declare Function USB2813_ListDeviceDlg Lib "USB2813" () As Boolean ' 用對話框串列系統當中的所有USB2813設備
Declare Function USB2813_ResetDevice Lib "USB2813" (ByVal hDevice As Long) As Boolean ' 復位整個USB設備
Declare Function USB2813_ReleaseDevice Lib "USB2813" (ByVal hDevice As Long) As Boolean ' 設備句柄
'####################### AD資料讀取函式 #################################
Declare Function USB2813_InitDeviceAD Lib "USB2813" (ByVal hDevice As Long, ByRef pADPara As USB2813_PARA_AD) As Boolean
Declare Function USB2813_ReadDeviceAD Lib "USB2813" (ByVal hDevice As Long, ByRef ADBuffer As Integer, ByVal nReadSizeWords As Long, ByRef nRetSizeWords As Long) As Boolean ' 實際回傳資料的長度(字)
Declare Function USB2813_ReleaseDeviceAD Lib "USB2813" (ByVal hDevice As Long) As Boolean ' 停止AD采集,釋放AD物件所占資源
'################# AD的硬體引數操作函式 ########################
Declare Function USB2813_SaveParaAD Lib "USB2813" (ByVal hDevice As Long, ByRef pADPara As USB2813_PARA_AD) As Boolean
Declare Function USB2813_LoadParaAD Lib "USB2813" (ByVal hDevice As Long, ByRef pADPara As USB2813_PARA_AD) As Boolean
'####################### DA資料輸出函式 #################################
' 適于大多數普通用戶,這些介面最簡單、最快捷、最可靠,讓用戶不必知道設備
' 低層復雜的硬體控制協議和繁多的軟體控制編程,僅用下面一個函式便能輕
' 松實作高速、連續的DA資料輸出
Declare Function USB2813_WriteDeviceDA Lib "USB2813" (ByVal hDevice As Long, ByVal nDALsb As Integer, ByVal nDAChannel As Integer) As Boolean
'##################### 計數器控制函式 ##########################
Declare Function USB2813_InitDeviceCNT Lib "USB2813" (ByVal hDevice As Long, ByRef pCNTPara As USB2813_PARA_CNT, ByVal InitCNTVal As Integer, ByVal nCNTChannel As Integer) As Boolean
Declare Function USB2813_GetDeviceCNT Lib "USB2813" (ByVal hDevice As Long, ByRef CNTValue As Long) As Boolean
'####################### 數字I/O輸入輸出函式 #################################
Declare Function USB2813_SetDeviceDO Lib "USB2813" (ByVal hDevice As Long, ByRef pDOPara As USB2813_PARA_DO) As Boolean ' 開關狀態
Declare Function USB2813_GetDeviceDI Lib "USB2813" (ByVal hDevice As Long, ByRef pDIPara As USB2813_PARA_DI) As Boolean ' 開關狀態
'########################## 檔案操作函式 ####################################
Declare Function USB2813_CreateFileObject Lib "USB2813" (ByVal hDevice As Long, ByVal strFileName As String, ByVal Mode As Integer) As Long ' 檔案操作方式
Declare Function USB2813_WriteFile Lib "USB2813" (ByVal hFileObject As Long, ByRef pDataBuffer As Integer, ByVal nWriteSizeBytes As Long) As Boolean ' 緩沖區大小(位元組)
Declare Function USB2813_ReadFile Lib "USB2813" (ByVal hFileObject As Long, ByRef pDataBuffer As Integer, ByVal OffsetBytes As Long, ByVal nReadSizeBytes As Long) As Boolean ' 從偏移位置開始讀的位元組數
Declare Function USB2813_SetFileOffset Lib "USB2813" (ByVal hFileObject As Long, ByVal nOffsetBytes As Long) As Boolean ' 檔案偏移位置(以字為單位)
Declare Function USB2813_GetFileLength Lib "USB2813" (ByVal hFileObject As Long) As Long ' 取得指定檔案長度(位元組)
Declare Function USB2813_ReleaseFile Lib "USB2813" (ByVal hFileObject As Long) As Boolean
Declare Function USB2813_GetDiskFreeBytes Lib "USB2813" (ByRef strDiskName As String) As Currency ' 獲得指定盤符的磁盤空間(注意使用64位變數)
'############################ 執行緒操作函式 ################################
Declare Function USB2813_CreateSystemEvent Lib "USB2813" () As Long ' 創建內核系統事件物件
Declare Function USB2813_ReleaseSystemEvent Lib "USB2813" (ByVal hEvent As Long) As Boolean ' 釋放內核事件物件
Declare Function USB2813_CreateVBThread Lib "USB2813" (ByRef hThread As Long, ByVal StartThread As Long) As Boolean
Declare Function USB2813_TerminateVBThread Lib "USB2813" (ByVal hThreadHandle As Long) As Boolean
'################# 其他附加函式 ########################
Declare Function USB2813_EnableShowMessage Lib "USB2813" (Optional ByVal bShowMessage As Boolean = False) As Boolean ' 是否讓驅動程式自動彈出錯誤資訊提示對話框
Declare Function USB2813_DelayTimeUs Lib "USB2813" (ByVal nUs As Integer)
Declare Function USB2813_kbhit Lib "USB2813" (void) As Boolean