1270 lines
58 KiB
VB.net
1270 lines
58 KiB
VB.net
Imports System.Text
|
||
|
||
|
||
Public Class NetworkData
|
||
|
||
Enum states
|
||
接收 = True
|
||
发送 = False
|
||
End Enum
|
||
''' <summary>
|
||
''' 解析网络数据
|
||
''' </summary>
|
||
''' <param name="data_content"></param>
|
||
''' <param name="Type_Param"></param>
|
||
''' <param name="state">接收或发送</param>
|
||
''' <returns></returns>
|
||
Public Function Parsing_Network_Data(data_content As Byte(), ByRef Type_Param As List(Of String), state As Boolean) As List(Of String)
|
||
Try
|
||
Dim cmd As Byte = data_content(8)
|
||
Dim frame As Integer = data_content(10) * 256 + data_content(9)
|
||
Dim Project_Code As Integer = data_content(12) * 256 + data_content(11)
|
||
Type_Param.Add($"帧号:{frame}")
|
||
Type_Param.Add($"项目编码:{Project_Code},主机IP地址:192.168.{data_content(13)}.{data_content(14)}")
|
||
Dim str As String = ""
|
||
|
||
If data_content.Length - 17 > 0 Then
|
||
Dim data As Byte() = data_content.Skip(15).Take(data_content.Length - 17).ToArray
|
||
Select Case cmd
|
||
Case &H1
|
||
Type_Param.Add("搜索主机")
|
||
str = Search_The_Host(data, state)
|
||
Case &HA
|
||
Type_Param.Add("固件升级启动")
|
||
str = Firmware_Upgrade_Start(data, state)
|
||
Case &HE
|
||
Type_Param.Add("设备状态变化主动上报")
|
||
str = Devicestatus_Changes_Reported(data, state)
|
||
Case &HF
|
||
Type_Param.Add("服务器下发设备控制参数")
|
||
str = Deliversdevice_Control_Parameters(data, state)
|
||
Case &H8
|
||
Type_Param.Add("请求时间")
|
||
str = Request_Time(data, state)
|
||
Case &H22
|
||
Type_Param.Add("授权")
|
||
str = Authorization(data, state)
|
||
Case &H25
|
||
Type_Param.Add("查询授权时间")
|
||
str = Querying_Authorization_Time(data, state)
|
||
Case &H30
|
||
Type_Param.Add("读取映射寄存器内容")
|
||
str = Read_Contents_Mapregister(data, state)
|
||
Case &H31
|
||
Type_Param.Add("设置映射寄存器内容")
|
||
str = Set_Contents_Mappingregister(data, state)
|
||
Case &H70
|
||
Type_Param.Add("透传下发命令")
|
||
str = Transparent_Transmission_Delivers_Commands(data, state)
|
||
Case &H71
|
||
Type_Param.Add("透传上报")
|
||
str = Passthrough_Report(data, state)
|
||
Case &HA0
|
||
Type_Param.Add("时间同步")
|
||
str = Time_Synchronization(data, state)
|
||
Case &HB1
|
||
Type_Param.Add("读取主机系统参数信息")
|
||
str = Read_Parameter_Information(data, state)
|
||
Case &HD1
|
||
Type_Param.Add("启动设备测试")
|
||
str = Startup_Device_Test(data, state)
|
||
Case &HD2
|
||
Type_Param.Add("配置设备存在")
|
||
str = Configuration_Device_Exists(data, state)
|
||
Case &HD3
|
||
Type_Param.Add("读取配置设备")
|
||
str = Reading_Configuration_Devices(data, state)
|
||
Case &HB2
|
||
Type_Param.Add("BLV_Cx升级命令")
|
||
str = BLV_Cx_Upgrade_Command(data, state)
|
||
Case &HA
|
||
Type_Param.Add("BLV_Cx升级命令")
|
||
str = BLV_Cx_Upgrade_Command(data, state)
|
||
Case &HB3
|
||
Type_Param.Add("BLV_Cx校验命令")
|
||
str = BLV_Cx_Verification_Command(data, state)
|
||
Case &HB4
|
||
Type_Param.Add("BLV_Cx复位命令")
|
||
str = BLV_Cx_Reset_Command(data, state)
|
||
Case &HB5
|
||
Type_Param.Add("BLV_Cx配置文件下发命令")
|
||
str = BLV_Cx_Configuration_File_Send_Commands(data, state)
|
||
Case &HA
|
||
Type_Param.Add("BLV_Cx配置文件下发命令")
|
||
str = BLV_Cx_Configuration_File_Send_Commands(data, state)
|
||
End Select
|
||
Type_Param.Add(str)
|
||
Else
|
||
str = "无参数数据"
|
||
Type_Param.Add(str)
|
||
End If
|
||
|
||
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return Type_Param
|
||
End Function
|
||
|
||
#Region "cmd通讯命令"
|
||
|
||
#Region "搜索主机"
|
||
|
||
''' <summary>
|
||
''' 搜索主机
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Search_The_Host(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.发送 Then
|
||
Dim IP As String = $"{data(0)}.{data(1)}.{data(2)}.{data(3)}"
|
||
Dim Subnetmask As String = $"{data(4)}.{data(5)}.{data(6)}.{data(7)}"
|
||
Dim gateway As String = $"{data(8)}.{data(9)}.{data(10)}.{data(11)}"
|
||
Dim Port As String = data(13) * 256 + data(12)
|
||
Dim MAC As String = $"{BitConverter.ToString(data.Skip(14).Take(6).ToArray).Replace("-", " ")}"
|
||
Dim Version_Number As String = Encoding.UTF8.GetString(data.Skip(20).Take(20).ToArray)
|
||
Dim Set_Data_Version_Number As String = data(41) * 256 + data(40)
|
||
Dim DNSmask As String = $"{data(43)}.{data(44)}.{data(45)}.{data(46)}"
|
||
Dim Room_Note As String = DataTypes.ByteToInt(data.Skip(47).Take(16).ToArray)
|
||
Dim Room_Number_Note As String = DataTypes.ByteToInt(data.Skip(63).Take(16).ToArray)
|
||
Dim Room_ID As String = DataTypes.ByteToInt(data.Skip(79).Take(4).ToArray).ToString
|
||
Dim Room_Number_ID As String = DataTypes.ByteToInt(data.Skip(83).Take(4).ToArray).ToString
|
||
str.Append($"服务器IP地址:{IP};子网掩码:{Subnetmask};网关:{gateway};端口:{Port};MAC地址:{MAC};版本号:{Version_Number};配置数据版本号:{Set_Data_Version_Number},
|
||
DNS地址:{DNSmask};房型备注:{Room_Note};房号备注:{Room_Number_Note};房型ID:{Room_ID};房号ID:{Room_Number_ID};")
|
||
|
||
ElseIf state = states.接收 Then
|
||
Dim IP As String = $"{data(5)}.{data(6)}.{data(7)}.{data(8)}"
|
||
Dim Port As String = data(10) * 256 + data(9)
|
||
str.Append($"配置软件IP地址:{IP},配置软件端口:{Port}")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "固件升级启动"
|
||
|
||
|
||
''' <summary>
|
||
''' 固件升级启动
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Firmware_Upgrade_Start(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H0
|
||
str.Append($"状态:就绪;")
|
||
Case &H1
|
||
str.Append($"状态:成功;")
|
||
Case &H2
|
||
str.Append($"状态:失败;")
|
||
Case &H3
|
||
str.Append($"状态:文件块数错误;")
|
||
Case &H4
|
||
str.Append($"状态:文件类型错误;")
|
||
Case &H5
|
||
str.Append($"状态:文件MD5值错误;")
|
||
Case Else
|
||
|
||
End Select
|
||
ElseIf state = states.发送 Then
|
||
Dim IP As String = $"{data(5)}.{data(6)}.{data(7)}.{data(8)}"
|
||
Dim Port As String = data(10) * 256 + data(9)
|
||
Dim MD5 As String = Encoding.UTF8.GetString(data.Skip(6).Take(16).ToArray)
|
||
Dim File_Blocks_Number As String = data(23) * 256 + data(22)
|
||
str.Append($"配置软件IP地址:{IP};配置端口号:{Port};升级文件MD5值:{MD5};文件总块数:{File_Blocks_Number}")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "设备状态变化主动上报"
|
||
|
||
''' <summary>
|
||
''' 设备状态变化主动上报
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Devicestatus_Changes_Reported(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If data.Count > 0 Then
|
||
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("系统锁:打开;")
|
||
Case &H2
|
||
str.Append("系统锁:关闭;")
|
||
End Select
|
||
str.Append($"卡类型:{data(1)};")
|
||
Select Case data(2)
|
||
Case &H1
|
||
str.Append("门磁状态:开;")
|
||
Case &H2
|
||
str.Append("门磁状态:关;")
|
||
End Select
|
||
str.Append($"门锁电量:{data(4) * 256 + data(3)}mv;空调数量:{data(6)};上报设备数量:{data(7)};")
|
||
Dim t As Integer = 8
|
||
If data(7) > 0 Then
|
||
|
||
For i = 1 To data(7)
|
||
Dim DevType As String = data(t)
|
||
Dim DevAddr As String = data(t + 1)
|
||
Dim Devstate As String = data(t + 3) * 256 + data(t + 2)
|
||
|
||
Select Case DevType
|
||
Case &H0
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(指令场景);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append("设备动作--开;")
|
||
Case &H2
|
||
str.Append("设备动作--关;")
|
||
End Select
|
||
str.Append($"设备内容:{data(t + 5)}")
|
||
Case &H1
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(强电继电器);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append("设备动作--开;")
|
||
Case &H2
|
||
str.Append("设备动作--关;")
|
||
End Select
|
||
str.Append($"设备内容:{data(t + 5)}")
|
||
Case &H2
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(弱点输入);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Case &H3
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(弱点输出);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append("设备动作--开;")
|
||
Case &H2
|
||
str.Append("设备动作--关;")
|
||
End Select
|
||
str.Append($"设备内容:{data(t + 5)};")
|
||
Case &H4
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(服务信息);上报设备地址:{DevAddr};")
|
||
Select Case data(3) And &HFF
|
||
Case &H1
|
||
str.Append("服务场景:入住;")
|
||
Case &H2
|
||
str.Append("服务场景:勿扰;")
|
||
Case &H3
|
||
str.Append("服务场景:清理;")
|
||
Case &H4
|
||
str.Append("服务场景:呼叫;")
|
||
Case &H5
|
||
str.Append("服务场景:洗衣;")
|
||
Case &H6
|
||
str.Append("服务场景:退房;")
|
||
Case &H7
|
||
str.Append("服务场景:稍后;")
|
||
Case &H8
|
||
str.Append("服务场景:SOS;")
|
||
Case &H9
|
||
str.Append("服务场景:送餐;")
|
||
Case &HA
|
||
str.Append("服务场景:开锁;")
|
||
Case &HB
|
||
str.Append("服务场景:行李;")
|
||
Case &HC
|
||
str.Append("服务场景:保险箱;")
|
||
Case &HD
|
||
str.Append("服务场景:门槛;")
|
||
End Select
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append("设备动作--开;")
|
||
Case &H2
|
||
str.Append("设备动作--关;")
|
||
End Select
|
||
str.Append($"设备内容:{data(t + 5)}")
|
||
Case &H5
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(干接点窗帘);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append("设备动作--开;")
|
||
Case &H2
|
||
str.Append("设备动作--关;")
|
||
Case &H6
|
||
str.Append("设备动作--停;")
|
||
End Select
|
||
str.Append($"设备内容:{data(t + 5)}")
|
||
Case &H6
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(开关);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append($"设备动作--开;亮度值:{data(t + 5)}")
|
||
Case &H2
|
||
str.Append($"设备动作--关;亮度值:{data(t + 5)}")
|
||
Case &H6
|
||
str.Append("设备动作:停;")
|
||
Select Case data(t + 5)
|
||
Case &H1
|
||
str.Append("状态:点按;")
|
||
Case &H2
|
||
str.Append("状态:松开;")
|
||
Case &H3
|
||
str.Append("状态:长按;")
|
||
End Select
|
||
End Select
|
||
Case &H7
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(空调);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Dim Switch_machine As Byte = (data(t + 4) >> 7) And &H3
|
||
Dim model As Byte = (data(t + 4) >> 5) And &HF
|
||
Dim windspeed As Byte = (data(t + 4) >> 3) And &HF
|
||
Dim valve As Byte = (data(t + 4) >> 2) And &H3
|
||
Dim Set_temperature_1 As Byte = ((data(t + 5) >> 5) And &H7) Or ((data(t + 4) << 3) And &H1F)
|
||
Dim Set_temperature_2 As Byte = data(t + 5) And &H1F
|
||
Select Case Switch_machine
|
||
Case &H0
|
||
str.Append("设备动作--开关机:关机;")
|
||
Case &H1
|
||
str.Append("设备动作--开关机:开机;")
|
||
End Select
|
||
Select Case model
|
||
Case &H1
|
||
str.Append("模式:制冷;")
|
||
Case &H2
|
||
str.Append("模式:制热;")
|
||
Case &H3
|
||
str.Append("模式:送风;")
|
||
Case &H4
|
||
str.Append("模式:自动;")
|
||
End Select
|
||
Select Case windspeed
|
||
Case &H1
|
||
str.Append("风速:低速;")
|
||
Case &H2
|
||
str.Append("风速:中速;")
|
||
Case &H3
|
||
str.Append("风速:高速;")
|
||
Case &H4
|
||
str.Append("风速:自动;")
|
||
End Select
|
||
Select Case valve
|
||
Case &H1
|
||
str.Append("阀门:开阀;")
|
||
Case &H2
|
||
str.Append("阀门:关阀;")
|
||
End Select
|
||
str.Append($"设置温度:{Set_temperature_1}摄氏度;")
|
||
str.Append($"室内温度:{Set_temperature_2}摄氏度;")
|
||
Case &H9
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(空气质量检测设备);上报设备地址:{DevAddr};")
|
||
Dim Air_quality As Byte = data(t + 3) And &HF
|
||
Select Case Air_quality
|
||
Case &H1
|
||
str.Append($"002浓度:{data(t + 5) * 256 + data(4)}")
|
||
Case &H2
|
||
str.Append($"甲醛浓度:{data(t + 5) * 256 + data(4)}")
|
||
Case &H2
|
||
str.Append($"TVOC浓度:{data(t + 5) * 256 + data(4)}")
|
||
Case &H2
|
||
str.Append($"PM2.5浓度:{data(t + 5) * 256 + data(4)}")
|
||
Case &H2
|
||
str.Append($"PM1.0浓度:{data(t + 5) * 256 + data(4)}")
|
||
Case &H2
|
||
str.Append($"温度:{data(t + 5) * 256 + data(4)}")
|
||
Case &H2
|
||
str.Append($"湿度:{data(t + 5) * 256 + data(4)}")
|
||
End Select
|
||
str.Append($"设备内容:{data(t + 5) * 256 + data(4)}")
|
||
Case &HA
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(插卡取电);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Dim card_action As Byte = (data(t + 4) >> 7) And &H3
|
||
Dim card_identity As Byte = (data(t + 4) >> 4) And &HF
|
||
str.Append($"卡动作:{card_action}")
|
||
Select Case card_identity
|
||
Case &H0
|
||
str.Append("卡身份:无人;")
|
||
Case &H1
|
||
str.Append("卡身份:客人;")
|
||
Case &H2
|
||
str.Append("卡身份:服务员;")
|
||
Case &H3
|
||
str.Append("卡身份:经理;")
|
||
Case &H4
|
||
str.Append("卡身份:工程;")
|
||
Case &H5
|
||
str.Append("卡身份:总管;")
|
||
Case &H6
|
||
str.Append("卡身份:高频卡;")
|
||
End Select
|
||
str.Append($"备用:{data(t + 4) And &HF};编号:{data(5)}")
|
||
Case &HB
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(地暖);上报设备地址:{DevAddr};上报设备状态:{Devstate};")
|
||
Dim Switch_machine As Byte = (data(t + 4) >> 7) And &H3
|
||
Dim model As Byte = (data(t + 4) >> 5) And &HF
|
||
Dim valve As Byte = (data(t + 4) >> 4) And &H3
|
||
Dim Set_temperature_1 As Byte = ((data(t + 5) >> 6) And &H3F) Or ((data(t + 4) << 4) And &HFF)
|
||
Dim Set_temperature_2 As Byte = data(t + 5) And &H3F
|
||
Select Case Switch_machine
|
||
Case &H0
|
||
str.Append("设备动作--开关机:关机;")
|
||
Case &H1
|
||
str.Append("设备动作--开关机:开机;")
|
||
End Select
|
||
Select Case model
|
||
Case &H1
|
||
str.Append("模式:手动;")
|
||
Case &H2
|
||
str.Append("模式:自动;")
|
||
Case &H3
|
||
str.Append("模式:定时;")
|
||
End Select
|
||
Select Case valve
|
||
Case &H1
|
||
str.Append("阀门:开阀;")
|
||
Case &H2
|
||
str.Append("阀门:关阀;")
|
||
End Select
|
||
str.Append($"设置温度:{Set_temperature_1}摄氏度;")
|
||
str.Append($"室内温度:{Set_temperature_2}摄氏度;")
|
||
Case &HC
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(RCU设备网络);")
|
||
Case &HD
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(窗帘);")
|
||
Case &HF
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(红外发送);上报设备地址:{DevAddr};上报设备回路:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append($"设备状态:开;设备内容--{data(t + 5)}")
|
||
Case &H2
|
||
str.Append($"设备状态:关;设备内容--{data(t + 5)}")
|
||
End Select
|
||
|
||
Case &H18
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(PWM调光);上报设备地址:{DevAddr};上报设备回路:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append($"设备状态:开;设备内容--亮度范围:{data(t + 5)}")
|
||
Case &H2
|
||
str.Append($"设备状态:关;设备内容--亮度范围:{data(t + 5)}")
|
||
End Select
|
||
Case &H12
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(灯带);上报设备地址:{DevAddr};上报设备回路:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append($"设备状态:开;设备内容--亮度范围:{data(t + 5)}")
|
||
Case &H2
|
||
str.Append($"设备状态:关;设备内容--亮度范围:{data(t + 5)}")
|
||
End Select
|
||
Case &H13
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(中控);")
|
||
Case &H14
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(微信锁);上报设备地址:{DevAddr};上报设备回路:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append($"设备状态:开;设备内容--{data(t + 5)}")
|
||
Case &H2
|
||
str.Append($"设备状态:关;设备内容--{data(t + 5)}")
|
||
End Select
|
||
Case &H15
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(背景音乐);上报设备地址:{DevAddr};上报设备回路:{Devstate};")
|
||
Select Case data(t + 4) And &HF
|
||
Case &H0
|
||
str.Append($"播放功能:功能设置;设备内容--文件序号:{data(t + 5)}")
|
||
Case &H1
|
||
str.Append($"播放功能:场景开时播放;设备内容--文件序号:{data(t + 5)}")
|
||
Case &H2
|
||
str.Append($"播放功能:场景关时播放;设备内容--文件序号:{data(t + 5)}")
|
||
Case &H3
|
||
str.Append($"播放功能:开机;设备内容--文件序号:{data(t + 5)}")
|
||
Case &H4
|
||
str.Append($"播放功能:关机;设备内容--文件序号:{data(t + 5)}")
|
||
End Select
|
||
Case &H16
|
||
str.Append($"设备参数{i}:上报设备类型:{DevType}(房态下发);上报设备地址:{DevAddr};上报设备回路:{Devstate};")
|
||
Select Case data(t + 4)
|
||
Case &H1
|
||
str.Append("设备动作:出租;设备内容--暂无")
|
||
Case &H2
|
||
str.Append("设备动作:退房;设备内容--暂无")
|
||
Case &H2
|
||
str.Append("设备动作:待租;设备内容--暂无")
|
||
Case &H2
|
||
str.Append("设备动作:空房;设备内容--暂无")
|
||
End Select
|
||
|
||
End Select
|
||
|
||
t += 6
|
||
Next
|
||
End If
|
||
str.Append($"主机故障数量:{data(t)}")
|
||
If data(t) > 0 Then
|
||
For i = 1 To data(t)
|
||
Dim DevType As String = data(t + 1)
|
||
Dim DevAddr As String = data(t + 2)
|
||
Dim DevLoop As String = data(t + 4) * 256 + data(t + 3)
|
||
Dim Devstate As String = data(t + 5)
|
||
Dim DevData As String = data(t + 6)
|
||
Dim Devstr As String = ""
|
||
Select Case Devstate
|
||
Case &H1
|
||
Select Case DevData
|
||
Case &H0
|
||
Devstr = "在线"
|
||
Case &H1
|
||
Devstr = "离线"
|
||
End Select
|
||
Case &H2
|
||
Devstr = "0~100电量"
|
||
Case &H3
|
||
Devstr = "电流(10mA)"
|
||
Case &H4
|
||
Devstr = "1901故障检测次数"
|
||
End Select
|
||
str.Append($"故障设备参数{i}:故障设备类型:{DevType};故障设备地址:{DevAddr};故障设备的回路地址:{DevLoop};故障设备状态:{Devstr};")
|
||
t += 5
|
||
Next
|
||
End If
|
||
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "服务器下发设备控制参数"
|
||
|
||
''' <summary>
|
||
''' 服务器下发设备控制参数
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Deliversdevice_Control_Parameters(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
Dim t As Integer = 1
|
||
str.Append($"控制设备总数:{data(0)};")
|
||
If data(0) > 0 Then
|
||
For i = 1 To data(0)
|
||
Dim DevType As String = data(t)
|
||
Dim DevAddr As String = data(t + 1)
|
||
Dim DevLoop As String = data(t + 3) * 256 + data(t + 2)
|
||
Dim Dev_Output_Type_L As String = data(t + 4)
|
||
Dim Dev_Output_Type_H As String = data(t + 5)
|
||
str.Append($"设备控制参数{i}:设备控制类型:{DevType};设备控制地址:{DevAddr};控制设备的回路地址:{DevLoop};控制设备输出类型--执行方式:{Dev_Output_Type_L},执行内容:{Dev_Output_Type_H};")
|
||
t += 6
|
||
Next
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
Return str.ToString
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "请求时间"
|
||
|
||
''' <summary>
|
||
''' 请求时间
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Request_Time(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
str.Append($"{data(0)}{data(1)}年{data(2)}月{data(3)}日 星期{data(4)} :{data(5)}时:{data(6)}分")
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "授权"
|
||
|
||
''' <summary>
|
||
''' 授权
|
||
''' </summary>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Authorization(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
str.Append($"授权天数:{data(1) * 256 + data(0)}")
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "查询授权时间"
|
||
|
||
''' <summary>
|
||
''' 查询授权时间
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Querying_Authorization_Time(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
Dim Current_running_time As String = $"当前运行时间:{data(0)}{data(1)}年{data(2)}月{data(3)}日;"
|
||
Dim Current_Authorization_time As String = $"当前授权时间:{data(0)}{data(1)}年{data(2)}月{data(3)}日;"
|
||
Dim Software_Version_number As String = Encoding.UTF8.GetString(data.Skip(6).Take(20).ToArray)
|
||
str.Append($"{Current_running_time}{Current_Authorization_time}软件版本号:{Software_Version_number};")
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "读取映射寄存器内容"
|
||
|
||
''' <summary>
|
||
''' 读取映射寄存器内容
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Read_Contents_Mapregister(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Dim register_count As Integer = data(0)
|
||
str.Append($"寄存器个数:{register_count};")
|
||
Dim t As Integer = 1
|
||
For i = 1 To register_count
|
||
Dim start_address As String = $"{data(t)}.{data(t + 1)}.{data(t + 2)}.{data(t + 3)}"
|
||
Dim register_data As String = Encoding.UTF8.GetString(data.Skip(t + 4).Take(4).ToArray)
|
||
str.Append($"寄存器地址:{start_address},寄存器内容:{register_data};")
|
||
t += 8
|
||
Next
|
||
|
||
ElseIf state = states.发送 Then
|
||
Dim register_count As Integer = data(0)
|
||
Dim start_address As String = $"{data(1)}.{data(2)}.{data(3)}.{data(4)}"
|
||
str.Append($"寄存器个数:{register_count};寄存器起始地址:{start_address}")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "设置映射寄存器内容"
|
||
|
||
''' <summary>
|
||
''' 设置映射寄存器内容
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Set_Contents_Mappingregister(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("成功")
|
||
Case &H2
|
||
str.Append("失败")
|
||
End Select
|
||
ElseIf state = states.发送 Then
|
||
Dim register_count As Integer = data(0)
|
||
str.Append($"寄存器个数:{register_count};")
|
||
Dim t As Integer = 1
|
||
For i = 1 To register_count
|
||
Dim start_address As String = $"{data(t)}.{data(t + 1)}.{data(t + 2)}.{data(t + 3)}"
|
||
Dim register_data As String = Encoding.UTF8.GetString(data.Skip(t + 4).Take(4).ToArray)
|
||
str.Append($"寄存器地址:{start_address},寄存器内容:{register_data};")
|
||
t += 8
|
||
Next
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "透传下发命令"
|
||
|
||
''' <summary>
|
||
''' 透传下发命令
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Transparent_Transmission_Delivers_Commands(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
Dim Passthrough_state As Integer = data(1)
|
||
Select Case Passthrough_state
|
||
Case &H1
|
||
str.Append("透传状态查询--状态:正常模式;")
|
||
Case &H2
|
||
str.Append("透传状态查询--状态:透传模式;")
|
||
Case &H3
|
||
str.Append("透传状态查询--状态:监控模式;")
|
||
End Select
|
||
|
||
Case &H2
|
||
Dim Passthrough_state As Integer = data(1)
|
||
Select Case Passthrough_state
|
||
Case &H1
|
||
str.Append("透传设置--状态:正确;")
|
||
Case &H2
|
||
str.Append("透传设置--状态:错误;")
|
||
End Select
|
||
Case &H3
|
||
Dim Passthrough_state As Integer = data(1)
|
||
Select Case Passthrough_state
|
||
Case &H1
|
||
str.Append("透传数据传输--状态:正确;")
|
||
Case &H2
|
||
str.Append("透传数据传输--状态:有误;")
|
||
Case &H3
|
||
str.Append("透传数据传输--状态:超时;")
|
||
End Select
|
||
End Select
|
||
ElseIf state = states.发送 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
Dim Port As Integer = data(1)
|
||
str.Append($"透传状态查询--查询的485端口:{Port};")
|
||
Case &H2
|
||
Dim Port As Integer = data(1)
|
||
str.Append($"透传设置--设置的485端口:{Port};")
|
||
Select Case data(2)
|
||
Case &H1
|
||
str.Append($"波特率:9600;")
|
||
Case &H2
|
||
str.Append($"波特率:14400;")
|
||
Case &H3
|
||
str.Append($"波特率:19200;")
|
||
Case &H4
|
||
str.Append($"波特率:38400;")
|
||
Case &H5
|
||
str.Append($"波特率:56000;")
|
||
Case &H6
|
||
str.Append($"波特率:57600;")
|
||
Case &H7
|
||
str.Append($"波特率:115200;")
|
||
End Select
|
||
str.Append($"超时时间:{data(3)}s;")
|
||
Select Case data(4)
|
||
Case &H1
|
||
str.Append("透传模式设置:正常模式;")
|
||
Case &H2
|
||
str.Append("透传模式设置:透传模式;")
|
||
Case &H3
|
||
str.Append("透传模式设置:监控模式;")
|
||
End Select
|
||
Case &H3
|
||
Dim Port As Integer = data(1)
|
||
str.Append($"透传数据传输--485端口:{Port};")
|
||
str.Append($"超时时间:{data(2)}s;")
|
||
str.Append($"透传数据:{BitConverter.ToString(data.Skip(3).ToArray).Replace("-", " ")}")
|
||
End Select
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "透传上报"
|
||
|
||
''' <summary>
|
||
''' 透传上报
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Passthrough_Report(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("正确")
|
||
Case &H2
|
||
str.Append("有误")
|
||
End Select
|
||
|
||
ElseIf state = states.发送 Then
|
||
Dim Port As Integer = data(1)
|
||
str.Append($"透传数据传输--485端口:{Port};")
|
||
Select Case data(1)
|
||
Case &H1
|
||
str.Append($"波特率:9600;")
|
||
Case &H2
|
||
str.Append($"波特率:14400;")
|
||
Case &H3
|
||
str.Append($"波特率:19200;")
|
||
Case &H4
|
||
str.Append($"波特率:38400;")
|
||
Case &H5
|
||
str.Append($"波特率:56000;")
|
||
Case &H6
|
||
str.Append($"波特率:57600;")
|
||
Case &H7
|
||
str.Append($"波特率:115200;")
|
||
End Select
|
||
str.Append($"透传数据:{BitConverter.ToString(data.Skip(2).ToArray).Replace("-", " ")}")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "时间同步"
|
||
|
||
''' <summary>
|
||
''' 时间同步
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Time_Synchronization(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("成功")
|
||
Case &H2
|
||
str.Append("失败")
|
||
End Select
|
||
ElseIf state = states.发送 Then
|
||
str.Append($"20{data(0)}年{data(1)}月{data(2)}日 星期{data(3)} {data(4)}:{data(5)}:{data(6)}秒")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "读取主机系统参数信息"
|
||
|
||
''' <summary>
|
||
''' 读取主机系统参数信息
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Read_Parameter_Information(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.发送 Then
|
||
Dim Model_number As Integer = DataTypes.ByteToInt(data.Skip(1).Take(16).ToArray) '机型编号
|
||
Dim ip As String = $"{data(17)}.{data(18)}.{data(19)}.{data(20)}" 'IP地址
|
||
Dim Serverip As String = $"{data(17)}.{data(18)}.{data(19)}.{data(20)}" '服务器IP地址
|
||
Dim Subnetmask As String = $"{data(21)}.{data(22)}.{data(23)}.{data(24)}" '子网掩码
|
||
Dim gateway As String = $"{data(29)}.{data(30)}.{data(31)}.{data(32)}" '网关
|
||
Dim Port As String = DataTypes.ByteToInt(data.Skip(33).Take(4).ToArray).ToString '端口
|
||
Dim DNSmask As String = $"{data(37)}.{data(38)}.{data(39)}.{data(40)}" 'DNS地址
|
||
Dim Version_Number As String = Encoding.UTF8.GetString(data.Skip(41).Take(20).ToArray) '软件版本号
|
||
Dim Hosttime As String = $"20{data(61)}/{data(62)}/{data(63)} {data(64)}:{data(65)}:{data(66)}" '主机时间
|
||
Dim MAC As String = BitConverter.ToString(data.Skip(87).Take(6).ToArray).Replace("-", " ") 'MAC地址
|
||
Dim projectnumber As String = DataTypes.ByteToInt(data.Skip(93).Take(4).ToArray).ToString '项目编号
|
||
Dim Room_Number_ID As String = DataTypes.ByteToInt(data.Skip(97).Take(4).ToArray).ToString '房号ID
|
||
Dim Room_Type_ID As String = DataTypes.ByteToInt(data.Skip(101).Take(4).ToArray).ToString '房型ID
|
||
Dim Set_Data_Version_Number As String = DataTypes.ByteToInt(data.Skip(105).Take(4).ToArray).ToString '配置数据版本号
|
||
Dim toroom As String = Encoding.UTF8.GetString(data.Skip(109).Take(4).ToArray) '房态
|
||
Dim season As String = Encoding.UTF8.GetString(data.Skip(113).Take(4).ToArray) '季节
|
||
Dim lock_state As String = Encoding.UTF8.GetString(data.Skip(117).Take(4).ToArray) '锁定状态
|
||
Dim Authorized_time As String = Encoding.UTF8.GetString(data.Skip(121).Take(4).ToArray) '授权时间
|
||
Dim Authorized_date As String = DataTypes.ByteToInt(data.Skip(125).Take(4).ToArray).ToString '授权天数
|
||
Dim Room_Number_Note As String = Encoding.UTF8.GetString(data.Skip(129).Take(16).ToArray) '房号备注
|
||
Dim Room_Type_Note As String = Encoding.UTF8.GetString(data.Skip(145).Take(16).ToArray) '房型备注
|
||
Dim Room_Note As String = Encoding.UTF8.GetString(data.Skip(161).Take(16).ToArray) '房间备注
|
||
Dim MCU_Model_Name As String = Encoding.UTF8.GetString(data.Skip(257).Take(64).ToArray) 'MCU机型名称
|
||
Dim Control_Model_Name As String = Encoding.UTF8.GetString(data.Skip(321).Take(64).ToArray) '中控机型名称
|
||
Dim Read_Register_Address As String = Encoding.UTF8.GetString(data.Skip(385).Take(16).ToArray) '读取寄存器地址
|
||
Dim Read_Register_Contents As String = Encoding.UTF8.GetString(data.Skip(389).Take(16).ToArray) '读取寄存器内容
|
||
|
||
|
||
str.Append($"本机按键状态:{data(0)};机型编号:{Model_number};IP地址:{ip};服务器IP地址:{ip};子网掩码:{Subnetmask};
|
||
端口:{Port};DNS地址:{DNSmask};软件版本号:{Version_Number};主机时间:{Hosttime};MAC地址:{MAC};
|
||
项目编号:{projectnumber};房号ID:{Room_Number_ID};房型ID:{Room_Type_ID};配置数据版本号:{Set_Data_Version_Number};
|
||
房态:{toroom};季节:{season};锁定状态:{lock_state};授权时间:{Authorized_time};授权天数:{Authorized_date};
|
||
房号备注:{Room_Number_Note};房型备注:{Room_Type_Note};房间备注:{Room_Note};MCU机型名称:{MCU_Model_Name};
|
||
中控机型名称:{Control_Model_Name};读取寄存器地址:{Read_Register_Address};读取寄存器内容:{Read_Register_Contents};")
|
||
|
||
|
||
ElseIf state = states.接收 Then
|
||
Dim register_count As Integer = data(4)
|
||
Dim start_address As String = Encoding.UTF8.GetString(data.Skip(5).Take(4).ToArray)
|
||
str.Append($"寄存器个数:{register_count};寄存器起始地址:{start_address}")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "启动设备测试"
|
||
|
||
''' <summary>
|
||
''' 启动设备测试
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Startup_Device_Test(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.发送 Then
|
||
Dim number As Integer = data(0)
|
||
Dim t As Integer = 1
|
||
If number > 0 Then
|
||
For i = 1 To number
|
||
Dim DevType As String = data(t)
|
||
Dim DevAddr As String = data(t + 1)
|
||
Select Case data(t + 2)
|
||
Case &H1
|
||
str.Append($"测试设备类型:{DevType};测试设备地址:{DevAddr};测试设备状态:正常")
|
||
Case &H2
|
||
str.Append($"测试设备类型:{DevType};测试设备地址:{DevAddr};测试设备状态:失败")
|
||
End Select
|
||
t += 3
|
||
Next
|
||
End If
|
||
ElseIf state = states.接收 Then
|
||
Select Case data(0)
|
||
Case 1
|
||
str.Append("启动测试")
|
||
End Select
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "配置设备存在"
|
||
|
||
''' <summary>
|
||
''' 配置设备存在
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Configuration_Device_Exists(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
str.Append($"配置总包数:{data(0)};当前包序号:{data(1)};")
|
||
Select Case data(2)
|
||
Case &H0
|
||
str.Append($"数据内容:设备存在")
|
||
Case &H1
|
||
str.Append($"数据内容:设备动作")
|
||
End Select
|
||
str.Append($"设备类型:{data(3)};设备地址:{data(4)}")
|
||
Select Case data(5)
|
||
Case &H0
|
||
str.Append("波特率:无效")
|
||
Case &H1
|
||
str.Append("波特率:9600")
|
||
Case &H2
|
||
str.Append("波特率:14400")
|
||
Case &H3
|
||
str.Append("波特率:19200")
|
||
Case &H4
|
||
str.Append("波特率:38400")
|
||
Case &H5
|
||
str.Append("波特率:56000")
|
||
Case &H6
|
||
str.Append("波特率:57600")
|
||
Case &H7
|
||
str.Append("波特率:115200")
|
||
Case &H8
|
||
str.Append("波特率:4800")
|
||
Case &H9
|
||
str.Append("波特率:2400")
|
||
End Select
|
||
str.Append($"端口号:{data(6)};协议:{data(7)};设备型号:{Encoding.UTF8.GetString(data.Skip(72).Take(16).ToArray)};
|
||
设备名称:{Encoding.UTF8.GetString(data.Skip(88).Take(16).ToArray)};备注:{Encoding.UTF8.GetString(data.Skip(104).Take(138).ToArray)};")
|
||
|
||
|
||
ElseIf state = states.发送 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("成功")
|
||
Case &H2
|
||
str.Append("失败")
|
||
End Select
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "读取配置设备"
|
||
|
||
''' <summary>
|
||
''' 读取配置设备
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function Reading_Configuration_Devices(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.发送 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("读取配置类型:配置信息")
|
||
Case &H2
|
||
str.Append("读取配置类型:配置数据")
|
||
End Select
|
||
str.Append($"读取配置总包数:{data(1)};")
|
||
For i = 1 To data(1)
|
||
str.Append($"读取配置当前包序号:{data(i + 1)};")
|
||
Next
|
||
ElseIf state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("读取配置类型:配置信息")
|
||
Case &H2
|
||
str.Append("读取配置类型:配置数据")
|
||
End Select
|
||
str.Append($"读取配置总包数:{data(1)};读取配置当前包序号:{data(2)};")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "BLV_Cx升级命令"
|
||
|
||
''' <summary>
|
||
''' BLV_Cx升级命令
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function BLV_Cx_Upgrade_Command(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H0
|
||
str.Append("就绪")
|
||
Case &H1
|
||
str.Append("成功")
|
||
Case &H1
|
||
str.Append("失败")
|
||
Case &H1
|
||
str.Append("文件块数错误")
|
||
Case &H1
|
||
str.Append("文件类型错误")
|
||
Case &H1
|
||
str.Append("文件MD5值错误")
|
||
End Select
|
||
str.Append($"固件版本号:{Encoding.UTF8.GetString(data.Skip(1).Take(20).ToArray)}")
|
||
ElseIf state = states.发送 Then
|
||
str.Append($"配置软件IP地址:{data(0)}.{data(1)}.{data(2)}.{data(3)}")
|
||
str.Append($"配置端口号:{DataTypes.ByteToInt(data.Skip(4).Take(4).ToArray)}")
|
||
str.Append($"升级文件MD5值:{Encoding.UTF8.GetString(data.Skip(6).Take(16).ToArray)}")
|
||
str.Append($"文件总块数:{DataTypes.ByteToInt(data.Skip(22).Take(4).ToArray)}")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "BLV_Cx校验命令"
|
||
|
||
''' <summary>
|
||
''' BLV_Cx校验命令
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function BLV_Cx_Verification_Command(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("文件校验成功")
|
||
Case &H2
|
||
str.Append("文件校验失败")
|
||
Case &H2
|
||
str.Append("文件未接收完成")
|
||
Case &H2
|
||
str.Append("未知错误")
|
||
End Select
|
||
ElseIf state = states.发送 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("APP文件校验")
|
||
Case &H2
|
||
str.Append("配置文件校验")
|
||
End Select
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "BLV_Cx复位命令"
|
||
|
||
''' <summary>
|
||
''' BLV_Cx复位命令
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function BLV_Cx_Reset_Command(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("执行结果:成功")
|
||
Case &H2
|
||
str.Append("执行结果:失败")
|
||
End Select
|
||
ElseIf state = states.发送 Then
|
||
Select Case data(0)
|
||
Case &H1
|
||
str.Append("复位方式:软件复位")
|
||
Case &H2
|
||
str.Append("复位方式:看门狗复位")
|
||
End Select
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#Region "BLV_Cx配置文件下发命令"
|
||
|
||
''' <summary>
|
||
''' BLV_Cx配置文件下发命令
|
||
''' </summary>
|
||
''' <param name="data"></param>
|
||
''' <param name="state"></param>
|
||
''' <returns></returns>
|
||
Public Function BLV_Cx_Configuration_File_Send_Commands(data As Byte(), state As Boolean) As String
|
||
Dim str As New StringBuilder
|
||
Try
|
||
If state = states.接收 Then
|
||
Select Case data(0)
|
||
Case &H0
|
||
str.Append("就绪")
|
||
Case &H1
|
||
str.Append("成功")
|
||
Case &H2
|
||
str.Append("失败")
|
||
Case &H3
|
||
str.Append("文件块数错误")
|
||
Case &H4
|
||
str.Append("文件类型错误")
|
||
Case &H5
|
||
str.Append("文件MD5值错误")
|
||
End Select
|
||
str.Append($"固件版本号:{Encoding.UTF8.GetString(data.Skip(1).Take(20).ToArray)}")
|
||
ElseIf state = states.发送 Then
|
||
str.Append($"配置软件IP地址:{data(0)}.{data(1)}.{data(2)}.{data(3)}")
|
||
str.Append($"配置端口号:{DataTypes.ByteToInt(data.Skip(4).Take(4).ToArray)}")
|
||
str.Append($"升级文件MD5值:{Encoding.UTF8.GetString(data.Skip(6).Take(16).ToArray)}")
|
||
str.Append($"文件总块数:{DataTypes.ByteToInt(data.Skip(22).Take(4).ToArray)}")
|
||
End If
|
||
Catch ex As Exception
|
||
AdminLog.ApplicationLog.WriteErrorLog(ex)
|
||
End Try
|
||
Return str.ToString
|
||
End Function
|
||
|
||
#End Region
|
||
|
||
|
||
#End Region
|
||
|
||
|
||
|
||
|
||
|
||
End Class
|