📄 send.vb
字号:
'**********************发送下行命令***************************
'***********编写时间:2007年8月6日
'***********编写人:鲍辉
'***********针对与广西联正达合作的机房远控系统
'1、********测试 适用:凯腾、吉兆
'2、********复位 适用:凯腾、空调监控设备
'3、********开机 适用:所有发射机,包括环境设备
'4、********关机 适用:所有发射机,包括环境设备
'5、********模块更新 适用:凯腾
'6、********数据召唤 适用:所有发射机,包括环境设备
'7、********发射机工作累计时清零 适用:吉兆
'8、********校准发射机系统时间 适用:吉兆
'9、********设置发射机工作状态 本控/遥控 适用:吉兆
'10、*******接收系统备注表 适用:吉兆
'11、*******设置空调参数 适用:空调监控设备
'***编码 说明
'1 Sync 同步字节,2个字节,0x55、0xAA。
'2 Length 数据报长度,2个字节。
'3 CommandType 命令类型,1个字节。
'4 DeviceType 设备类型,1字节。
'5 DeviceAddr 设备地址,4字节。
'6 SerialNumber串口号,1字节。
'7 CommandCode 命令码:待定。可变长字节。默认0x00。
''DeviceType:发射机类型,1个字节。
''编码 说明
''0x01 康特,
''0x02 凯腾
''0x03 吉兆
''0x04 北广
''0x05 广州金网通
''0x06 其他环境监控设备
Imports TransmitTV.PublicClass
Public Class Send
Public Shared strSendData As String
Public Shared Function freMod(ByVal cmd As String) As Byte() '''修改频率指令
Dim databuf(3) As Byte
Dim temp As String
temp = Hex(Int(Val(cmd)))
Select Case Len(temp)
Case 1, 2
databuf(0) = Val("&H" + temp)
databuf(1) = 0
databuf(2) = 0
databuf(3) = 0
Case 3
databuf(0) = Val("&H" + Mid(temp, 2, 2))
databuf(1) = Val("&H" + Mid(temp, 1, 1))
databuf(2) = 0
databuf(3) = 0
Case 4
databuf(0) = Val("&H" + Mid(temp, 3, 2))
databuf(1) = Val("&H" + Mid(temp, 1, 2))
databuf(2) = 0
databuf(3) = 0
Case 5
databuf(0) = Val("&H" + Mid(temp, 4, 2))
databuf(1) = Val("&H" + Mid(temp, 2, 2))
databuf(2) = Val("&H" + Mid(temp, 1, 1))
databuf(3) = 0
Case 6
databuf(0) = Val("&H" + Mid(temp, 5, 2))
databuf(1) = Val("&H" + Mid(temp, 3, 2))
databuf(2) = Val("&H" + Mid(temp, 1, 2))
databuf(3) = 0
Case 7
databuf(0) = Val("&H" + Mid(temp, 6, 2))
databuf(1) = Val("&H" + Mid(temp, 4, 2))
databuf(2) = Val("&H" + Mid(temp, 2, 2))
databuf(3) = Val("&H" + Mid(temp, 1, 1))
Case 8
databuf(0) = Val("&H" + Mid(temp, 7, 2))
databuf(1) = Val("&H" + Mid(temp, 5, 2))
databuf(2) = Val("&H" + Mid(temp, 3, 2))
databuf(3) = Val("&H" + Mid(temp, 1, 2))
End Select
freMod = databuf
'If freMod.Length < 4 Then Exit Function
End Function
Public Shared Function SendData(ByVal CommandType As Integer, ByVal DeviceType As Integer, _
ByVal DeviceAddr As String, ByVal SerialNumber As String, ByVal SetSettings As String _
, ByVal CommandCode As String, ByVal state As String, ByVal TraType As Integer) As Byte()
'''CommandType --命令类型
'''DeviceType --设备类型
'''DeviceAddr --设备地址
'''SerialNumber --串口号
'''SetSettings --通讯参数
'''CommandCode --命令码
''' state --二级命令码
''' TraType --电视、调频、电视发射机
Dim databuf() As Byte
Dim tempbuf() As Byte
Dim DevaddrArray() As String
'Dim tempbuf(1) As Byte
Dim i As Integer
strSendData = ""
'Try
Select Case DeviceType
Case 1 '''康特发射机
DevaddrArray = GetDevaddrArray(DeviceAddr, ".")
Select Case CommandType
Case 3, 4, 6 '''开机、关机、召唤
ReDim databuf(10)
databuf(0) = &H55
databuf(1) = &HAA
databuf(2) = 0
databuf(3) = 7
databuf(4) = CommandType
databuf(5) = Val(DevaddrArray(0))
databuf(6) = Val(DevaddrArray(1))
databuf(7) = Val(DevaddrArray(2))
databuf(8) = Val(DevaddrArray(3))
databuf(9) = 0
databuf(10) = 0
Case 14 '''修改激励器频率0x0E(主要针对康特3KW调频发射机-备机的RVR激励器)
tempbuf = freMod(CommandCode)
If tempbuf.Length < 4 Then Exit Function
ReDim databuf(16)
databuf(0) = &H55
databuf(1) = &HAA
databuf(2) = 0
databuf(3) = 7
databuf(4) = &HB
databuf(5) = Val(DevaddrArray(0))
databuf(6) = Val(DevaddrArray(1))
databuf(7) = Val(DevaddrArray(2))
databuf(8) = Val(DevaddrArray(3))
databuf(9) = 0
databuf(10) = &H11
databuf(11) = tempbuf(0)
databuf(12) = tempbuf(1)
databuf(13) = tempbuf(2)
databuf(14) = tempbuf(3)
Select Case Val(CommandCode)
Case 9060
databuf(15) = &HAA
databuf(16) = &H0
Case 10080
databuf(15) = &HE2 ' &H2C
databuf(16) = &H0 ' &H1
Case 10520
databuf(15) = &HE2 '&H2C
databuf(16) = &H0 ' &H1
Case 10700
databuf(15) = &H0 '&H54
databuf(16) = &H1 '&H1
End Select
End Select
Case 2 '''凯腾发射机
Select Case CommandType
Case 1 '''测试
ReDim databuf(5)
databuf(0) = &H7E
databuf(1) = Val("&H" + DeviceAddr)
databuf(2) = 1
databuf(3) = 1
databuf(4) = databuf(1) Xor databuf(2) Xor databuf(3)
databuf(5) = &HCC
Case 2, 3, 4, 6 '''复位、开机、关机、召唤--开机、关机延时5S
ReDim databuf(4)
databuf(0) = &H7E
databuf(1) = Val("&H" + DeviceAddr)
databuf(2) = CommandType
databuf(3) = databuf(1) Xor databuf(2)
databuf(4) = &HCC
Case 5 '''模块更新
'模块更新对应的命令码为模块代码(1个字节)
'代码 模块
'0~9 主控单元
'10~99 功放单元
'100~109 激励器
'110~255 备用
ReDim databuf(5)
databuf(0) = &H7E
databuf(1) = Val("&H" + DeviceAddr)
databuf(2) = 5
databuf(3) = Val("&H" + CommandCode)
databuf(4) = databuf(1) Xor databuf(2) Xor databuf(3)
databuf(5) = &HCC
End Select
Case 3 '''吉兆发射机
Select Case TraType
Case 1 '''吉兆电视发射机
Select Case CommandType
Case 1 '''测试
ReDim databuf(4)
databuf(0) = Val("&H" + DeviceAddr)
databuf(1) = &H3F
databuf(2) = 0
databuf(3) = 0
databuf(4) = databuf(0) Xor databuf(1) Xor databuf(2) Xor databuf(3)
Case 3 '''开机
ReDim databuf(4)
databuf(0) = Val("&H" + DeviceAddr)
databuf(1) = &H3C
databuf(2) = 0
databuf(3) = 0
databuf(4) = databuf(0) Xor databuf(1) Xor databuf(2) Xor databuf(3)
Case 4 '''关机
ReDim databuf(4)
databuf(0) = Val("&H" + DeviceAddr)
databuf(1) = &H3E
databuf(2) = 0
databuf(3) = 0
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) = 2
databuf(4) = databuf(0) Xor databuf(1) Xor databuf(2) Xor databuf(3)
End Select
Case 2 '''吉兆调频发射机
Select Case CommandType
Case 1 '''测试
ReDim databuf(4)
databuf(0) = Val("&H" + DeviceAddr)
databuf(1) = &H3F
databuf(2) = 0
databuf(3) = 0
databuf(4) = databuf(0) Xor databuf(1) Xor databuf(2) Xor databuf(3)
Case 3 '''开机
ReDim databuf(4)
databuf(0) = Val("&H" + DeviceAddr)
databuf(1) = &H3C
databuf(2) = 0
databuf(3) = 0
databuf(4) = databuf(0) Xor databuf(1) Xor databuf(2) Xor databuf(3)
Case 4 '''关机
ReDim databuf(4)
databuf(0) = Val("&H" + DeviceAddr)
databuf(1) = &H3E
databuf(2) = 0
databuf(3) = 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -