⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 send.vb

📁 广西百色247台电视发射机监控源代码.已经过实践
💻 VB
📖 第 1 页 / 共 2 页
字号:
                                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 + -