?? module1.bas
字號:
Attribute VB_Name = "Module1"
'定義需要用到的數據結構
Public Type VCI_BOARD_INFO '系列接口卡的設備信息。結構體將在VCI_ReadBoardInfo函數中被填充
hw_Version As Integer '硬件版本號,用16進制表示。比如0x0100表示V1.00
fw_Version As Integer '固件版本號,用16進制表示
dr_Version As Integer '驅動程序版本號,用16進制表示
in_Version As Integer '接口庫版本號,用16進制表示
irq_num As Integer '板卡所使用的中斷號
can_num As Byte '表示有幾路CAN通道
str_Serial_Num(19) As Byte '此板卡的序列號
str_hw_Type(39) As Byte '硬件類型
Reserved(3) As Integer '系統保留
End Type
Public Type VCI_CAN_OBJ '該結構體在VCI_Transmit和VCI_Receive函數中用來傳送CAN信息幀
ID As Long '報文ID
TimeStamp As Long '接收到信息幀時的時間標識,從CAN控制器初始化開始計時
TimeFlag As Byte '是否使用時間標識,為1時TimeStamp有效,TimeFlag和TimeStamp只在此幀為接收幀時才有意義
SendType As Byte '發送幀類型,=0時為正常發送,=1時為單次發送,=2時為自發自收,=3時為單次自發自收,只在此幀為發送幀時才有意義
RemoteFlag As Byte '是否時遠程幀
ExternFlag As Byte '是否是擴展幀
DataLen As Byte '數據長度(<=8),即Data的長度
data(7) As Byte '報文的數據
Reserved(2) As Byte '系統保留
End Type
Public Type VCI_CAN_STATUS '該結構體包含CAN控制器狀態信息,結構體將在VCI_ReadCANStatus函數中被填充
ErrInterrupt As Byte '中斷記錄,讀操作會清除
regMode As Byte 'CAN控制器模式寄存器
regStatus As Byte 'CAN控制器狀態寄存器
regALCapture As Byte 'CAN控制器仲裁丟失寄存器
regECCapture As Byte 'CAN控制器錯誤寄存器
regEWLimit As Byte 'CAN控制器錯誤警告限制寄存器
regRECounter As Byte 'CAN控制器接收錯誤寄存器
regTECounter As Byte 'CAN控制器發送錯誤寄存器
Reserved As Long '系統保留
End Type
Public Type VCI_ERR_INFO '該結構體用于裝載VCI庫運行時的錯誤信息。該結構體將在VCI_ReadErrInfo函數中被填充
ErrCode As Long '錯誤碼
Passive_ErrData(2) As Byte '當產生的錯誤中有消極錯誤時表示為消極錯誤的錯誤標識數據
ArLost_ErrData As Byte '當產生的錯誤中有仲裁丟失錯誤時表示為仲裁丟失錯誤的錯誤標識數據
End Type
Public Type VCI_INIT_CONFIG '該結構體定義了初始化CAN的配置。該結構體將在VCI_InitCAN函數中被填充
AccCode As Long '驗收碼
AccMask As Long '屏蔽碼
Reserved As Long '保留
Filter As Byte '濾波方式
Timing0 As Byte '定時器0(BTR0)
Timing1 As Byte '定時器1(BTR1)
Mode As Byte '模式
End Type
''注:PCI5121的設備類型號為1 ; CAN232的設備類型號為6
''此函數用以打開設備 DeviceType-設備類型號 DeviceInd-設備索引號 (注:比如當只有一個PCI5121時,索引號為0。但當CAN232時:0表示要打開的時COM1,1表示要打開的時COM2) Reserved-在CAN232中有意義,在其他設備中無意義 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_OpenDevice Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal Reserved As Long) As Long '
''此函數關閉設備 DeviceType-設備類型號 DeviceInd-設備索引號 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_CloseDevice Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long) As Long '
''此函數用以初始化指定的CAN DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN InitConfig-初始化結構參數 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_InitCAN Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef InitConfig As VCI_INIT_CONFIG) As Long '
''此函數獲取設備信息 DeviceType-設備類型號 DeviceInd-設備索引號 info-用來存儲設備信息的VCI_BOARD_INFO結構指針 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_ReadBoardInfo Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByRef info As VCI_BOARD_INFO) As Long '
''此函數用以獲取最后一次錯誤信息 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN ErrInfo-用來存儲錯誤信息的VCI_ERR_INFO結構指針 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_ReadErrInfo Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef ErrInfo As VCI_ERR_INFO) As Long '
''此函數用來獲取CAN狀態 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN CANStatus-用來存儲CAN狀態的的VCI_CAN_STATUS結構指針 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_ReadCANStatus Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef CANStatus As VCI_CAN_STATUS) As Long '
''此函數用來獲取設備的相應參數 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN RefType-參數類型 data-用來存儲參數有關數據緩沖區地址首指針 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_GetReference Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByVal RefType As Long, ByRef data As Any) As Long '
''此函數用來設置設備的相應參數 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN RefType-參數類型 data-用來存儲參數有關數據緩沖區地址首指針 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_SetReference Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByVal RefType As Long, ByRef data As Any) As Long '
''此函數用來獲取指定接收緩沖區中接收到但尚未被讀取的幀數 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN 返回值:返回尚未被讀取的幀數
Declare Function VCI_GetReceiveNum Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As Long '
''此函數用來清空指定緩沖區 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_ClearBuffer Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As Long '
'''此函數用來啟動CAN DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_StartCAN Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As Long '
''此函數用來復位CAN DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN 返回值:為1表示操作成功,為0表示操作失敗
Declare Function VCI_ResetCAN Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long) As Long '
''此函數用來返回實際發送的幀數 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN Send-要發送的數據幀數組的首指針 length-要發送的數據幀數組的長度 返回值:返回實際發送的幀數
Declare Function VCI_Transmit Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef Send As VCI_CAN_OBJ, ByVal length As Long) As Long '
''此函數從指定的設備讀取數據 DeviceType-設備類型號 DeviceInd-設備索引號 CANInd-第幾路CAN Receive-用來接收的數據幀數組的首指針 len-用來接收的數據幀數組的長度 WaitTime-等待超時時間,以毫秒為單位 返回值:返回實際讀取到的幀數。如果返回值為0xFFFFFFFF,則表示讀取數據失敗,有錯誤發生,請調用VCI_ReadErrInfo函數來獲取錯誤碼。
Declare Function VCI_Receive Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef Receive As VCI_CAN_OBJ, ByVal length As Long, ByVal WaitTime As Long) As Long '
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -