public JT809_0x9400_0x9403 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x9400_0x9403(); if (config.Version == JT809Version.JTT2011) { value.WarnSrc = (JT809WarnSrc)reader.ReadByte(); } else { value.SourcePlatformId = reader.ReadBigNumber(11); } value.WarnType = (JT809WarnType)reader.ReadUInt16(); value.WarnTime = reader.ReadUTCDateTime(); if (config.Version == JT809Version.JTT2019) { value.StartTime = reader.ReadUTCDateTime(); value.EndTime = reader.ReadUTCDateTime(); #warning 此处车牌号文档长度有误,使用旧版长度21 value.VehicleNo = reader.ReadString(21); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); value.DestinationPlatformId = reader.ReadBigNumber(11); value.DRVLineId = reader.ReadUInt32(); } value.WarnLength = reader.ReadUInt32(); value.WarnContent = reader.ReadString((int)value.WarnLength); return(value); }
public JT809_0x1400_0x1403 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x1400_0x1403(); if (config.Version == JT809Version.JTT2011) { value.InfoID = reader.ReadUInt32(); value.Result = (JT809_0x1403_Result)reader.ReadByte(); } else { value.SourcePlatformId = reader.ReadBigNumber(11); value.WarnType = (JT809WarnType)reader.ReadUInt16(); value.WarnTime = reader.ReadUTCDateTime(); value.StartTime = reader.ReadUTCDateTime(); value.EndTime = reader.ReadUTCDateTime(); value.VehicleNo = reader.ReadString(21); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); value.DestinationPlatformId = reader.ReadBigNumber(11); value.DRVLineId = reader.ReadUInt32(); value.InfoLength = reader.ReadUInt32(); value.InfoContent = reader.ReadString((int)value.InfoLength); } return(value); }
public JT809_0x1200_0x1201 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201(); jT809_0X1200_0X1201.PlateformId = reader.ReadBigNumber(11); jT809_0X1200_0X1201.ProducerId = reader.ReadBigNumber(11); jT809_0X1200_0X1201.TerminalModelType = reader.ReadString(20); jT809_0X1200_0X1201.TerminalId = reader.ReadString(7); jT809_0X1200_0X1201.TerminalId = jT809_0X1200_0X1201.TerminalId.ToUpper(); jT809_0X1200_0X1201.TerminalSimCode = reader.ReadString(12); return(jT809_0X1200_0X1201); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x1400_0x1413(); var virtualHex = reader.ReadVirtualArray(11); value.SourcePlatformId = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId); virtualHex = reader.ReadVirtualArray(8); value.WarnTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime); value.SourceDataType = reader.ReadUInt16(); writer.WriteString($"[{value.SourceDataType.ReadNumber()}]对应启动车辆定位信息交换请求消息源子业务类型标识", ((JT809SubBusinessType)value.SourceDataType).ToString()); value.SourceMsgSn = reader.ReadUInt32(); writer.WriteNumber($"[{value.SourceMsgSn.ReadNumber()}对应启动车辆定位信息交换请求消息源报文序列号]", value.SourceMsgSn); virtualHex = reader.ReadVirtualArray(8); value.SupervisionEndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办截止时间", value.SupervisionEndTime); value.SupervisionLevel = (JT809_0x1413_SupervisionLevel)reader.ReadByte(); writer.WriteString($"[{value.SupervisionLevel.ToByteValue()}]督办级别", value.SupervisionLevel.ToString()); virtualHex = reader.ReadVirtualArray(16); value.Supervisor = reader.ReadString(16); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办人", value.Supervisor); virtualHex = reader.ReadVirtualArray(20); value.SupervisorTel = reader.ReadString(20); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办人联系电话", value.SupervisorTel); virtualHex = reader.ReadVirtualArray(32); value.SupervisorEmail = reader.ReadString(32); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办人联系电子邮件", value.SupervisorTel); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x9400_0x9402(); if (config.Version == JT809Version.JTT2011) { value.WarnSrc = (JT809WarnSrc)reader.ReadByte(); writer.WriteString($"[{value.WarnSrc.ToByteValue()}]报警信息来源", value.WarnSrc.ToString()); } else { var hex = reader.ReadVirtualArray(11); value.SourcePlatformId = reader.ReadBigNumber(11); writer.WriteString($"[{hex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId); } value.WarnType = (JT809WarnType)reader.ReadUInt16(); writer.WriteString($"[{value.WarnType.ToUInt16Value()}]报警类型", value.WarnType.ToString()); var virtualHex = reader.ReadVirtualArray(8); value.WarnTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime); if (config.Version == JT809Version.JTT2019) { virtualHex = reader.ReadVirtualArray(8); value.StartTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]事件开始时间", value.StartTime); virtualHex = reader.ReadVirtualArray(8); value.EndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]事件结束时间", value.EndTime); virtualHex = reader.ReadVirtualArray(21); value.VehicleNo = reader.ReadString(21); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车牌号码", value.VehicleNo); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); writer.WriteString($"[{value.VehicleColor.ToByteValue()}]车牌颜色", value.VehicleColor.ToString()); virtualHex = reader.ReadVirtualArray(11); value.DestinationPlatformId = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]被报警平台唯一编码", value.DestinationPlatformId); value.DRVLineId = reader.ReadUInt32(); writer.WriteNumber($"[{value.DRVLineId.ReadNumber()}]线路ID", value.DRVLineId); } value.WarnLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.WarnLength.ReadNumber()}]数据长度", value.WarnLength); virtualHex = reader.ReadVirtualArray((int)value.WarnLength); value.WarnContent = reader.ReadString((int)value.WarnLength); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警描述", value.WarnContent); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x1400_0x1403(); if (config.Version == JT809Version.JTT2011) { value.InfoID = reader.ReadUInt32(); writer.WriteNumber($"[{value.InfoID.ReadNumber()}]报警信息ID", value.InfoID); value.Result = (JT809_0x1403_Result)reader.ReadByte(); writer.WriteString($"[{value.Result.ToByteValue()}]处理结果", value.Result.ToString()); } else { var virtualHex = reader.ReadVirtualArray(11); value.SourcePlatformId = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId); value.WarnType = (JT809WarnType)reader.ReadUInt16(); writer.WriteString($"[{value.WarnType.ToUInt16Value()}]处理结果", value.WarnType.ToString()); virtualHex = reader.ReadVirtualArray(8); value.WarnTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime); virtualHex = reader.ReadVirtualArray(8); value.StartTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]事件开始时间", value.StartTime); virtualHex = reader.ReadVirtualArray(8); value.EndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]事件结束时间", value.EndTime); #warning 此处车牌号文档长度有误,使用旧版长度21 virtualHex = reader.ReadVirtualArray(21); value.VehicleNo = reader.ReadString(21); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车牌号码", value.VehicleNo); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); writer.WriteString($"[{value.VehicleColor.ToByteValue()}]处理结果", value.VehicleColor.ToString()); virtualHex = reader.ReadVirtualArray(11); value.DestinationPlatformId = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]被报警平台唯一编码", value.DestinationPlatformId); value.DRVLineId = reader.ReadUInt32(); writer.WriteNumber($"[{value.DRVLineId.ReadNumber()}]线路ID", value.DRVLineId); value.InfoLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.InfoLength.ReadNumber()}]数据长度", value.InfoLength); virtualHex = reader.ReadVirtualArray((int)value.InfoLength); value.InfoContent = reader.ReadString((int)value.InfoLength); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]信息内容", value.InfoContent); } }
public JT809_0x1102 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1102 value = new JT809_0x1102(); value.PlateformId = reader.ReadBigNumber(11); value.StartTime = reader.ReadUTCDateTime(); value.EndTime = reader.ReadUTCDateTime(); value.LoseDymamicSum = reader.ReadUInt32(); value.DisconnectNum = reader.ReadByte(); value.DisconnectTime = reader.ReadUInt32(); return(value); }
public JT809_0x9200_0x9202 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9202 value = new JT809_0x9200_0x9202(); if (config.Version == JT809Version.JTT2011) { value.VehiclePosition = new JT809VehiclePositionProperties(); value.VehiclePosition.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); value.VehiclePosition.Day = reader.ReadByte(); value.VehiclePosition.Month = reader.ReadByte(); value.VehiclePosition.Year = reader.ReadUInt16(); value.VehiclePosition.Hour = reader.ReadByte(); value.VehiclePosition.Minute = reader.ReadByte(); value.VehiclePosition.Second = reader.ReadByte(); value.VehiclePosition.Lon = reader.ReadUInt32(); value.VehiclePosition.Lat = reader.ReadUInt32(); value.VehiclePosition.Vec1 = reader.ReadUInt16(); value.VehiclePosition.Vec2 = reader.ReadUInt16(); value.VehiclePosition.Vec3 = reader.ReadUInt32(); value.VehiclePosition.Direction = reader.ReadUInt16(); value.VehiclePosition.Altitude = reader.ReadUInt16(); value.VehiclePosition.State = reader.ReadUInt32(); value.VehiclePosition.Alarm = reader.ReadUInt32(); } else { value.GNSSData = new JT809VehiclePositionProperties_2019(); value.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); value.GNSSData.DataLength = reader.ReadUInt32(); value.GNSSData.GnssData = reader.ReadArray((int)value.GNSSData.DataLength).ToArray(); value.GNSSData.PlatformId1 = reader.ReadBigNumber(11); value.GNSSData.Alarm1 = reader.ReadUInt32(); value.GNSSData.PlatformId2 = reader.ReadBigNumber(11); value.GNSSData.Alarm2 = reader.ReadUInt32(); value.GNSSData.PlatformId3 = reader.ReadBigNumber(11); value.GNSSData.Alarm3 = reader.ReadUInt32(); } return(value); }
public JT809_0x1400_0x1413 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x1400_0x1413(); value.SourcePlatformId = reader.ReadBigNumber(11); value.WarnTime = reader.ReadUTCDateTime(); value.SourceDataType = reader.ReadUInt16(); value.SourceMsgSn = reader.ReadUInt32(); value.SupervisionEndTime = reader.ReadUTCDateTime(); value.SupervisionLevel = (JT809_0x1413_SupervisionLevel)reader.ReadByte(); value.Supervisor = reader.ReadString(16); value.SupervisorTel = reader.ReadString(20); value.SupervisorEmail = reader.ReadString(32); return(value); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1102 value = new JT809_0x1102(); var virtualHex = reader.ReadVirtualArray(11); value.PlateformId = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]平台唯一编码", value.PlateformId); virtualHex = reader.ReadVirtualArray(8); value.StartTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]开始时间", value.StartTime); virtualHex = reader.ReadVirtualArray(8); value.EndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]结束时间", value.EndTime); value.LoseDymamicSum = reader.ReadUInt32(); writer.WriteNumber($"[{value.LoseDymamicSum.ReadNumber()}]START_TIME~END_TIME期间下级平台丢失得车辆定位消息总数", value.LoseDymamicSum); value.DisconnectNum = reader.ReadByte(); writer.WriteNumber($"[{value.DisconnectNum.ReadNumber()}]START_TIME~END_TIME期间下级监控平台链路断开次数", value.DisconnectNum); value.DisconnectTime = reader.ReadUInt32(); writer.WriteNumber($"[{value.DisconnectTime.ReadNumber()}]START_TIME~END_TIME期间下级监控平台链路断开总时长,用秒表示", value.DisconnectTime); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9200_0x9202 value = new JT809_0x9200_0x9202(); if (config.Version == JT809Version.JTT2011) { value.VehiclePosition = new JT809VehiclePositionProperties(); writer.WriteStartObject("车辆定位信息"); value.VehiclePosition.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); writer.WriteString($"[{value.VehiclePosition.Encrypt.ToByteValue()}]是否使用国家测绘局批准的地图保密插件进行加密", value.VehiclePosition.Encrypt.ToString()); value.VehiclePosition.Day = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Day.ReadNumber()}]日", value.VehiclePosition.Day); value.VehiclePosition.Month = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Month.ReadNumber()}]月", value.VehiclePosition.Month); value.VehiclePosition.Year = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Year.ReadNumber()}]年", value.VehiclePosition.Year); value.VehiclePosition.Hour = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Hour.ReadNumber()}]时", value.VehiclePosition.Hour); value.VehiclePosition.Minute = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Minute.ReadNumber()}]分", value.VehiclePosition.Minute); value.VehiclePosition.Second = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Second.ReadNumber()}]秒", value.VehiclePosition.Second); value.VehiclePosition.Lon = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Lon.ReadNumber()}]经度", value.VehiclePosition.Lon); value.VehiclePosition.Lat = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Lat.ReadNumber()}]纬度", value.VehiclePosition.Lat); value.VehiclePosition.Vec1 = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Vec1.ReadNumber()}]速度", value.VehiclePosition.Vec1); value.VehiclePosition.Vec2 = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Vec2.ReadNumber()}]行驶记录速度", value.VehiclePosition.Vec2); value.VehiclePosition.Vec3 = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Vec3.ReadNumber()}]车辆当前总里程数", value.VehiclePosition.Vec3); value.VehiclePosition.Direction = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Direction.ReadNumber()}]方向", value.VehiclePosition.Direction); value.VehiclePosition.Altitude = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Altitude.ReadNumber()}]海拔高度", value.VehiclePosition.Altitude); value.VehiclePosition.State = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.State.ReadNumber()}]车辆状态", value.VehiclePosition.State); value.VehiclePosition.Alarm = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Alarm.ReadNumber()}]报警状态", value.VehiclePosition.Alarm); writer.WriteEndObject(); } else { value.GNSSData = new JT809VehiclePositionProperties_2019(); writer.WriteStartObject("车辆定位信息"); value.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); writer.WriteString($"[{value.GNSSData.Encrypt.ToByteValue()}]是否使用国测局批准的地图保密插件进行加密", value.GNSSData.Encrypt.ToString()); value.GNSSData.DataLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.GNSSData.DataLength.ReadNumber()}]车辆定位信息数据长度", value.GNSSData.DataLength); value.GNSSData.GnssData = reader.ReadArray((int)value.GNSSData.DataLength).ToArray(); writer.WriteString($"[{value.GNSSData.GnssData.ToHexString()}]车辆定位信息内容", value.GNSSData.GnssData.ToHexString()); var virtualHex = reader.ReadVirtualArray(11); value.GNSSData.PlatformId1 = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]监控平台唯一编码", value.GNSSData.PlatformId1); value.GNSSData.Alarm1 = reader.ReadUInt32(); writer.WriteNumber($"[{value.GNSSData.Alarm1.ReadNumber()}]报警状态", value.GNSSData.Alarm1); virtualHex = reader.ReadVirtualArray(11); value.GNSSData.PlatformId2 = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]市级监控平台唯一编码", value.GNSSData.PlatformId2); value.GNSSData.Alarm2 = reader.ReadUInt32(); writer.WriteNumber($"[{value.GNSSData.Alarm2.ReadNumber()}]报警状态", value.GNSSData.Alarm2); virtualHex = reader.ReadVirtualArray(11); value.GNSSData.PlatformId3 = reader.ReadBigNumber(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]省级监控平台唯一编码", value.GNSSData.PlatformId3); value.GNSSData.Alarm3 = reader.ReadUInt32(); writer.WriteNumber($"[{value.GNSSData.Alarm3.ReadNumber()}]报警状态", value.GNSSData.Alarm3); writer.WriteEndObject(); } }