📄 send.vb
字号:
databuf(4) = databuf(0) Xor databuf(1) Xor databuf(2) Xor databuf(3)
Case 6 '''召唤
ReDim databuf(4)
databuf(0) = Val("&H" + DeviceAddr)
databuf(1) = &H27
databuf(2) = 0
databuf(3) = 4
databuf(4) = databuf(0) Xor databuf(1) Xor databuf(2) Xor databuf(3)
End Select
End Select
Case 4 '''北广发射机
Select Case CommandType
Case 3
ReDim databuf(7)
databuf(0) = &H3C
databuf(1) = 7
databuf(2) = &HA
databuf(3) = 0
databuf(4) = databuf(1) Xor databuf(3)
databuf(5) = databuf(0) Xor databuf(2) Xor 1
databuf(6) = 1
databuf(7) = 0
Case 4
ReDim databuf(7)
databuf(0) = &H3C
databuf(1) = 7
databuf(2) = &HA
databuf(3) = 0
databuf(4) = databuf(1) Xor databuf(3)
databuf(5) = databuf(0) Xor databuf(2)
databuf(6) = 0
databuf(7) = 0
Case 6
ReDim databuf(5)
databuf(0) = &H3C
databuf(1) = 5
databuf(2) = 1
databuf(3) = 0
databuf(4) = databuf(1) Xor databuf(3)
databuf(5) = databuf(0) Xor databuf(2)
End Select
Case 5 '''广州金网通发射机(康特改造)
Select Case CommandType
Case 3, 4, 6 '''
ReDim databuf(11)
databuf(0) = &H55
databuf(1) = &HAA
databuf(2) = 9
databuf(3) = CommandType
databuf(4) = DeviceType
databuf(5) = 0
databuf(6) = 0
databuf(7) = 0
databuf(8) = Val("&H" + DeviceAddr)
databuf(9) = Val(SerialNumber)
databuf(10) = 0
databuf(11) = databuf(2) Xor databuf(3) Xor databuf(4) Xor databuf(5) Xor databuf(6) Xor databuf(7) & _
databuf(8) Xor databuf(9) Xor databuf(10)
End Select
Case 6 '''采集器
' Dim strSend As String = "#0100oo"
ReDim databuf(6)
databuf(0) = &H23
databuf(0) = &H30
databuf(0) = &H31
databuf(0) = &H30
databuf(0) = &H30
databuf(0) = &H6F
databuf(0) = &H6F
Case 7 '''信号源切换器
Select Case CommandType
Case 6 '''读信号源切换器状态
'''等成都泰立公司改造
Case 13
ReDim databuf(1)
databuf(0) = &HAA
databuf(1) = Val("&H" + CommandCode)
End Select
Case 8 '''防非接收机
Select Case CommandType
Case 6 '''读接收机报警记录
ReDim databuf(1)
databuf(0) = &HA5
databuf(1) = &H4
Case 2 '''复位
databuf(0) = &HA5
databuf(1) = &H6
Case 7 '''清零
databuf(0) = &HA5
databuf(1) = &H5
End Select
Case 9 '''发电机
Select Case CommandType
Case 6 '电池电压读取
'通讯参数:9600bps.8位,1位停止位,无奇偶校验
'发送数据:例-0103201500019E0E (in HEX) 查询数据输入
'发送数据格式:地址(1B)+命令码(1B)+通讯码(2B,高字节MSB在前,低字节LSB在后)+
'通讯码长度(2B,高字节MSB在前,低字节LSB在后)+CRC效验码(2B,低字节LSB在前,高字节MSB在后)
'接收数据格式:地址位(1B)+查询命令码(1B)+数据长度(1B)+3-4位为第一个积存器(2B)+
'5-6位为第二个积存器(2B)+n-n+1位为第n个寄存(2B)(高字节MSB在前,低字节LSB在后)+÷
'CRC效验码(2B,低字节LSB在前,高字节MSB在后)
'错误数据格式:功能码131(1B)+错误类型码(1B,在错误列表中查看相应错误)+CRC校验(2B)
ReDim databuf(7)
Dim tmpdatabuf() As Byte
Dim databuf1(5) As Byte
databuf(0) = Val("&H" + DeviceAddr) '''控制器地址
databuf(1) = &H3 '''命令码-电池电压读取
databuf(2) = &H20 '''电池电压的通信对象8213,hex=2015
databuf(3) = &H15
databuf(4) = 0
databuf(5) = 1
For i = 0 To 5
databuf1(i) = databuf(i)
Next
tmpdatabuf = tableCRC16(databuf1)
databuf(6) = tmpdatabuf(1)
databuf(7) = tmpdatabuf(0)
Case 3
ReDim databuf(7)
Dim tmpdatabuf() As Byte
Dim databuf1(5) As Byte
databuf(0) = Val("&H" + DeviceAddr) '''控制器地址
databuf(1) = &H10 '''命令码-控制
databuf(2) = &H5F '''控制器通信对象24521
databuf(3) = &HC9
databuf(4) = &HFE '''控制码(引擎启动-FE01,引擎关闭-FD02)
databuf(5) = 1
For i = 0 To 5
databuf1(i) = databuf(i)
Next
tmpdatabuf = tableCRC16(databuf1)
databuf(6) = tmpdatabuf(1)
databuf(7) = tmpdatabuf(0)
Case 4
ReDim databuf(7)
Dim tmpdatabuf() As Byte
Dim databuf1(5) As Byte
databuf(0) = Val("&H" + DeviceAddr) '''控制器地址
databuf(1) = &H10 '''命令码-控制
databuf(2) = &H5F '''控制器通信对象24521
databuf(3) = &HC9
databuf(4) = &HFD '''控制码(引擎启动-FE01,引擎关闭-FD02)
databuf(5) = 2
For i = 0 To 5
databuf1(i) = databuf(i)
Next
tmpdatabuf = tableCRC16(databuf1)
databuf(6) = tmpdatabuf(1)
databuf(7) = tmpdatabuf(0)
End Select
Case 10 '''N+1切换器
Select Case CommandType
Case 6
ReDim databuf(11)
databuf(0) = &H55
databuf(1) = &HAA
databuf(2) = 9
databuf(3) = CommandType
databuf(4) = DeviceType
databuf(5) = 0
databuf(6) = 0
databuf(7) = 0
databuf(8) = Val("&H" + DeviceAddr)
databuf(9) = Val(SerialNumber)
databuf(10) = 0 'Val(CommandCode)
databuf(11) = databuf(2) Xor databuf(3) Xor databuf(4) Xor databuf(5) Xor databuf(6) Xor databuf(7) & _
databuf(8) Xor databuf(9) Xor databuf(10)
Case 12 '''切换
ReDim databuf(13)
databuf(0) = &H55
databuf(1) = &HAA
databuf(2) = 11
databuf(3) = CommandType
databuf(4) = DeviceType
databuf(5) = 0
databuf(6) = 0
databuf(7) = 0
databuf(8) = Val("&H" + DeviceAddr)
databuf(9) = Val(SerialNumber)
databuf(10) = 0
databuf(11) = Val("&H" + CommandCode)
databuf(12) = Asc(state)
databuf(13) = databuf(2) Xor databuf(3) Xor databuf(4) Xor databuf(5) Xor databuf(6) Xor databuf(7) & _
databuf(8) Xor databuf(9) Xor databuf(10) Xor databuf(11) Xor databuf(12)
End Select
Case Else
End Select
SendData = databuf
If databuf Is Nothing Then Exit Function
If UBound(databuf) > 0 Then
For i = 0 To UBound(databuf)
strSendData = strSendData + CStr(IIf(Len(Hex(databuf(i))) = 2, Hex(databuf(i)), "0" + Hex(databuf(i)))) + " "
Next i
End If
'Catch ex As Exception
' MessageBox.Show(ex.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
'End Try
End Function
Public Shared Function GetCmdCodeArray(ByVal CmdCode As String)
Dim CmdCodeArray(4) As Integer
'Dim MyFormat As String = "***.**" '
Dim MyString As String
MyString = CmdCode ' Format(CmdCode, MyFormat)
If Len(MyString) = 6 Then
CmdCodeArray(0) = Val(Mid(MyString, 1, 1))
CmdCodeArray(1) = Val(Mid(MyString, 2, 1))
CmdCodeArray(2) = Val(Mid(MyString, 3, 1))
CmdCodeArray(3) = Val(Mid(MyString, 5, 1))
CmdCodeArray(4) = Val(Mid(MyString, 6, 1))
GetCmdCodeArray = CmdCodeArray
Else
MessageBox.Show("发送数据出错!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Function
Public Shared Function GetDevaddrArray(ByVal devaddr As String, ByVal tempstr As String) As String()
Dim DevaddrArray(3) As String
Dim ipos As Integer
Dim epos As Integer
ipos = 0
epos = 0
ipos = InStr(1, devaddr, tempstr, CompareMethod.Text)
If ipos > 0 Then
DevaddrArray(0) = Mid(devaddr, 1, ipos - 1)
epos = InStr(ipos + 1, devaddr, tempstr, CompareMethod.Text)
DevaddrArray(1) = Mid(devaddr, ipos + 1, epos - ipos - 1)
ipos = epos
epos = InStr(ipos + 1, devaddr, tempstr, CompareMethod.Text)
DevaddrArray(2) = Mid(devaddr, ipos + 1, epos - ipos - 1)
DevaddrArray(3) = Mid(devaddr, epos + 1, devaddr.Length - epos)
Else
DevaddrArray(0) = devaddr
End If
GetDevaddrArray = DevaddrArray
End Function
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -