public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x0802 value = new JT808_0x0802(); value.MsgNum = reader.ReadUInt16(); writer.WriteNumber($"[{value.MsgNum.ReadNumber()}]应答流水号", value.MsgNum); value.MultimediaItemCount = reader.ReadUInt16(); writer.WriteNumber($"[{value.MultimediaItemCount.ReadNumber()}]多媒体数据总项数", value.MultimediaItemCount); writer.WriteStartArray("多媒体数据集合"); for (var i = 0; i < value.MultimediaItemCount; i++) { writer.WriteStartObject(); JT808MultimediaSearchProperty jT808MultimediaSearchProperty = new JT808MultimediaSearchProperty(); jT808MultimediaSearchProperty.MultimediaId = reader.ReadUInt32(); writer.WriteNumber($"[{jT808MultimediaSearchProperty.MultimediaId.ReadNumber()}]多媒体ID", jT808MultimediaSearchProperty.MultimediaId); jT808MultimediaSearchProperty.MultimediaType = reader.ReadByte(); writer.WriteNumber($"[{jT808MultimediaSearchProperty.MultimediaType.ReadNumber()}]多媒体类型-{((JT808MultimediaType)jT808MultimediaSearchProperty.MultimediaType).ToString()}", jT808MultimediaSearchProperty.MultimediaType); jT808MultimediaSearchProperty.ChannelId = reader.ReadByte(); writer.WriteNumber($"[{jT808MultimediaSearchProperty.ChannelId.ReadNumber()}]通道ID", jT808MultimediaSearchProperty.ChannelId); jT808MultimediaSearchProperty.EventItemCoding = reader.ReadByte(); writer.WriteNumber($"[{jT808MultimediaSearchProperty.EventItemCoding.ReadNumber()}]事件项编码-{((JT808EventItemCoding)jT808MultimediaSearchProperty.EventItemCoding).ToString()}", jT808MultimediaSearchProperty.EventItemCoding); JT808MessagePackReader positionReader = new JT808MessagePackReader(reader.ReadArray(28)); writer.WriteStartObject($"位置基本信息"); config.GetAnalyze <JT808_0x0200>().Analyze(ref positionReader, writer, config); writer.WriteEndObject(); writer.WriteEndObject(); } writer.WriteEndArray(); }
/// <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_0x0704 jT808_0X0704 = new JT808_0x0704(); jT808_0X0704.Count = reader.ReadUInt16(); writer.WriteNumber($"[{jT808_0X0704.Count.ReadNumber()}]数据项个数", jT808_0X0704.Count); jT808_0X0704.LocationType = (JT808_0x0704.BatchLocationType)reader.ReadByte(); writer.WriteNumber($"[{((byte)jT808_0X0704.LocationType).ReadNumber()}]位置数据类型-{jT808_0X0704.LocationType}", (byte)jT808_0X0704.LocationType); writer.WriteStartArray("位置汇报数据集合"); for (int i = 0; i < jT808_0X0704.Count; i++) { writer.WriteStartObject(); int buflen = reader.ReadUInt16(); writer.WriteNumber($"[{buflen.ReadNumber()}]位置汇报数据长度", buflen); try { writer.WriteString($"位置汇报数据", reader.ReadVirtualArray(buflen).ToArray().ToHexString()); JT808MessagePackReader tmpReader = new JT808MessagePackReader(reader.ReadArray(buflen)); writer.WriteStartObject("位置信息汇报"); config.GetAnalyze <JT808_0x0200>().Analyze(ref tmpReader, writer, config); writer.WriteEndObject(); } catch (Exception) { } writer.WriteEndObject(); } writer.WriteEndArray(); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8108 value = new JT808_0x8108(); value.UpgradeType = (JT808UpgradeType)reader.ReadByte(); writer.WriteNumber($"[{ ((byte)value.UpgradeType).ReadNumber()}]升级类型-{value.UpgradeType.ToString()}", (byte)value.UpgradeType); if (reader.Version == JT808Version.JTT2019) { var makerIdBuffer = reader.ReadVirtualArray(11).ToArray(); value.MakerId = reader.ReadString(11); writer.WriteString($"[{makerIdBuffer.ToHexString()}]制造商ID", value.MakerId); } else { var makerIdBuffer = reader.ReadVirtualArray(5).ToArray(); value.MakerId = reader.ReadString(5); writer.WriteString($"[{makerIdBuffer.ToHexString()}]制造商ID", value.MakerId); } value.VersionNumLength = reader.ReadByte(); writer.WriteNumber($"[{value.VersionNumLength.ReadNumber()}]版本号长度", value.VersionNumLength); var versionNumBuffer = reader.ReadVirtualArray(value.VersionNumLength).ToArray(); value.VersionNum = reader.ReadString(value.VersionNumLength); writer.WriteString($"[{versionNumBuffer.ToHexString()}]版本号", value.VersionNum); value.UpgradePackageLength = reader.ReadInt32(); writer.WriteNumber($"[{value.UpgradePackageLength.ReadNumber()}]升级数据包长度", value.UpgradePackageLength); value.UpgradePackage = reader.ReadArray(value.UpgradePackageLength).ToArray(); writer.WriteString($"升级数据包", value.UpgradePackage.ToHexString()); }
public JT808_0x8500 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8500 value = new JT808_0x8500(); if (reader.Version == JT808Version.JTT2019) { value.ControlTypeCount = reader.ReadUInt16(); value.ControlTypes = new List <JT808_0x8500_ControlType>(); while (reader.ReadCurrentRemainContentLength() > 0) { var controlTypeId = reader.ReadVirtualUInt16(); if (config.JT808_0x8500_2019_Factory.Map.TryGetValue(controlTypeId, out object instance)) { value.ControlTypes.Add(JT808MessagePackFormatterResolverExtensions.JT808DynamicDeserialize(instance, ref reader, config)); } else { value.ControlTypeBuffer = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); } } } else { value.ControlFlag = reader.ReadByte(); } return(value); }
/// <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_0x8003 value = new JT808_0x8003(); value.OriginalMsgNum = reader.ReadUInt16(); writer.WriteNumber($"[{value.OriginalMsgNum.ReadNumber()}]原始消息流水号", value.OriginalMsgNum); if (reader.Version == JT808Version.JTT2019) { value.AgainPackageCount = reader.ReadUInt16(); } else { value.AgainPackageCount = reader.ReadByte(); } writer.WriteNumber($"[{value.AgainPackageCount.ReadNumber()}]重传包总数", value.AgainPackageCount); writer.WriteStartArray("重传包ID列表"); for (int i = 0; i < value.AgainPackageCount; i++) { writer.WriteStartObject(); var idBuffer = reader.ReadArray(2).ToArray(); writer.WriteString($"Id{i+1}", idBuffer.ToHexString()); writer.WriteEndObject(); } writer.WriteEndArray(); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="config"></param> /// <returns></returns> public JT808_0x0200_0x65 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x0200_0x65 value = new JT808_0x0200_0x65(); value.AttachInfoId = reader.ReadByte(); value.AttachInfoLength = reader.ReadByte(); value.AlarmId = reader.ReadUInt32(); value.FlagState = reader.ReadByte(); value.AlarmOrEventType = reader.ReadByte(); value.AlarmLevel = reader.ReadByte(); value.Fatigue = reader.ReadByte(); value.Retain = reader.ReadArray(4).ToArray(); value.Speed = reader.ReadByte(); value.Altitude = reader.ReadUInt16(); value.Latitude = (int)reader.ReadUInt32(); value.Longitude = (int)reader.ReadUInt32(); value.AlarmTime = reader.ReadDateTime_yyMMddHHmmss(); value.VehicleState = reader.ReadUInt16(); value.AlarmIdentification = new AlarmIdentificationProperty { TerminalId = reader.ReadString(30), Time = reader.ReadDateTime_yyMMddHHmmss(), SN = reader.ReadByte(), AttachCount = reader.ReadByte(), Retain1 = reader.ReadByte(), Retain2 = reader.ReadByte() }; return(value); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x0705 value = new JT808_0x0705(); value.CanItemCount = reader.ReadUInt16(); writer.WriteNumber($"[{value.CanItemCount.ReadNumber()}]数据项个数", value.CanItemCount); var dateTimeBuffer = reader.ReadVirtualArray(5).ToArray(); value.FirstCanReceiveTime = reader.ReadDateTime5(); writer.WriteString($"[{dateTimeBuffer.ToHexString()}]CAN总线数据接收时间", value.FirstCanReceiveTime.ToString("HH-mm-ss:fff")); writer.WriteStartArray("CAN总线数据项"); for (var i = 0; i < value.CanItemCount; i++) { writer.WriteStartObject(); JT808CanProperty jT808CanProperty = new JT808CanProperty(); jT808CanProperty.CanId = reader.ReadUInt32(); writer.WriteNumber($"[{ jT808CanProperty.CanId.ReadNumber()}]CAN_ID", jT808CanProperty.CanId); jT808CanProperty.CanData = reader.ReadArray(8).ToArray(); writer.WriteString($"CAN_数据", jT808CanProperty.CanData.ToHexString()); if (jT808CanProperty.CanData.Length != 8) { throw new JT808Exception(Enums.JT808ErrorCode.NotEnoughLength, $"{nameof(jT808CanProperty.CanData)}->8"); } writer.WriteEndObject(); } writer.WriteEndArray(); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { var originalMsgNum = reader.ReadUInt16(); ushort againPackageCount; if (reader.Version == JT808Version.JTT2013) { againPackageCount = reader.ReadByte(); } else { againPackageCount = reader.ReadUInt16(); } var againPackageData = reader.ReadArray(againPackageCount * 2); writer.WriteNumber($"[{originalMsgNum.ReadNumber()}]原始消息流水号", originalMsgNum); writer.WriteNumber($"[{againPackageCount.ReadNumber()}]重传包总数", againPackageCount); writer.WriteString("重传包ID", string.Join(",", againPackageData.ToArray())); writer.WriteStartArray("重传包ID列表"); for (var i = 0; i < againPackageCount; i++) { writer.WriteStringValue(string.Join(",", againPackageData.Slice(i * 2, 2).ToArray())); } writer.WriteEndArray(); }
/// <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_0xF366 value = new JT808_0x8103_0xF366(); value.ParamId = reader.ReadUInt32(); value.ParamLength = reader.ReadByte(); writer.WriteNumber($"[{value.ParamId.ReadNumber()}]参数ID", value.ParamId); writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]参数长度", value.ParamLength); string tyreSpecificationTypeHex = reader.ReadVirtualArray(12).ToArray().ToHexString(); value.TyreSpecificationType = reader.ReadString(12); writer.WriteString($"[{tyreSpecificationTypeHex}]轮胎规格型号", value.TyreSpecificationType); value.TyrePressureUnit = reader.ReadUInt16(); writer.WriteNumber($"[{value.TyrePressureUnit.ReadNumber()}]胎压单位", value.TyrePressureUnit); value.NormalFetalPressure = reader.ReadUInt16(); writer.WriteNumber($"[{value.NormalFetalPressure.ReadNumber()}]正常胎压值", value.NormalFetalPressure); value.ThresholdUnbalancedTirePressure = reader.ReadUInt16(); writer.WriteNumber($"[{value.ThresholdUnbalancedTirePressure.ReadNumber()}]胎压不平衡门限", value.ThresholdUnbalancedTirePressure); value.SlowLeakageThreshold = reader.ReadUInt16(); writer.WriteNumber($"[{value.SlowLeakageThreshold.ReadNumber()}]慢漏气门限", value.SlowLeakageThreshold); value.LowVoltageThreshold = reader.ReadUInt16(); writer.WriteNumber($"[{value.LowVoltageThreshold.ReadNumber()}]低压阈值", value.LowVoltageThreshold); value.HighVoltageThreshold = reader.ReadUInt16(); writer.WriteNumber($"[{value.HighVoltageThreshold.ReadNumber()}]高压阈值", value.HighVoltageThreshold); value.HighTemperatureThreshold = reader.ReadUInt16(); writer.WriteNumber($"[{value.HighTemperatureThreshold.ReadNumber()}]高温阈值", value.HighTemperatureThreshold); value.VoltageThreshold = reader.ReadUInt16(); writer.WriteNumber($"[{value.VoltageThreshold.ReadNumber()}]电压阈值", value.VoltageThreshold); value.TimedReportingInterval = reader.ReadUInt16(); writer.WriteNumber($"[{value.TimedReportingInterval.ReadNumber()}]定时上报时间间隔", value.TimedReportingInterval); value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); writer.WriteString("保留项", value.Retain.ToHexString()); }
public JT808_0x0200_0x65 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x0200_0x65 jT808_0X0200_0X65 = new JT808_0x0200_0x65(); jT808_0X0200_0X65.AttachInfoId = reader.ReadByte(); jT808_0X0200_0X65.AttachInfoLength = reader.ReadByte(); jT808_0X0200_0X65.AlarmId = reader.ReadUInt32(); jT808_0X0200_0X65.FlagState = reader.ReadByte(); jT808_0X0200_0X65.AlarmOrEventType = reader.ReadByte(); jT808_0X0200_0X65.AlarmLevel = reader.ReadByte(); jT808_0X0200_0X65.Fatigue = reader.ReadByte(); jT808_0X0200_0X65.Retain = reader.ReadArray(4).ToArray(); jT808_0X0200_0X65.Speed = reader.ReadByte(); jT808_0X0200_0X65.Altitude = reader.ReadUInt16(); jT808_0X0200_0X65.Latitude = (int)reader.ReadUInt32(); jT808_0X0200_0X65.Longitude = (int)reader.ReadUInt32(); jT808_0X0200_0X65.AlarmTime = reader.ReadDateTime6(); jT808_0X0200_0X65.VehicleState = reader.ReadUInt16(); jT808_0X0200_0X65.AlarmIdentification = new AlarmIdentificationProperty { TerminalID = reader.ReadString(7), Time = reader.ReadDateTime6(), SN = reader.ReadByte(), AttachCount = reader.ReadByte(), Retain = reader.ReadByte() }; return(jT808_0X0200_0X65); }
public JT808_0x8A00 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8A00 jT808_0X8A00 = new JT808_0x8A00(); jT808_0X8A00.E = reader.ReadUInt32(); jT808_0X8A00.N = reader.ReadArray(128).ToArray(); return(jT808_0X8A00); }
public JT808_0x0701 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x0701 jT808_0X0701 = new JT808_0x0701(); jT808_0X0701.ElectronicWaybillLength = reader.ReadUInt32(); jT808_0X0701.ElectronicContent = reader.ReadArray((int)jT808_0X0701.ElectronicWaybillLength).ToArray(); return(jT808_0X0701); }
public JT808LocationAttachImpl0x62 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808LocationAttachImpl0x62 jT808LocationAttachImpl0x62 = new JT808LocationAttachImpl0x62(); jT808LocationAttachImpl0x62.AttachInfoId = reader.ReadByte(); jT808LocationAttachImpl0x62.AttachInfoLength = reader.ReadUInt32(); jT808LocationAttachImpl0x62.Data = reader.ReadArray((int)jT808LocationAttachImpl0x62.AttachInfoLength).ToArray(); return(jT808LocationAttachImpl0x62); }
public JT808LocationAttachImpl0xDD Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808LocationAttachImpl0xDD jT808LocationAttachImpl0XDD = new JT808LocationAttachImpl0xDD(); jT808LocationAttachImpl0XDD.AttachInfoId = reader.ReadUInt16(); jT808LocationAttachImpl0XDD.AttachInfoLength = reader.ReadUInt16(); jT808LocationAttachImpl0XDD.TestValue = reader.ReadArray(jT808LocationAttachImpl0XDD.AttachInfoLength).ToArray(); return(jT808LocationAttachImpl0XDD); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="config"></param> /// <returns></returns> public JT808_0x8103_0x0032 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8103_0x0032 value = new JT808_0x8103_0x0032(); value.ParamId = reader.ReadUInt32(); value.ParamLength = reader.ReadByte(); value.ParamValue = reader.ReadArray(4).ToArray(); return(value); }
public JT808_0x0005 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x0005 value = new JT808_0x0005(); value.OriginalMsgNum = reader.ReadUInt16(); value.AgainPackageCount = reader.ReadByte(); value.AgainPackageData = reader.ReadArray(value.AgainPackageCount * 2).ToArray(); return(value); }
public JT808_0x8003 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8003 jT808_0X8003 = new JT808_0x8003(); jT808_0X8003.OriginalMsgNum = reader.ReadUInt16(); jT808_0X8003.AgainPackageCount = reader.ReadByte(); jT808_0X8003.AgainPackageData = reader.ReadArray(jT808_0X8003.AgainPackageCount * 2).ToArray(); return(jT808_0X8003); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8A00 jT808_0X8A00 = new JT808_0x8A00(); jT808_0X8A00.E = reader.ReadUInt32(); jT808_0X8A00.N = reader.ReadArray(128).ToArray(); writer.WriteNumber($"[{jT808_0X8A00.E.ReadNumber()}]RSA公钥e", jT808_0X8A00.E); writer.WriteString($"RSA公钥N", jT808_0X8A00.N.ToHexString()); }
/// <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_0x0701 value = new JT808_0x0701(); value.ElectronicWaybillLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.ElectronicWaybillLength.ReadNumber()}]电子运单长度", value.ElectronicWaybillLength); value.ElectronicContent = reader.ReadArray((int)value.ElectronicWaybillLength).ToArray(); writer.WriteString($"电子运单", value.ElectronicContent.ToHexString()); }
public JT808_0x8103_0x0110 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8103_0x0110 jT808_0x8103_0x0110 = new JT808_0x8103_0x0110(); jT808_0x8103_0x0110.ParamId = reader.ReadUInt32(); jT808_0x8103_0x0110.ParamLength = reader.ReadByte(); jT808_0x8103_0x0110.ParamValue = reader.ReadArray(jT808_0x8103_0x0110.ParamLength).ToArray(); return(jT808_0x8103_0x0110); }
public JT808_0x0200_0x05 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x0200_0x05 value = new JT808_0x0200_0x05(); value.AttachInfoId = reader.ReadByte(); value.AttachInfoLength = reader.ReadByte(); value.TirePressure = reader.ReadArray(value.AttachInfoLength).ToArray(); return(value); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="config"></param> /// <returns></returns> public JT808_0x8800 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8800 jT808_0X8800 = new JT808_0x8800(); jT808_0X8800.MultimediaId = reader.ReadUInt32(); jT808_0X8800.RetransmitPackageCount = reader.ReadByte(); jT808_0X8800.RetransmitPackageIds = reader.ReadArray(jT808_0X8800.RetransmitPackageCount * 2).ToArray(); return(jT808_0X8800); }
public JT808LocationAttachImpl0xDF Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808LocationAttachImpl0xDF jT808LocationAttachImpl0XDF = new JT808LocationAttachImpl0xDF(); jT808LocationAttachImpl0XDF.AttachInfoId = reader.ReadByte(); jT808LocationAttachImpl0XDF.AttachInfoLength = reader.ReadByte(); jT808LocationAttachImpl0XDF.TestValue = reader.ReadArray(jT808LocationAttachImpl0XDF.AttachInfoLength).ToArray(); return(jT808LocationAttachImpl0XDF); }
public void ReadArrayTest() { byte[] bytes = "7E 01 02 03 7E".ToHexBytes(); JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(bytes); Assert.Equal(JT808Package.BeginFlag, jT808MessagePackReader.ReadStart()); Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jT808MessagePackReader.ReadArray(3).ToArray()); Assert.Equal(JT808Package.EndFlag, jT808MessagePackReader.ReadEnd()); }
/// <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_0x0704 jT808_0X0704 = new JT808_0x0704(); jT808_0X0704.Count = reader.ReadUInt16(); writer.WriteNumber($"[{jT808_0X0704.Count.ReadNumber()}]数据项个数", jT808_0X0704.Count); jT808_0X0704.LocationType = (JT808_0x0704.BatchLocationType)reader.ReadByte(); writer.WriteNumber($"[{((byte)jT808_0X0704.LocationType).ReadNumber()}]位置数据类型-{jT808_0X0704.LocationType}", (byte)jT808_0X0704.LocationType); writer.WriteStartArray("位置汇报数据集合"); for (int i = 0; i < jT808_0X0704.Count; i++) { int remainContent = reader.ReadCurrentRemainContentLength(); if (remainContent <= 0) { continue; } writer.WriteStartObject(); int buflen = reader.ReadUInt16(); writer.WriteNumber($"[{buflen.ReadNumber()}]位置汇报数据长度", buflen); if ((remainContent - buflen) >= 0) { writer.WriteString($"位置汇报数据{{{i}}}", reader.ReadVirtualArray(buflen).ToArray().ToHexString()); JT808MessagePackReader tmpReader = new JT808MessagePackReader(reader.ReadArray(buflen), reader.Version); writer.WriteStartObject("位置信息汇报"); try { config.GetAnalyze <JT808_0x0200>().Analyze(ref tmpReader, writer, config); } catch (Exception ex) { writer.WriteString($"分析异常", ex.StackTrace); } writer.WriteEndObject(); } else { int remainContent1 = reader.ReadCurrentRemainContentLength(); var buffer = reader.ReadArray(remainContent1); writer.WriteString($"位置汇报异常数据{{{i}}}", buffer.ToArray().ToHexString()); } writer.WriteEndObject(); } writer.WriteEndArray(); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="config"></param> /// <returns></returns> public JT808_0x0901 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x0901 value = new JT808_0x0901(); var compressMessageLength = reader.ReadUInt32(); var data = reader.ReadArray((int)compressMessageLength); value.UnCompressMessage = config.Compress.Decompress(data.ToArray()); value.UnCompressMessageLength = (uint)value.UnCompressMessage.Length; return(value); }
public JT808_0x8103_0xF365 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8103_0xF365 jT808_0X8103_0XF365 = new JT808_0x8103_0xF365(); jT808_0X8103_0XF365.ParamId = reader.ReadUInt32(); jT808_0X8103_0XF365.ParamLength = reader.ReadByte(); jT808_0X8103_0XF365.AlarmJudgeSpeedThreshold = reader.ReadByte(); jT808_0X8103_0XF365.WarningVolume = reader.ReadByte(); jT808_0X8103_0XF365.ActivePhotographyStrategy = reader.ReadByte(); jT808_0X8103_0XF365.ActivelyTimePhotoInterval = reader.ReadUInt16(); jT808_0X8103_0XF365.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16(); jT808_0X8103_0XF365.SingleInitiativePhotos = reader.ReadByte(); jT808_0X8103_0XF365.SingleInitiativePhotosInterval = reader.ReadByte(); jT808_0X8103_0XF365.PhotoResolution = reader.ReadByte(); jT808_0X8103_0XF365.VideoRecordingResolution = reader.ReadByte(); jT808_0X8103_0XF365.AlarmEnable = reader.ReadUInt32(); jT808_0X8103_0XF365.EventEnable = reader.ReadUInt32(); jT808_0X8103_0XF365.TimeIntervalSmokingAlarmJudgment = reader.ReadUInt16(); jT808_0X8103_0XF365.CallAlarmDetermineTimeInterval = reader.ReadUInt16(); jT808_0X8103_0XF365.Reserve = reader.ReadArray(3).ToArray(); jT808_0X8103_0XF365.GradedSpeedThresholdFatigueDrivingAlarm = reader.ReadByte(); jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm = reader.ReadByte(); jT808_0X8103_0XF365.FatigueDrivingAlarmPhotograph = reader.ReadByte(); jT808_0X8103_0XF365.FatigueDrivingAlarmPhotographInterval = reader.ReadByte(); jT808_0X8103_0XF365.ClassifiedSpeedThresholdCallAlarm = reader.ReadByte(); jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterCallAlarm = reader.ReadByte(); jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeatures = reader.ReadByte(); jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeaturesInterval = reader.ReadByte(); jT808_0X8103_0XF365.ClassifiedSpeedThresholdSmokingAlarm = reader.ReadByte(); jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterSmokingAlarm = reader.ReadByte(); jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristics = reader.ReadByte(); jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval = reader.ReadByte(); jT808_0X8103_0XF365.ClassifiedSpeedThresholdDistractedDrivingAlarm = reader.ReadByte(); jT808_0X8103_0XF365.DistractedDrivingAlarmPhotography = reader.ReadByte(); jT808_0X8103_0XF365.DistractedDrivingAlarmPhotographyInterval = reader.ReadByte(); jT808_0X8103_0XF365.VideoRecordingTimeAbnormalDrivingBehavior = reader.ReadByte(); jT808_0X8103_0XF365.PhotographsAbnormalDrivingBehavior = reader.ReadByte(); jT808_0X8103_0XF365.PictureIntervalAbnormalDrivingBehavior = reader.ReadByte(); jT808_0X8103_0XF365.DriverIdentificationTrigger = reader.ReadByte(); jT808_0X8103_0XF365.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); return(jT808_0X8103_0XF365); }
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x0200_0x05 value = new JT808_0x0200_0x05(); value.AttachInfoId = reader.ReadByte(); writer.WriteNumber($"[{value.AttachInfoId.ReadNumber()}]附加信息Id", value.AttachInfoId); value.AttachInfoLength = reader.ReadByte(); writer.WriteNumber($"[{value.AttachInfoLength.ReadNumber()}]附加信息长度", value.AttachInfoLength); value.TirePressure = reader.ReadArray(value.AttachInfoLength).ToArray(); writer.WriteString($"胎压", value.TirePressure.ToHexString()); }
/// <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_0x0032 value = new JT808_0x8103_0x0032(); value.ParamId = reader.ReadUInt32(); value.ParamLength = reader.ReadByte(); value.ParamValue = reader.ReadArray(4).ToArray(); writer.WriteNumber($"[{ value.ParamId.ReadNumber()}]参数ID", value.ParamId); writer.WriteNumber($"[{value.ParamLength.ReadNumber()}]参数长度", value.ParamLength); writer.WriteString($"[{ value.ParamValue.ToHexString()}]参数值[违规行驶时段范围]", $"开始时间{value.ParamValue[0]}时{value.ParamValue[1]}分,结束时间{value.ParamValue[2]}时{value.ParamValue[3]}分"); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="config"></param> /// <returns></returns> public JT808_0x8103_0xF364 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8103_0xF364 value = new JT808_0x8103_0xF364(); value.ParamId = reader.ReadUInt32(); value.ParamLength = reader.ReadByte(); value.AlarmJudgeSpeedThreshold = reader.ReadByte(); value.WarningVolume = reader.ReadByte(); value.ActivePhotographyStrategy = reader.ReadByte(); value.ActivelyTimePhotoInterval = reader.ReadUInt16(); value.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16(); value.SingleInitiativePhotos = reader.ReadByte(); value.SingleInitiativePhotosInterval = reader.ReadByte(); value.PhotoResolution = reader.ReadByte(); value.VideoRecordingResolution = reader.ReadByte(); value.AlarmEnable = reader.ReadUInt32(); value.EventEnable = reader.ReadUInt32(); value.Placeholder1 = reader.ReadByte(); value.DistanceThresholdObstacleAlarm = reader.ReadByte(); value.HierarchicalSpeedThresholdObstacleAlarm = reader.ReadByte(); value.VideoRecordingTimeBeforeAndAfterObstacleAlarm = reader.ReadByte(); value.BarrierAlarmPhotographs = reader.ReadByte(); value.ObstacleAlarmInterval = reader.ReadByte(); value.FrequentChannelChangeAlarmJudgmentTimePeriod = reader.ReadByte(); value.FrequentAlarmJudgmentNumberChannelChange = reader.ReadByte(); value.HierarchicalSpeedThresholdFrequentChannelChangeAlarm = reader.ReadByte(); value.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm = reader.ReadByte(); value.FrequentChannelChangeAlarmPhotos = reader.ReadByte(); value.FrequentLaneChangeAlarmInterval = reader.ReadByte(); value.GradedSpeedThresholdLaneDeviationAlarm = reader.ReadByte(); value.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm = reader.ReadByte(); value.LaneDepartureAlarmPhoto = reader.ReadByte(); value.LaneDepartureAlarmPhotoInterval = reader.ReadByte(); value.ForwardCollisionWarningTimeThreshold = reader.ReadByte(); value.HierarchicalSpeedThresholdForwardCollisionWarning = reader.ReadByte(); value.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm = reader.ReadByte(); value.ForwardCollisionAlarmPhotographs = reader.ReadByte(); value.ForwardCollisionAlarmInterval = reader.ReadByte(); value.PedestrianCollisionAlarmTimeThreshold = reader.ReadByte(); value.PedestrianCollisionAlarmEnablingSpeedThreshold = reader.ReadByte(); value.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm = reader.ReadByte(); value.PedestrianCollisionAlarmPhotos = reader.ReadByte(); value.PedestrianCollisionAlarmInterval = reader.ReadByte(); value.VehicleDistanceMonitoringAlarmDistanceThreshold = reader.ReadByte(); value.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold = reader.ReadByte(); value.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity = reader.ReadByte(); value.AlarmPhotoVehicleCloseDistance = reader.ReadByte(); value.AlarmPhotoVehicleCloseDistanceInterval = reader.ReadByte(); value.RoadSignRecognitionPhotographs = reader.ReadByte(); value.RoadSignRecognitionPhotographsInterval = reader.ReadByte(); value.Placeholder2 = reader.ReadArray(4).ToArray(); return(value); }