public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Up_0x00 value, IJT808Config config) { writer.WriteBCD(value.StandardYear, 2); writer.WriteByte(value.ModifyNumber); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8100 value = new JT808_0x8100(); value.AckMsgNum = reader.ReadUInt16(); writer.WriteNumber($"[{ value.AckMsgNum.ReadNumber()}]应答流水号", value.AckMsgNum); value.JT808TerminalRegisterResult = (JT808TerminalRegisterResult)reader.ReadByte(); writer.WriteNumber($"[{ ((byte)value.JT808TerminalRegisterResult).ReadNumber()}]结果-{value.JT808TerminalRegisterResult.ToString()}", (byte)value.JT808TerminalRegisterResult); // 只有在成功后才有该字段 if (value.JT808TerminalRegisterResult == JT808TerminalRegisterResult.成功) { var codeBuffer = reader.ReadVirtualArray(reader.ReadCurrentRemainContentLength()).ToArray(); value.Code = reader.ReadRemainStringContent(); writer.WriteString($"[{codeBuffer.ToHexString()}]鉴权码", value.Code); } }
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0x001B value, IJT808Config config) { writer.WriteUInt32(value.ParamId); writer.WriteByte(value.ParamLength); writer.WriteUInt32(value.ParamValue); }
/// <summary> /// 格式分析 /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { var value = new JT808_0x9101(); value.ServerIpLength = reader.ReadByte(); writer.WriteNumber($"[{value.ServerIpLength.ReadNumber()}]服务器IP地址长度", value.ServerIpLength); string ipHex = reader.ReadVirtualArray(value.ServerIpLength).ToArray().ToHexString(); value.ServerIp = reader.ReadString(value.ServerIpLength); writer.WriteString($"[{ipHex}]服务器IP地址", value.ServerIp); value.TcpPort = reader.ReadUInt16(); writer.WriteNumber($"[{value.TcpPort.ReadNumber()}]服务器视频通道监听端口号(TCP)", value.TcpPort); value.UdpPort = reader.ReadUInt16(); writer.WriteNumber($"[{value.UdpPort.ReadNumber()}]服务器视频通道监听端口号(UDP)", value.UdpPort); value.ChannelNo = reader.ReadByte(); writer.WriteString($"[{value.ChannelNo.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.ChannelNo)); value.DataType = reader.ReadByte(); writer.WriteString($"[{value.DataType.ReadNumber()}]数据类型", DataTypeDisplay(value.DataType)); value.StreamType = reader.ReadByte(); writer.WriteString($"[{value.StreamType.ReadNumber()}]码流类型", value.StreamType == 0?"主码流":"子码流"); string DataTypeDisplay(byte DataType) { return(DataType switch { 0 => "音视频", 1 => "视频", 2 => "双向对讲", 3 => "监听", 4 => "中心广播", 5 => "透传", _ => "未知", }); }
/// <summary> /// /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="config"></param> public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF367 value, IJT808Config config) { writer.WriteUInt32(value.ParamId); writer.WriteByte(2); writer.WriteByte(value.RearApproachAlarmTimeThreshold); writer.WriteByte(value.LateralRearApproachAlarmTimeThreshold); }
public int Serialize(ref byte[] bytes, int offset, JT808_0x8103_0x0012 value, IJT808Config config) { offset += 1; var lenth = JT808BinaryExtensions.WriteStringLittle(bytes, offset, value.ParamValue); JT808BinaryExtensions.WriteByteLittle(bytes, offset - 1, (byte)lenth); offset += lenth; return(offset); }
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8400 value, IJT808Config config) { writer.WriteByte((byte)value.CallBack); writer.WriteString(value.PhoneNumber); }
/// <summary> /// /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="config"></param> public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x25 value, IJT808Config config) { writer.WriteByte(value.AttachInfoId); writer.WriteByte(value.AttachInfoLength); writer.WriteInt32(value.CarSignalStatus); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8900_0xF7 value = new JT808_0x8900_0xF7(); value.USBCount = reader.ReadByte(); writer.WriteNumber($"[{value.USBCount.ReadNumber()}]外设ID列表总数", value.USBCount); if (value.USBCount > 0) { writer.WriteStartArray("外设ID列表"); for (int i = 0; i < value.USBCount; i++) { writer.WriteStartObject(); byte usbId = reader.ReadByte(); writer.WriteNumber($"[{usbId.ReadNumber()}]外设ID", usbId); writer.WriteEndObject(); } writer.WriteEndArray(); } }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8203 value = new JT808_0x8203(); value.AlarmMsgNum = reader.ReadUInt16(); writer.WriteNumber($"[{ value.AlarmMsgNum.ReadNumber()}]报警消息流水号", value.AlarmMsgNum); value.ManualConfirmAlarmType = reader.ReadUInt32(); writer.WriteNumber($"[{ value.ManualConfirmAlarmType.ReadNumber()}]人工确认报警类型", value.ManualConfirmAlarmType); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x0200_0x25 value = new JT808_0x0200_0x25(); value.AttachInfoId = reader.ReadByte(); writer.WriteNumber($"[{value.AttachInfoId.ReadNumber()}]附加信息Id", value.AttachInfoId); value.AttachInfoLength = reader.ReadByte(); writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength); value.CarSignalStatus = reader.ReadInt32(); writer.WriteNumber($"[{value.CarSignalStatus.ReadNumber()}]扩展车辆信号状态位", value.CarSignalStatus); }
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8203 value, IJT808Config config) { writer.WriteUInt16(value.AlarmMsgNum); writer.WriteUInt32(value.ManualConfirmAlarmType); }
/// <summary> /// /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="config"></param> public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0x0075 value, IJT808Config config) { writer.WriteUInt32(value.ParamId); writer.WriteByte(value.ParamLength); writer.WriteByte(value.RTS_EncodeMode); writer.WriteByte(value.RTS_Resolution); writer.WriteUInt16(value.RTS_KF_Interval); writer.WriteByte(value.RTS_Target_FPS); writer.WriteUInt32(value.RTS_Target_CodeRate); writer.WriteByte(value.StreamStore_EncodeMode); writer.WriteByte(value.StreamStore_Resolution); writer.WriteUInt16(value.StreamStore_KF_Interval); writer.WriteByte(value.StreamStore_Target_FPS); writer.WriteUInt32(value.StreamStore_Target_CodeRate); writer.WriteUInt16(value.OSD); writer.WriteByte(value.AudioOutputEnabled); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8103_0x0075 value = new JT808_0x8103_0x0075(); value.ParamId = reader.ReadUInt32(); writer.WriteNumber($"[{value.ParamId.ReadNumber()}]参数 ID", value.ParamId); value.ParamLength = reader.ReadByte(); writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]数据长度", value.ParamLength); value.RTS_EncodeMode = reader.ReadByte(); writer.WriteString($"[{value.RTS_EncodeMode.ReadNumber()}]实时流编码模式", RTS_EncodeModeDisplay(value.RTS_EncodeMode)); value.RTS_Resolution = reader.ReadByte(); writer.WriteString($"[{value.RTS_Resolution.ReadNumber()}]实时流分辨率", RTS_ResolutionDisplay(value.RTS_Resolution)); value.RTS_KF_Interval = reader.ReadUInt16(); writer.WriteNumber($"[{value.RTS_KF_Interval.ReadNumber()}]实时流关键帧间隔(帧)", value.RTS_KF_Interval); value.RTS_Target_FPS = reader.ReadByte(); writer.WriteNumber($"[{value.RTS_Target_FPS.ReadNumber()}]实时流目标帧率(帧/s)", value.RTS_Target_FPS); value.RTS_Target_CodeRate = reader.ReadUInt32(); writer.WriteNumber($"[{value.RTS_Target_CodeRate.ReadNumber()}]实时流目标码流(kbps)", value.RTS_Target_CodeRate); value.StreamStore_EncodeMode = reader.ReadByte(); writer.WriteString($"[{value.StreamStore_EncodeMode.ReadNumber()}]存储量编码模式", StreamStore_EncodeModeDisplay(value.StreamStore_EncodeMode)); value.StreamStore_Resolution = reader.ReadByte(); writer.WriteString($"[{value.StreamStore_Resolution.ReadNumber()}]存储流分辨率", StreamStore_ResolutionDisplay(value.StreamStore_Resolution)); value.StreamStore_KF_Interval = reader.ReadUInt16(); writer.WriteNumber($"[{value.StreamStore_KF_Interval.ReadNumber()}]存储流关键帧间隔(帧)", value.StreamStore_KF_Interval); value.StreamStore_Target_FPS = reader.ReadByte(); writer.WriteNumber($"[{value.StreamStore_Target_FPS.ReadNumber()}]存储流目标帧率(帧/s)", value.StreamStore_Target_FPS); value.StreamStore_Target_CodeRate = reader.ReadUInt32(); writer.WriteNumber($"[{value.StreamStore_Target_CodeRate.ReadNumber()}]存储流目标码流(kbps)", value.StreamStore_Target_CodeRate); value.OSD = reader.ReadUInt16(); writer.WriteString($"[{value.OSD.ReadNumber()}]OBD字幕叠加设置", OBDDisplay(value.OSD)); value.AudioOutputEnabled = reader.ReadByte(); writer.WriteString($"[{value.AudioOutputEnabled.ReadNumber()}]是否启用音频输出", value.AudioOutputEnabled == 0 ? "不启用" : "启用"); string RTS_EncodeModeDisplay(byte RTS_EncodeMode) { switch (RTS_EncodeMode) { case 0: return("CBR固定码流"); case 1: return("VBR可变码流"); case 2: return("ABR平均码流"); default: break; } return("未知"); } string RTS_ResolutionDisplay(byte RTS_Resolution) { switch (RTS_Resolution) { case 0: return("QCIF"); case 1: return("CIF"); case 2: return("WCIF"); case 3: return("D1"); case 4: return("WD1"); case 5: return("720P"); case 6: return("1080P"); default: break; } return("未知"); } string StreamStore_EncodeModeDisplay(byte StreamStore_EncodeMode) { { switch (RTS_EncodeMode) { case 0: return("CBR固定码流"); case 1: return("VBR可变码流"); case 2: return("ABR平均码流"); default: break; } return("未知"); } } string StreamStore_ResolutionDisplay(byte StreamStore_Resolution) { switch (RTS_Resolution) { case 0: return("QCIF"); case 1: return("CIF"); case 2: return("WCIF"); case 3: return("D1"); case 4: return("WD1"); case 5: return("720P"); case 6: return("1080P"); default: break; } return("未知"); } string OBDDisplay(ushort OBD) { string obdDisplay = string.Empty; obdDisplay += ((OBD & 0x0001) == 1) ? ",日期和时间" : ""; obdDisplay += ((OBD >> 1 & 0x0001) == 1) ? ",车牌号码" : ""; obdDisplay += ((OBD >> 2 & 0x0001) == 1) ? ",逻辑通道号" : ""; obdDisplay += ((OBD >> 3 & 0x0001) == 1) ? ",经纬度" : ""; obdDisplay += ((OBD >> 4 & 0x0001) == 1) ? ",行驶记录速度" : ""; obdDisplay += ((OBD >> 5 & 0x0001) == 1) ? ",卫星定位速度" : ""; obdDisplay += ((OBD >> 6 & 0x0001) == 1) ? ",连续驾驶时间" : ""; return(obdDisplay.Length > 0 ? obdDisplay.Substring(1) : ""); } }
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0x0011 value, IJT808Config config) { writer.WriteUInt32(value.ParamId); writer.Skip(1, out int skipPosition); writer.WriteString(value.ParamValue); int length = writer.GetCurrentPosition() - skipPosition - 1; writer.WriteByteReturn((byte)length, skipPosition); }
/// <summary> /// /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="config"></param> public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8900_0xF7 value, IJT808Config config) { if (value.MultipleUSB != null && value.MultipleUSB.Count > 0) { writer.WriteByte((byte)value.MultipleUSB.Count); foreach (var item in value.MultipleUSB) { writer.WriteByte(item); } } }
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0500 value, IJT808Config config) { writer.WriteUInt16(value.MsgNum); config.GetMessagePackFormatter <JT808_0x0200>().Serialize(ref writer, value.JT808_0x0200, config); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x1205 value = new JT808_0x1205(); value.MsgNum = reader.ReadUInt16(); writer.WriteNumber($"[{value.MsgNum.ReadNumber()}]流水号", value.MsgNum); value.AVResouceTotal = reader.ReadUInt32(); writer.WriteNumber($"[{value.AVResouceTotal.ReadNumber()}]音视频资源总数", value.AVResouceTotal); writer.WriteStartArray("音视频资源列表"); var formatter = config.GetMessagePackFormatter <JT808_0x1205_AVResouce>(); for (int i = 0; i < value.AVResouceTotal; i++) { writer.WriteStartObject(); formatter.Analyze(ref reader, writer, config); writer.WriteEndObject(); } writer.WriteEndArray(); }
public JT808_0x8103_0x0012 Deserialize(ReadOnlySpan <byte> bytes, out int readSize, IJT808Config config) { int offset = 0; JT808_0x8103_0x0012 jT808_0x8103_0x0012 = new JT808_0x8103_0x0012 { ParamLength = JT808BinaryExtensions.ReadByteLittle(bytes, ref offset) }; jT808_0x8103_0x0012.ParamValue = JT808BinaryExtensions.ReadStringLittle(bytes, ref offset, jT808_0x8103_0x0012.ParamLength); readSize = offset; return(jT808_0x8103_0x0012); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8103_0x0003 jT808_0x8103_0x0003 = new JT808_0x8103_0x0003(); jT808_0x8103_0x0003.ParamId = reader.ReadUInt32(); jT808_0x8103_0x0003.ParamLength = reader.ReadByte(); jT808_0x8103_0x0003.ParamValue = reader.ReadUInt32(); writer.WriteNumber($"[{ jT808_0x8103_0x0003.ParamId.ReadNumber()}]参数ID", jT808_0x8103_0x0003.ParamId); writer.WriteNumber($"[{jT808_0x8103_0x0003.ParamLength.ReadNumber()}]参数长度", jT808_0x8103_0x0003.ParamLength); writer.WriteNumber($"[{ jT808_0x8103_0x0003.ParamValue.ReadNumber()}]参数值[TCP消息重传次数]", jT808_0x8103_0x0003.ParamValue); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8400 value = new JT808_0x8400(); value.CallBack = (JT808CallBackType)reader.ReadByte(); writer.WriteNumber($"[{((byte)value.CallBack).ReadNumber()}]{value.CallBack.ToString()}", (byte)value.CallBack); // 最长为 20 字节 var pnoBuffer = reader.ReadVirtualArray(reader.ReadCurrentRemainContentLength()).ToArray(); value.PhoneNumber = reader.ReadRemainStringContent(); writer.WriteString($"[{pnoBuffer.ToHexString()}]电话号码", value.PhoneNumber); }
/// <summary> /// /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="config"></param> public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x11 value, IJT808Config config) { writer.WriteDateTime_yyMMddHHmmss(value.StartTime); writer.WriteDateTime_yyMMddHHmmss(value.EndTime); writer.WriteUInt16(value.Count); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8103_0xF367 value = new JT808_0x8103_0xF367(); value.ParamId = reader.ReadUInt32(); value.ParamLength = reader.ReadByte(); writer.WriteNumber($"[{ value.ParamId.ReadNumber()}]参数ID", value.ParamId); writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]参数长度", value.ParamLength); value.RearApproachAlarmTimeThreshold = reader.ReadByte(); writer.WriteNumber($"[{value.RearApproachAlarmTimeThreshold.ReadNumber()}]后方接近报警时间阈值", value.RearApproachAlarmTimeThreshold); value.LateralRearApproachAlarmTimeThreshold = reader.ReadByte(); writer.WriteNumber($"[{value.LateralRearApproachAlarmTimeThreshold.ReadNumber()}]侧后方接近报警时间阈值", value.LateralRearApproachAlarmTimeThreshold); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="writer"></param> /// <param name="config"></param> public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_CarDVR_Down_0x11 value = new JT808_CarDVR_Down_0x11(); value.StartTime = reader.ReadDateTime_yyMMddHHmmss(); writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss")); value.EndTime = reader.ReadDateTime_yyMMddHHmmss(); writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss")); value.Count = reader.ReadUInt16(); writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x9206 value = new JT808_0x9206(); value.ServerIpLength = reader.ReadByte(); writer.WriteNumber($"[{value.ServerIpLength.ReadNumber()}]服务器IP地址长度", value.ServerIpLength); string ipHex = reader.ReadVirtualArray(value.ServerIpLength).ToArray().ToHexString(); value.ServerIp = reader.ReadString(value.ServerIpLength); writer.WriteString($"[{ipHex}]服务器IP地址", value.ServerIp); value.Port = reader.ReadUInt16(); writer.WriteNumber($"[{value.Port.ReadNumber()}]服务器端口", value.Port); value.UserNameLength = reader.ReadByte(); writer.WriteNumber($"[{value.UserNameLength.ReadNumber()}]用户名长度", value.UserNameLength); string userNameHex = reader.ReadVirtualArray(value.UserNameLength).ToArray().ToHexString(); value.UserName = reader.ReadString(value.UserNameLength); writer.WriteString($"[{userNameHex}]用户名", value.UserName); value.PasswordLength = reader.ReadByte(); writer.WriteNumber($"[{value.PasswordLength.ReadNumber()}]密码长度", value.PasswordLength); string passwordHex = reader.ReadVirtualArray(value.PasswordLength).ToArray().ToHexString(); value.Password = reader.ReadString(value.PasswordLength); writer.WriteString($"[{passwordHex}]密码", value.Password); value.FileUploadPathLength = reader.ReadByte(); writer.WriteNumber($"[{value.FileUploadPathLength.ReadNumber()}]文件上传路径长度", value.FileUploadPathLength); string fileUploadPathHex = reader.ReadVirtualArray(value.FileUploadPathLength).ToArray().ToHexString(); value.FileUploadPath = reader.ReadString(value.FileUploadPathLength); writer.WriteString($"[{fileUploadPathHex}]文件上传路径", value.FileUploadPath); value.LogicChannelNo = reader.ReadByte(); writer.WriteString($"[{value.LogicChannelNo.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.LogicChannelNo)); value.BeginTime = reader.ReadDateTime6(); writer.WriteString($"[{value.BeginTime.ToString("yyMMddHHmmss")}]起始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss")); value.EndTime = reader.ReadDateTime6(); writer.WriteString($"[{value.EndTime.ToString("yyMMddHHmmss")}]起始时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss")); value.AlarmFlag = reader.ReadUInt32(); writer.WriteNumber($"[{value.AlarmFlag.ReadNumber()}]报警标志", value.AlarmFlag); value.AVResourceType = reader.ReadByte(); writer.WriteString($"[{value.AVResourceType.ReadNumber()}]音视频类型", AVResourceTypeDisplay(value.AVResourceType)); value.StreamType = reader.ReadByte(); writer.WriteString($"[{value.StreamType.ReadNumber()}]码流类型", StreamTypeDisplay(value.StreamType)); value.MemoryPositon = reader.ReadByte(); writer.WriteString($"[{value.MemoryPositon.ReadNumber()}]存储器类型", MemoryPositonDisplay(value.MemoryPositon)); value.TaskExcuteCondition = reader.ReadByte(); writer.WriteString($"[{value.TaskExcuteCondition.ReadNumber()}]任务执行条件", TaskExcuteConditionDisplay(value.TaskExcuteCondition)); string AVResourceTypeDisplay(byte AVResourceType) { switch (AVResourceType) { case 0: return("音视频"); case 1: return("音频"); case 2: return("视频"); case 3: return("音频或视频"); default: return("未知"); } } string StreamTypeDisplay(byte StreamType) { switch (StreamType) { case 0: return("所有码流"); case 1: return("主码流"); case 2: return("子码流"); default: return("未知"); } } string MemoryPositonDisplay(byte MemoryPositon) { switch (MemoryPositon) { case 0: return("主存储器或灾备服务器"); case 1: return("主存储器"); case 2: return("灾备服务器"); default: return("未知"); } } string LogicalChannelNoDisplay(byte LogicalChannelNo) { switch (LogicalChannelNo) { case 1: return("驾驶员"); case 2: return("车辆正前方"); case 3: return("车前门"); case 4: return("车厢前部"); case 5: return("车厢后部"); case 7: return("行李舱"); case 8: return("车辆左侧"); case 9: return("车辆右侧"); case 10: return("车辆正后方"); case 11: return("车厢中部"); case 12: return("车中门"); case 13: return("驾驶席车门"); case 33: return("驾驶员"); case 36: return("车厢前部"); case 37: return("车厢后部"); default: return("预留"); } } string TaskExcuteConditionDisplay(byte TaskExcuteCondition) { string taskExcuteConditionDisplay = string.Empty; taskExcuteConditionDisplay += (TaskExcuteCondition & 0x01) == 1 ? ",WIFI":""; taskExcuteConditionDisplay += (TaskExcuteCondition & 0x01) == 1 ? ",LAN" : ""; taskExcuteConditionDisplay += (TaskExcuteCondition & 0x01) == 1 ? ",3G/4G" : ""; return(taskExcuteConditionDisplay.Length > 0 ? taskExcuteConditionDisplay.Substring(1) : ""); } }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8300 jT808_0X8300 = new JT808_0x8300(); jT808_0X8300.TextFlag = reader.ReadByte(); writer.WriteNumber($"[{ jT808_0X8300.TextFlag.ReadNumber()}]文本信息标志位", jT808_0X8300.TextFlag); if (reader.Version == JT808Version.JTT2019) { jT808_0X8300.TextType = reader.ReadByte(); writer.WriteNumber($"[{ jT808_0X8300.TextType.ReadNumber()}]文本类型-{(jT808_0X8300.TextType==1? "通知":"服务")}", jT808_0X8300.TextType); } var txtBuffer = reader.ReadVirtualArray(reader.ReadCurrentRemainContentLength()).ToArray(); jT808_0X8300.TextInfo = reader.ReadRemainStringContent(); writer.WriteString($"[{txtBuffer.ToHexString()}]答案内容", jT808_0X8300.TextInfo); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8103_0x001B jT808_0x8103_0x001B = new JT808_0x8103_0x001B(); jT808_0x8103_0x001B.ParamId = reader.ReadUInt32(); jT808_0x8103_0x001B.ParamLength = reader.ReadByte(); jT808_0x8103_0x001B.ParamValue = reader.ReadUInt32(); writer.WriteNumber($"[{ jT808_0x8103_0x001B.ParamId.ReadNumber()}]参数ID", jT808_0x8103_0x001B.ParamId); writer.WriteNumber($"[{jT808_0x8103_0x001B.ParamLength.ReadNumber()}]参数长度", jT808_0x8103_0x001B.ParamLength); writer.WriteNumber($"[{ jT808_0x8103_0x001B.ParamValue.ReadNumber()}]参数值[道路运输证IC卡认证主服务器TCP端口]", jT808_0x8103_0x001B.ParamValue); }
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8003 value, IJT808Config config) { writer.WriteUInt16(value.OriginalMsgNum); writer.WriteByte((byte)(value.AgainPackageData.Length / 2)); writer.WriteArray(value.AgainPackageData); }
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0x0079 value, IJT808Config config) { writer.WriteUInt32(value.ParamId); writer.WriteByte(value.ParamLength); writer.WriteByte(value.StorageThresholds); writer.WriteByte(value.Duration); writer.WriteByte(value.BeginMinute); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_CarDVR_Up_0x00 value = new JT808_CarDVR_Up_0x00(); value.StandardYear = reader.ReadBCD(2); writer.WriteString($"[{value.StandardYear}]记录仪执行标准年号", value.StandardYear); value.ModifyNumber = reader.ReadByte(); writer.WriteNumber($"[{value.ModifyNumber.ReadNumber()}]修改单号", value.ModifyNumber); }