📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "HKCAN-Tester"
ClientHeight = 4095
ClientLeft = 60
ClientTop = 345
ClientWidth = 5565
LinkTopic = "Form1"
ScaleHeight = 4095
ScaleWidth = 5565
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton GetInput
Caption = "接收数据"
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3120
TabIndex = 5
Top = 3000
Width = 1455
End
Begin VB.TextBox InputData
Height = 375
Left = 840
TabIndex = 4
Top = 3000
Width = 1335
End
Begin VB.CommandButton SetOutput
Caption = "发送数据"
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3120
TabIndex = 3
Top = 2400
Width = 1455
End
Begin VB.TextBox Output
Height = 375
Left = 840
TabIndex = 2
Top = 2400
Width = 1335
End
Begin VB.CommandButton CloseCard
Caption = "关闭CAN卡"
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 840
TabIndex = 1
Top = 1440
Width = 1455
End
Begin VB.CommandButton OpenCard
Caption = "初始化CAN卡"
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 840
TabIndex = 0
Top = 720
Width = 1455
End
Begin VB.Label HK
Caption = "HK-CAN10S驱动调用例程"
Height = 255
Left = 1680
TabIndex = 6
Top = 240
Width = 2295
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function HKCanOpen Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByRef InDriverName As Any, ByVal DrType As Long, ByVal nDev As Long) As Boolean
Private Declare Function HKCanClose Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE) As Boolean
Private Declare Function HKCanInitState Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByVal Port As Long, ByVal CAN_bps As Long, ByVal CAN_StationAddress As Byte, ByVal CAN_Mask As Byte, ByVal mRxEvent As Long) As Boolean
Private Declare Function HKCanSendFrame Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByRef pSendFrame As PHKCANFRAME) As Long
Private Declare Function HKCanReadFrame Lib "HKCANDLL.DLL" (ByRef mDevHandle As PHKCANHANDLE, ByVal Port As Long, ByRef pReadFrame As PHKCANFRAME) As Long
Dim g_mDevHandle As PHKCANHANDLE
Dim g_SendFrame As PHKCANFRAME
Dim g_RecFrame As PHKCANFRAME
Private Type PHKCANHANDLE
mHandle As Long
mGuid As Long
mClass As Integer
mDev As Integer
mType As Integer
mState As Integer
End Type
Private Type PHKCANFRAME
Port As Byte
mFrame(0 To 9) As Byte
End Type
Private Sub Form_Load()
'Dim Buffer(0) As Byte
'Buffer(0) = 253
'Dim b As Long
'b = SetSlaveOutputData(7, Buffer, 0, 1)
End Sub
Private Sub OpenCard_Click()
Dim Status As Boolean
Dim InDriverName(0 To 128) As Byte
Dim DrType As Long
Dim nDev As Long
Dim StrLen As Long
Dim Port As Long
Dim CAN_bps As Long
Dim CAN_StationAddress As Byte
Dim CAN_Mask As Byte
Dim mRxEvent As Long
g_mDevHandle.mClass = 0 'CAN10S类型设备
g_mDevHandle.mDev = 0 '0号设备
g_mDevHandle.mType = 0 '选用sys类型驱动
'设备类型名“HKCAN10”
InDriverName(0) = 72 'H
InDriverName(1) = 75 'K
InDriverName(2) = 67 'C
InDriverName(3) = 65 'A
InDriverName(4) = 78 'N
InDriverName(5) = 49 '1
InDriverName(6) = 48 '0
InDriverName(7) = 0 '结束符
DrType = 0
nDev = 0
Status = HKCanOpen(g_mDevHandle, InDriverName(0), DrType, nDev)
If Status Then
Port = 0
CAN_bps = 49571 '500K
CAN_StationAddress = 0
CAN_Mask = 255
mRxEvent = 0
Status = HKCanInitState(g_mDevHandle, Port, CAN_bps, CAN_StationAddress, CAN_Mask, mRxEvent)
If Status Then
Else
MsgBox (" CAN Port0 卡初始化失败!! ")
End If
Port = 1
Status = HKCanInitState(g_mDevHandle, Port, CAN_bps, CAN_StationAddress, CAN_Mask, mRxEvent)
If Status Then
Else
MsgBox (" CAN Port1 卡初始化失败!! ")
End If
Else
MsgBox (" CAN 卡打开失败!! ")
End If
End Sub
Private Sub SetOutput_Click()
Dim Status As Long
Dim sTemp As String
Dim strLeng As Long
Dim str_Count As Long
'根据协议来定
g_SendFrame.mFrame(0) = 10
g_SendFrame.mFrame(1) = 136
str_Count = 1
For strLeng = 2 To 9
sTemp = Mid(Output.Text, str_Count, 1)
g_SendFrame.mFrame(str_Count + 1) = Val(sTemp)
str_Count = str_Count + 1
Next
'0号端口发送数据
g_SendFrame.Port = 0
'写输出
If g_mDevHandle.mHandle <> 0 Then
Status = HKCanSendFrame(g_mDevHandle, g_SendFrame)
If Status <> 0 Then
MsgBox (" 数据发送失败!! ")
End If
End If
End Sub
Private Sub GetInput_Click()
Dim Status As Long
Dim sTemp As String
Dim strLeng As Long
Dim str_Count As Long
'If g_mDevHandle.mHandle <> 0 Then
'1号端口接收数据
Status = HKCanReadFrame(g_mDevHandle, 1, g_RecFrame)
If Status < 0 Then
MsgBox (" 读取操作失败!! ")
End If
'End If
sTemp = ""
str_Count = 2
For strLeng = 2 To 9
sTemp = sTemp + Str(g_RecFrame.mFrame(str_Count))
str_Count = str_Count + 1
Next
InputData.Text = sTemp
End Sub
Private Sub CloseCard_Click()
Dim Status As Boolean
If g_mDevHandle.mHandle <> Null Then
Status = HKCanClose(g_mDevHandle)
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -