public JT809_0x1500_0x1502 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1500_0x1502 value = new JT809_0x1500_0x1502(); value.PhotoRspFlag = (JT809_0x1502_PhotoRspFlag)reader.ReadByte(); 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(); value.LensID = reader.ReadByte(); value.PhotoLen = reader.ReadUInt32(); value.SizeType = (JT809__0x9502_SizeType)reader.ReadByte(); value.Type = (JT809__0x9502_ImageType)reader.ReadByte(); if (value.PhotoLen > 0) { value.Photo = reader.ReadArray((int)value.PhotoLen).ToArray(); } return(value); }
public JT809_0x1400_0x1402 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x1400_0x1402(); if (config.Version == JT809Version.JTT2011) { value.WarnSrc = (JT809WarnSrc)reader.ReadByte(); } else { value.SourcePlatformId = reader.ReadString(11); } value.WarnType = (JT809WarnType)reader.ReadUInt16(); value.WarnTime = reader.ReadUTCDateTime(); if (config.Version == JT809Version.JTT2011) { value.InfoID = reader.ReadUInt32(); } else { value.StartTime = reader.ReadUTCDateTime(); value.EndTime = reader.ReadUTCDateTime(); #warning 此处车牌号文档长度有误,使用旧版长度21 value.VehicleNo = reader.ReadString(21); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); value.DestinationPlatformId = reader.ReadString(11); value.DRVLineId = reader.ReadUInt32(); } value.InfoLength = reader.ReadUInt32(); value.InfoContent = reader.ReadString((int)value.InfoLength); return(value); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_JT1078_0x9B00 value = new JT809_JT1078_0x9B00(); var virtualHex = reader.ReadVirtualArray(21); value.VehicleNo = reader.ReadString(21); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车牌号", value.VehicleNo); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); writer.WriteString($"[{((byte)value.VehicleColor).ReadNumber()}]车牌颜色", value.VehicleColor.ToString()); value.SubBusinessType = reader.ReadUInt16(); writer.WriteString($"[{value.SubBusinessType.ReadNumber()}]子业务类型标识", ((JT809SubBusinessType)value.SubBusinessType).ToString()); value.DataLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.DataLength.ReadNumber()}]后续数据长度", value.DataLength); try { if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance)) { if (instance is JT809SubBodies subBodies) { if (!subBodies.SkipSerialization) { writer.WriteStartObject("子业务类型"); instance.Analyze(ref reader, writer, config); writer.WriteEndObject(); } } } } catch { throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}"); } }
public JT809_0x9002 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9002 jT809_0X9002 = new JT809_0x9002(); jT809_0X9002.Result = (JT809_0x9002_Result)reader.ReadByte(); return(jT809_0X9002); }
public JT809_0x9007 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9007 value = new JT809_0x9007(); value.ErrorCode = (JT809_0x1007_ErrorCode)reader.ReadByte(); return(value); }
public JT809_0x9200_0x9206 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9206 value = new JT809_0x9200_0x9206(); value.ReasonCode = (JT809_0x9206_ReasonCode)reader.ReadByte(); return(value); }
public byte[] AnalyzeJsonBuffer <T>(ReadOnlySpan <byte> bytes, JsonWriterOptions options = default, int minBufferSize = 8096) { byte[] buffer = JT809ArrayPool.Rent(minBufferSize); try { JT809MessagePackReader jT809MessagePackReader = new JT809MessagePackReader(bytes); if (CheckPackageType(typeof(T))) { jT809MessagePackReader.Decode(buffer); } var analyze = jT809Config.GetAnalyze <T>(); using (MemoryStream memoryStream = new MemoryStream()) using (Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(memoryStream, options)) { if (!CheckPackageType(typeof(T))) { utf8JsonWriter.WriteStartObject(); } analyze.Analyze(ref jT809MessagePackReader, utf8JsonWriter, jT809Config); if (!CheckPackageType(typeof(T))) { utf8JsonWriter.WriteEndObject(); } utf8JsonWriter.Flush(); return(memoryStream.ToArray()); } } finally { JT809ArrayPool.Return(buffer); } }
public JT809_0x1200_0x1201 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1200_0x1201 value = new JT809_0x1200_0x1201(); if (config.Version == JT809Version.JTT2011) { value.PlateformId = reader.ReadString(11); value.ProducerId = reader.ReadString(11); value.TerminalModelType = reader.ReadString(20); value.TerminalId = reader.ReadString(7); value.TerminalId = value.TerminalId.ToUpper(); value.TerminalSimCode = reader.ReadString(12); } else { value.PlateformId = reader.ReadString(11); value.ProducerId = reader.ReadString(11); value.TerminalModelType = reader.ReadString(30); value.IMIEId = reader.ReadString(15); value.TerminalId = reader.ReadString(30); value.TerminalId = value.TerminalId.ToUpper(); value.TerminalSimCode = reader.ReadString(13); } return(value); }
public JT809_0x9200_0x9204 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9204 value = new JT809_0x9200_0x9204(); value.CarInfo = reader.ReadRemainStringContent(); return(value); }
public JT809_0x9001 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9001 jT809_0X9001 = new JT809_0x9001(); jT809_0X9001.VerifyCode = reader.ReadUInt32(); return(jT809_0X9001); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1103 value = new JT809_0x1103(); value.SubBusinessType = reader.ReadUInt16(); writer.WriteString($"[{value.SubBusinessType.ReadNumber()}]子业务类型标识", ((JT809SubBusinessType)value.SubBusinessType).ToString()); value.DataLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.DataLength.ReadNumber()}]后续数据长度", value.DataLength); value.Count = reader.ReadByte(); writer.WriteNumber($"[{value.Count.ReadNumber()}]个数", value.Count); writer.WriteStartArray("上传平台间消息序列号通知消息"); for (int i = 0; i < value.Count; i++) { writer.WriteStartObject(); JT809ManageMsgSNInform item = new JT809ManageMsgSNInform(); item.SubBusinessType = reader.ReadUInt16(); writer.WriteString($"[{item.SubBusinessType.ReadNumber()}]子业务类型标识", ((JT809SubBusinessType)item.SubBusinessType).ToString()); item.MsgSN = reader.ReadUInt32(); writer.WriteNumber($"[{item.MsgSN.ReadNumber()}]对应得子夜吴数据类型报文序列号", item.MsgSN); var virtualHex = reader.ReadVirtualArray(8); item.Time = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]系统UTC时间", item.Time); writer.WriteEndObject(); } writer.WriteEndArray(); }
public JT809_0x9200_0x9205 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9205 jT809_0X1200_0x9205 = new JT809_0x9200_0x9205(); jT809_0X1200_0x9205.ReasonCode = (JT809_0x9205_ReasonCode)reader.ReadByte(); return(jT809_0X1200_0x9205); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1300 value = new JT809_0x1300(); value.SubBusinessType = reader.ReadUInt16(); writer.WriteString($"[{value.SubBusinessType.ReadNumber()}]子业务类型标识", ((JT809SubBusinessType)value.SubBusinessType).ToString()); value.DataLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.DataLength.ReadNumber()}]后续数据长度", value.DataLength); try { if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance)) { if (instance is JT809SubBodies subBodies) { if (!subBodies.SkipSerialization) { instance.Analyze(ref reader, writer, config); } } } } catch { throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}"); } }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9500_0x9505 value = new JT809_0x9500_0x9505(); var virtualHex = reader.ReadVirtualArray(10); value.AuthenticationCode = reader.ReadBCD(20); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]监管平台下发的鉴权码", value.AuthenticationCode); virtualHex = reader.ReadVirtualArray(20); value.AccessPointName = reader.ReadString(20); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]拨号点名称", value.AccessPointName); virtualHex = reader.ReadVirtualArray(49); value.UserName = reader.ReadString(49); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]拨号用户名", value.UserName); virtualHex = reader.ReadVirtualArray(49); value.Password = reader.ReadString(22); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]拨号密码", value.Password); virtualHex = reader.ReadVirtualArray(32); value.ServerIP = reader.ReadString(32); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]地址", value.ServerIP); value.TcpPort = reader.ReadUInt16(); writer.WriteNumber($"[{value.TcpPort.ReadNumber()}]", value.TcpPort); value.UdpPort = reader.ReadUInt16(); writer.WriteNumber($"[{value.UdpPort.ReadNumber()}]", value.UdpPort); virtualHex = reader.ReadVirtualArray(8); value.EndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]结束时间", value.EndTime); }
public JT809_0x1500_0x1505 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1500_0x1505 jT809_0X1500_0X1505 = new JT809_0x1500_0x1505(); jT809_0X1500_0X1505.Result = (JT809_0x1505_Result)reader.ReadByte(); return(jT809_0X1500_0X1505); }
public JT809_0x9008 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9008 jT809_0X9008 = new JT809_0x9008(); jT809_0X9008.ReasonCode = (JT809_0x9008_ReasonCode)reader.ReadByte(); return(jT809_0X9008); }
public JT809_JT1078_0x1800_0x1802 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x1800_0x1802 jT808_JT1078_0x1800_0x1802 = new JT809_JT1078_0x1800_0x1802(); jT808_JT1078_0x1800_0x1802.Result = reader.ReadByte(); return(jT808_JT1078_0x1800_0x1802); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9007 value = new JT809_0x9007(); value.ErrorCode = (JT809_0x1007_ErrorCode)reader.ReadByte(); writer.WriteString($"[{value.ErrorCode.ToByteValue()}错误代码]", value.ErrorCode.ToString()); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1200_0x1203 value = new JT809_0x1200_0x1203(); value.GNSSCount = reader.ReadByte(); writer.WriteNumber($"[{value.GNSSCount.ReadNumber()}]卫星定位数据个数", value.GNSSCount); value.GNSS = new List <JT809_0x1200_0x1202>(); writer.WriteStartArray("实时上传车辆定位信息消息"); if (value.GNSSCount > 0) { for (int i = 0; i < value.GNSSCount; i++) { try { writer.WriteStartObject(); config.GetMessagePackFormatter <JT809_0x1200_0x1202>().Analyze(ref reader, writer, config); writer.WriteEndObject(); } catch (Exception) { } } } writer.WriteEndArray(); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9200_0x9206 value = new JT809_0x9200_0x9206(); value.ReasonCode = (JT809_0x9206_ReasonCode)reader.ReadByte(); writer.WriteString($"[{value.ReasonCode.ToByteValue()}]结束车辆定位信息交换请求原因", value.ReasonCode.ToString()); }
public JT809_0x9200_0x9204 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9204 jT809_0X1200_0x9204 = new JT809_0x9200_0x9204(); jT809_0X1200_0x9204.CarInfo = reader.ReadRemainStringContent(); return(jT809_0X1200_0x9204); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9400_0x9401 value = new JT809_0x9400_0x9401(); value.WarnSrc = (JT809WarnSrc)reader.ReadByte(); writer.WriteString($"[{value.WarnSrc.ToByteValue()}]报警信息来源", value.WarnSrc.ToString()); value.WarnType = reader.ReadUInt16(); writer.WriteNumber($"[{value.WarnType.ReadNumber()}]报警类型", value.WarnType); var virtualHex = reader.ReadVirtualArray(8); value.WarnTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警时间", value.WarnTime); virtualHex = reader.ReadVirtualArray(4); value.SupervisionID = reader.ReadHex(4); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报警督办ID", value.SupervisionID); virtualHex = reader.ReadVirtualArray(8); value.SupervisionEndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]督办截止时间", value.SupervisionEndTime); value.SupervisionLevel = (JT809_9401_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.SupervisorEmail); }
public JT809_0x1200 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1200 value = new JT809_0x1200(); value.VehicleNo = reader.ReadString(21); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); value.SubBusinessType = reader.ReadUInt16(); value.DataLength = reader.ReadUInt32(); try { if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance)) { if (instance is JT809SubBodies subBodies) { if (!subBodies.SkipSerialization) { value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize( instance, ref reader, config); } } } } catch { throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}"); } return(value); }
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 JT809_0x1200_0x1207 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1200_0x1207 jT809_0X1200_0X1207 = new JT809_0x1200_0x1207(); jT809_0X1200_0X1207.StartTime = reader.ReadUTCDateTime(); jT809_0X1200_0X1207.EndTime = reader.ReadUTCDateTime(); return(jT809_0X1200_0X1207); }
public JT809_0x1002 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1002 value = new JT809_0x1002(); value.Result = (JT809_0x1002_Result)reader.ReadByte(); value.VerifyCode = reader.ReadUInt32(); return(value); }
public JT809_JT1078_0x9900_0x9901 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x9900_0x9901 jT808_JT1078_0x9900_0x9901 = new JT809_JT1078_0x9900_0x9901(); jT808_JT1078_0x9900_0x9901.Result = reader.ReadByte(); jT808_JT1078_0x9900_0x9901.ItemNumber = reader.ReadByte(); return(jT808_JT1078_0x9900_0x9901); }
public JT809_0x1500_0x1503 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1500_0x1503 jT809_0X1500_0X1503 = new JT809_0x1500_0x1503(); jT809_0X1500_0X1503.MsgID = reader.ReadUInt32(); jT809_0X1500_0X1503.Result = (JT809_0x1503_Result)reader.ReadByte(); return(jT809_0X1500_0X1503); }
public JT809_JT1078_0x9B00_0x9B02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x9B00_0x9B02 value = new JT809_JT1078_0x9B00_0x9B02(); value.Result = (JT809_JT1078_0x9B00_0x9B02_Result)reader.ReadByte(); value.SessionId = reader.ReadUInt16(); return(value); }
public JT809_0x1200_0x120D Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1200_0x120D value = new JT809_0x1200_0x120D(); value.EwaybillLength = reader.ReadUInt32(); value.EwaybillInfo = reader.ReadString((int)value.EwaybillLength); return(value); }