public JT809_JT1078_0x1700_0x1701 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x1700_0x1701 jT808_JT1078_0X1701 = new JT809_JT1078_0x1700_0x1701(); jT808_JT1078_0X1701.PlateFormId = reader.ReadArray(11).ToArray(); jT808_JT1078_0X1701.AuthorizeCode1 = reader.ReadArray(64).ToArray(); jT808_JT1078_0X1701.AuthorizeCode2 = reader.ReadArray(64).ToArray(); return(jT808_JT1078_0X1701); }
public JT809_JT1078_0x9800_0x9801 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x9800_0x9801 jT808_JT1078_0x9800_0x9801 = new JT809_JT1078_0x9800_0x9801(); jT808_JT1078_0x9800_0x9801.ChannelId = reader.ReadByte(); jT808_JT1078_0x9800_0x9801.AVitemType = reader.ReadByte(); jT808_JT1078_0x9800_0x9801.AuthorizeCode = reader.ReadArray(64).ToArray(); jT808_JT1078_0x9800_0x9801.GnssData = reader.ReadArray(36).ToArray(); return(jT808_JT1078_0x9800_0x9801); }
public JT809_JT1078_0x9A00_0x9A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x9A00_0x9A01 jT808_JT1078_0x9A00_0x9A01 = new JT809_JT1078_0x9A00_0x9A01(); jT808_JT1078_0x9A00_0x9A01.ChannelId = reader.ReadByte(); jT808_JT1078_0x9A00_0x9A01.AVItemType = reader.ReadByte(); jT808_JT1078_0x9A00_0x9A01.StreamType = reader.ReadByte(); jT808_JT1078_0x9A00_0x9A01.MemType = reader.ReadByte(); jT808_JT1078_0x9A00_0x9A01.PlayBackStartTime = reader.ReadUTCDateTime(); jT808_JT1078_0x9A00_0x9A01.PlayBackEndTime = reader.ReadUTCDateTime(); jT808_JT1078_0x9A00_0x9A01.AuthorizeCode = reader.ReadArray(64).ToArray(); jT808_JT1078_0x9A00_0x9A01.GnssData = reader.ReadArray(36).ToArray(); return(jT808_JT1078_0x9A00_0x9A01); }
public JT809_JT1078_0x9900_0x9902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x9900_0x9902 jT808_JT1078_0x9900_0x9902 = new JT809_JT1078_0x9900_0x9902(); jT808_JT1078_0x9900_0x9902.ChannelId = reader.ReadByte(); #warning 此处时间8个字节,暂使用utc时间代替 jT808_JT1078_0x9900_0x9902.StartTime = reader.ReadUTCDateTime(); jT808_JT1078_0x9900_0x9902.EndTime = reader.ReadUTCDateTime(); jT808_JT1078_0x9900_0x9902.AlarmType = reader.ReadUInt64(); jT808_JT1078_0x9900_0x9902.AVItemType = reader.ReadByte(); jT808_JT1078_0x9900_0x9902.StreamType = reader.ReadByte(); jT808_JT1078_0x9900_0x9902.MemType = reader.ReadByte(); jT808_JT1078_0x9900_0x9902.AuthorizeCode = reader.ReadArray(64).ToArray(); jT808_JT1078_0x9900_0x9902.GnssData = reader.ReadArray(36).ToArray(); return(jT808_JT1078_0x9900_0x9902); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x1600_0x1602(); value.DRVLine = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); writer.WriteString($"[{value.DRVLine.ToHexString()}]路线信息", value.DRVLine.ToHexString()); }
public JT809_0x1500_0x1502 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1500_0x1502 jT809_0X1500_0X1502 = new JT809_0x1500_0x1502(); jT809_0X1500_0X1502.PhotoRspFlag = (JT809_0x1502_PhotoRspFlag)reader.ReadByte(); jT809_0X1500_0X1502.VehiclePosition.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); jT809_0X1500_0X1502.VehiclePosition.Day = reader.ReadByte(); jT809_0X1500_0X1502.VehiclePosition.Month = reader.ReadByte(); jT809_0X1500_0X1502.VehiclePosition.Year = reader.ReadUInt16(); jT809_0X1500_0X1502.VehiclePosition.Hour = reader.ReadByte(); jT809_0X1500_0X1502.VehiclePosition.Minute = reader.ReadByte(); jT809_0X1500_0X1502.VehiclePosition.Second = reader.ReadByte(); jT809_0X1500_0X1502.VehiclePosition.Lon = reader.ReadUInt32(); jT809_0X1500_0X1502.VehiclePosition.Lat = reader.ReadUInt32(); jT809_0X1500_0X1502.VehiclePosition.Vec1 = reader.ReadUInt16(); jT809_0X1500_0X1502.VehiclePosition.Vec2 = reader.ReadUInt16(); jT809_0X1500_0X1502.VehiclePosition.Vec3 = reader.ReadUInt32(); jT809_0X1500_0X1502.VehiclePosition.Direction = reader.ReadUInt16(); jT809_0X1500_0X1502.VehiclePosition.Altitude = reader.ReadUInt16(); jT809_0X1500_0X1502.VehiclePosition.State = reader.ReadUInt32(); jT809_0X1500_0X1502.VehiclePosition.Alarm = reader.ReadUInt32(); jT809_0X1500_0X1502.LensID = reader.ReadByte(); jT809_0X1500_0X1502.PhotoLen = reader.ReadUInt32(); jT809_0X1500_0X1502.SizeType = reader.ReadByte(); jT809_0X1500_0X1502.Type = reader.ReadByte(); if (jT809_0X1500_0X1502.PhotoLen > 0) { jT809_0X1500_0X1502.Photo = reader.ReadArray((int)jT809_0X1500_0X1502.PhotoLen).ToArray(); } return(jT809_0X1500_0X1502); }
public JT809_0x1600_0x1602 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x1600_0x1602(); value.DRVLine = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); return(value); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1500_0x1502 value = new JT809_0x1500_0x1502(); value.PhotoRspFlag = (JT809_0x1502_PhotoRspFlag)reader.ReadByte(); writer.WriteString($"[{value.PhotoRspFlag.ToByteValue()}]拍照应答标识", value.PhotoRspFlag.ToString()); if (config.Version == JT809Version.JTT2011) { config.GetMessagePackFormatter <JT809VehiclePositionProperties>().Analyze(ref reader, writer, config); } else if (config.Version == JT809Version.JTT2019) { config.GetMessagePackFormatter <JT809VehiclePositionProperties_2019>().Analyze(ref reader, writer, config); } value.LensID = reader.ReadByte(); writer.WriteNumber($"[{value.LensID}]镜头ID", value.LensID); value.PhotoLen = reader.ReadUInt32(); writer.WriteNumber($"[{value.PhotoLen}]图片长度", value.PhotoLen); value.SizeType = (JT809_0x9502_SizeType)reader.ReadByte(); writer.WriteString($"[{value.SizeType.ToByteValue()}]图片大小", value.SizeType.ToString()); value.Type = (JT809_0x9502_ImageType)reader.ReadByte(); writer.WriteString($"[{value.Type.ToByteValue()}]图像格式", value.Type.ToString()); if (value.PhotoLen > 0) { var virtualHex = reader.ReadVirtualArray((int)value.PhotoLen); value.Photo = reader.ReadArray((int)value.PhotoLen).ToArray(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]图片内容", value.Photo); } }
public JT809_0x9300_0x9303 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x9300_0x9303(); value.SerialList = reader.ReadArray(8).ToArray(); value.Time = reader.ReadUTCDateTime(); return(value); }
public JT809_JT1078_0x9800_0x9801 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x9800_0x9801 value = new JT809_JT1078_0x9800_0x9801(); value.ChannelId = reader.ReadByte(); value.AVitemType = reader.ReadByte(); value.AuthorizeCode = reader.ReadString(64); value.GnssData = reader.ReadArray(36).ToArray(); return(value); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1500_0x1502 value = new JT809_0x1500_0x1502(); value.PhotoRspFlag = (JT809_0x1502_PhotoRspFlag)reader.ReadByte(); writer.WriteString($"[{value.PhotoRspFlag.ToByteValue()}]拍照应答标识", value.PhotoRspFlag.ToString()); 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}]日", value.VehiclePosition.Day); value.VehiclePosition.Month = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Month}]月", value.VehiclePosition.Month); value.VehiclePosition.Year = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Year}]年", value.VehiclePosition.Year); value.VehiclePosition.Hour = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Hour}]时", value.VehiclePosition.Hour); value.VehiclePosition.Minute = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Minute}]分", value.VehiclePosition.Minute); value.VehiclePosition.Second = reader.ReadByte(); writer.WriteNumber($"[{value.VehiclePosition.Second}]秒", value.VehiclePosition.Second); value.VehiclePosition.Lon = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Lon}]经度", value.VehiclePosition.Lon); value.VehiclePosition.Lat = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Lat}]纬度", value.VehiclePosition.Lat); value.VehiclePosition.Vec1 = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Vec1}]速度", value.VehiclePosition.Vec1); value.VehiclePosition.Vec2 = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Vec2}]行驶记录速度", value.VehiclePosition.Vec2); value.VehiclePosition.Vec3 = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Vec3}]车辆当前总里程数", value.VehiclePosition.Vec3); value.VehiclePosition.Direction = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Direction}]方向", value.VehiclePosition.Direction); value.VehiclePosition.Altitude = reader.ReadUInt16(); writer.WriteNumber($"[{value.VehiclePosition.Altitude}]海拔高度", value.VehiclePosition.Altitude); value.VehiclePosition.State = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.State}]车辆状态", value.VehiclePosition.State); value.VehiclePosition.Alarm = reader.ReadUInt32(); writer.WriteNumber($"[{value.VehiclePosition.Alarm}]报警状态", value.VehiclePosition.Alarm); writer.WriteEndObject(); value.LensID = reader.ReadByte(); writer.WriteNumber($"[{value.LensID}]镜头ID", value.LensID); value.PhotoLen = reader.ReadUInt32(); writer.WriteNumber($"[{value.PhotoLen}]图片长度", value.PhotoLen); value.SizeType = (JT809__0x9502_SizeType)reader.ReadByte(); writer.WriteString($"[{value.SizeType.ToByteValue()}]图片大小", value.SizeType.ToString()); value.Type = (JT809__0x9502_ImageType)reader.ReadByte(); writer.WriteString($"[{value.Type.ToByteValue()}]图像格式", value.Type.ToString()); if (value.PhotoLen > 0) { var virtualHex = reader.ReadVirtualArray((int)value.PhotoLen); value.Photo = reader.ReadArray((int)value.PhotoLen).ToArray(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]图片内容", value.Photo); } }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x9300_0x9303(); value.SerialList = reader.ReadArray(8).ToArray(); writer.WriteString($"[{value.SerialList.ToHexString()}]需要重传消息的起始报文序列号和结束的报文序列号", value.SerialList.ToHexString()); var virtualHex = reader.ReadVirtualArray(8); value.Time = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]", value.Time); }
public JT809_0x1300_0x1303 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x1300_0x1303(); value.SerialCount = reader.ReadByte(); value.SerialList = new List <byte[]>(); for (int i = 0; i < SerialCount; i++) { value.SerialList.Add(reader.ReadArray(8).ToArray()); } value.Time = reader.ReadUTCDateTime(); return(value); }
public JT809Header Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809Header jT809Header = new JT809Header(); jT809Header.MsgLength = reader.ReadUInt32(); jT809Header.MsgSN = reader.ReadUInt32(); jT809Header.BusinessType = reader.ReadUInt16(); jT809Header.MsgGNSSCENTERID = reader.ReadUInt32(); jT809Header.Version = new JT809Header_Version(reader.ReadArray(JT809Header_Version.FixedByteLength)); jT809Header.EncryptFlag = (JT809Header_Encrypt)reader.ReadByte(); jT809Header.EncryptKey = reader.ReadUInt32(); return(jT809Header); }
public JT809_JT1078_0x9A00_0x9A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_JT1078_0x9A00_0x9A01 value = new JT809_JT1078_0x9A00_0x9A01(); value.ChannelId = reader.ReadByte(); value.AVItemType = reader.ReadByte(); value.StreamType = reader.ReadByte(); value.MemType = reader.ReadByte(); value.PlayBackStartTime = reader.ReadUTCDateTime(); value.PlayBackEndTime = reader.ReadUTCDateTime(); value.AuthorizeCode = reader.ReadString(64); value.GnssData = reader.ReadArray(36).ToArray(); return(value); }
public JT809_0x1500_0x1504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1500_0x1504 value = new JT809_0x1500_0x1504(); if (config.Version == JT809Version.JTT2019) { value.SourceDataType = reader.ReadUInt16(); value.SourceMsgSn = reader.ReadUInt32(); value.CommandType = (JT809CommandType)reader.ReadByte(); } value.TraveldataLength = reader.ReadUInt32(); value.TraveldataInfo = reader.ReadArray((int)value.TraveldataLength).ToArray(); return(value); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { writer.WriteStartObject("车辆定位信息_2019"); var GNSSData = new JT809VehiclePositionProperties_2019(); GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); writer.WriteString($"[{GNSSData.Encrypt.ToByteValue()}]是否使用国家测绘局批准的地图保密插件进行加密", GNSSData.Encrypt.ToString()); var gnssDataLength = reader.ReadUInt32(); writer.WriteNumber($"[{gnssDataLength.ReadNumber()}]车辆定位信息数据长度", gnssDataLength); if (config.AnalyzeCallbacks.TryGetValue(0x0200, out JT808AnalyzeCallback jT808AnalyzeCallback)) { jT808AnalyzeCallback(reader.ReadArray((int)gnssDataLength).ToArray(), writer, config); } else { GNSSData.GnssData = reader.ReadArray((int)gnssDataLength).ToArray(); writer.WriteString($"[{GNSSData.GnssData.ToHexString()}]车辆定位信息内容", GNSSData.GnssData.ToHexString()); } var virtualHex = reader.ReadVirtualArray(11); GNSSData.PlatformId1 = reader.ReadString(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]监控平台唯一编码", GNSSData.PlatformId1); GNSSData.Alarm1 = reader.ReadUInt32(); writer.WriteNumber($"[{GNSSData.Alarm1.ReadNumber()}]报警状态1", GNSSData.Alarm1); virtualHex = reader.ReadVirtualArray(11); GNSSData.PlatformId2 = reader.ReadString(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]市级监控平台唯一编码", GNSSData.PlatformId2); GNSSData.Alarm2 = reader.ReadUInt32(); writer.WriteNumber($"[{GNSSData.Alarm1.ReadNumber()}]报警状态2", GNSSData.Alarm2); virtualHex = reader.ReadVirtualArray(11); GNSSData.PlatformId3 = reader.ReadString(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]省级监控平台唯一编码", GNSSData.PlatformId3); GNSSData.Alarm3 = reader.ReadUInt32(); writer.WriteNumber($"[{GNSSData.Alarm1.ReadNumber()}]报警状态3", GNSSData.Alarm3); writer.WriteEndObject(); }
public JT809VehiclePositionProperties_2019 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809VehiclePositionProperties_2019 value = new JT809VehiclePositionProperties_2019 { Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(), GnssData = reader.ReadArray((int)reader.ReadUInt32()).ToArray(), PlatformId1 = reader.ReadString(11), Alarm1 = reader.ReadUInt32(), PlatformId2 = reader.ReadString(11), Alarm2 = reader.ReadUInt32(), PlatformId3 = reader.ReadString(11), Alarm3 = reader.ReadUInt32(), }; return(value); }
public JT809Header Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809Header value = new JT809Header(); value.MsgLength = reader.ReadUInt32(); value.MsgSN = reader.ReadUInt32(); value.BusinessType = reader.ReadUInt16(); value.MsgGNSSCENTERID = reader.ReadUInt32(); value.Version = new JT809Header_Version(reader.ReadArray(JT809Header_Version.FixedByteLength)); value.EncryptFlag = (JT809Header_Encrypt)reader.ReadByte(); value.EncryptKey = reader.ReadUInt32(); if (config.Version == JT809Version.JTT2019) { value.Time = reader.ReadUTCDateTime(); } return(value); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x1300_0x1303(); value.SerialCount = reader.ReadByte(); writer.WriteNumber($"[{ value.SerialCount.ReadNumber()}]对应需要重传消息地子业务类型标识", value.SerialCount); value.SerialList = new List <byte[]>(); writer.WriteStartArray("重传消息地子业务类型标识列表"); for (int i = 0; i < SerialCount; i++) { var array = reader.ReadArray(8).ToArray(); writer.WriteString($"[{array.ToHexString()}]需要重传消息的起始报文序列号和结束的报文序列号", array); } writer.WriteEndArray(); var virtualHex = reader.ReadVirtualArray(8); value.Time = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]重传起始系统utc时间", value.Time); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1500_0x1504 value = new JT809_0x1500_0x1504(); if (config.Version == JT809Version.JTT2019) { value.SourceDataType = reader.ReadUInt16(); writer.WriteString($"[{value.SourceDataType.ReadNumber()}]对应启动车辆定位信息交换请求消息源子业务类型标识", ((JT809SubBusinessType)value.SourceDataType).ToString()); value.SourceMsgSn = reader.ReadUInt32(); writer.WriteNumber($"[{value.SourceMsgSn.ReadNumber()}对应启动车辆定位信息交换请求消息源报文序列号]", value.SourceMsgSn); value.CommandType = (JT809CommandType)reader.ReadByte(); writer.WriteString($"[{value.CommandType.ToByteValue()}]命令字", value.CommandType.ToString()); } value.TraveldataLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.TraveldataLength.ReadNumber()}]车辆行驶记录数据体长度", value.TraveldataLength); var virtualHex = reader.ReadVirtualArray((int)value.TraveldataLength); value.TraveldataInfo = reader.ReadArray((int)value.TraveldataLength).ToArray(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车辆行驶记录信息", value.TraveldataInfo.ToHexString()); }
public JT809_0x1200_0x1202 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x1200_0x1202 value = new JT809_0x1200_0x1202(); 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(); #warning 引用808的0x0200协议 value.GNSSData.GnssData = reader.ReadArray((int)value.GNSSData.DataLength).ToArray(); value.GNSSData.PlatformId1 = reader.ReadString(11); value.GNSSData.Alarm1 = reader.ReadUInt32(); value.GNSSData.PlatformId2 = reader.ReadString(11); value.GNSSData.Alarm2 = reader.ReadUInt32(); value.GNSSData.PlatformId3 = reader.ReadString(11); value.GNSSData.Alarm3 = reader.ReadUInt32(); } return(value); }
public JT809_0x9200_0x9202 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9202 jT809_0X1200_0x9202 = new JT809_0x9200_0x9202(); if (config.Version == JT809Version.JTT2011) { jT809_0X1200_0x9202.VehiclePosition = new JT809VehiclePositionProperties(); jT809_0X1200_0x9202.VehiclePosition.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); jT809_0X1200_0x9202.VehiclePosition.Day = reader.ReadByte(); jT809_0X1200_0x9202.VehiclePosition.Month = reader.ReadByte(); jT809_0X1200_0x9202.VehiclePosition.Year = reader.ReadUInt16(); jT809_0X1200_0x9202.VehiclePosition.Hour = reader.ReadByte(); jT809_0X1200_0x9202.VehiclePosition.Minute = reader.ReadByte(); jT809_0X1200_0x9202.VehiclePosition.Second = reader.ReadByte(); jT809_0X1200_0x9202.VehiclePosition.Lon = reader.ReadUInt32(); jT809_0X1200_0x9202.VehiclePosition.Lat = reader.ReadUInt32(); jT809_0X1200_0x9202.VehiclePosition.Vec1 = reader.ReadUInt16(); jT809_0X1200_0x9202.VehiclePosition.Vec2 = reader.ReadUInt16(); jT809_0X1200_0x9202.VehiclePosition.Vec3 = reader.ReadUInt32(); jT809_0X1200_0x9202.VehiclePosition.Direction = reader.ReadUInt16(); jT809_0X1200_0x9202.VehiclePosition.Altitude = reader.ReadUInt16(); jT809_0X1200_0x9202.VehiclePosition.State = reader.ReadUInt32(); jT809_0X1200_0x9202.VehiclePosition.Alarm = reader.ReadUInt32(); } else { jT809_0X1200_0x9202.GNSSData = new JT809VehiclePositionProperties_2019(); jT809_0X1200_0x9202.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); jT809_0X1200_0x9202.GNSSData.DataLength = reader.ReadUInt32(); jT809_0X1200_0x9202.GNSSData.GnssData = reader.ReadArray((int)jT809_0X1200_0x9202.GNSSData.DataLength).ToArray(); jT809_0X1200_0x9202.GNSSData.PlatformId1 = reader.ReadBigNumber(11); jT809_0X1200_0x9202.GNSSData.Alarm1 = reader.ReadUInt32(); jT809_0X1200_0x9202.GNSSData.PlatformId2 = reader.ReadBigNumber(11); jT809_0X1200_0x9202.GNSSData.Alarm2 = reader.ReadUInt32(); jT809_0X1200_0x9202.GNSSData.PlatformId3 = reader.ReadBigNumber(11); jT809_0X1200_0x9202.GNSSData.Alarm3 = reader.ReadUInt32(); } return(jT809_0X1200_0x9202); }
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(); if (config.Version == JT809Version.JTT2011) { value.VehiclePosition = config.GetMessagePackFormatter <JT809VehiclePositionProperties>().Deserialize(ref reader, config); } else if (config.Version == JT809Version.JTT2019) { value.VehiclePosition_2019 = config.GetMessagePackFormatter <JT809VehiclePositionProperties_2019>().Deserialize(ref reader, config); } 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 void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_JT1078_0x9A00_0x9A01 value = new JT809_JT1078_0x9A00_0x9A01(); value.ChannelId = reader.ReadByte(); writer.WriteString($"[{value.ChannelId.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.ChannelId)); value.AVItemType = reader.ReadByte(); writer.WriteString($"[{value.AVItemType.ReadNumber()}]音视频资源类型", AVResourceTypeDisplay(value.AVItemType)); value.StreamType = reader.ReadByte(); writer.WriteString($"[{value.StreamType.ReadNumber()}]码流类型", StreamTypeDisplay(value.StreamType)); value.MemType = reader.ReadByte(); writer.WriteString($"[{value.MemType.ReadNumber()}]存储器类型", MemoryTypeDisplay(value.MemType)); var virtualHex = reader.ReadVirtualArray(8); value.PlayBackStartTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]回放开始时间", value.PlayBackStartTime); virtualHex = reader.ReadVirtualArray(8); value.PlayBackEndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]回放结束时间", value.PlayBackEndTime); virtualHex = reader.ReadVirtualArray(64); value.AuthorizeCode = reader.ReadString(64); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]时效口令", value.AuthorizeCode); virtualHex = reader.ReadVirtualArray(36); value.GnssData = reader.ReadArray(36).ToArray(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车辆进入跨域地区后5min之内任一位置", virtualHex.ToArray().ToHexString()); 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 AVResourceTypeDisplay(byte AVResourceType) { switch (AVResourceType) { case 0: return("音视频"); case 1: return("音频"); case 2: return("视频"); default: break; } return("未知"); } string StreamTypeDisplay(byte StreamType) { switch (StreamType) { case 1: return("主码流"); case 2: return("子码流"); default: return("未知"); } } string MemoryTypeDisplay(byte MemoryType) { switch (MemoryType) { case 1: return("主存储器"); case 2: return("灾备存储器"); default: return("未知"); } } }
public JT809_0x9200_0x9203 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9203 value = new JT809_0x9200_0x9203(); value.GNSSCount = reader.ReadByte(); value.GNSS = new List <JT809_0x9200_0x9202>(); if (value.GNSSCount > 0) { for (int i = 0; i < value.GNSSCount; i++) { try { JT809MessagePackReader jT809_0x9200_0x9202Reader = new JT809MessagePackReader(reader.ReadArray(36)); JT809_0x9200_0x9202 jT809_0x1200_0x1202 = config.GetMessagePackFormatter <JT809_0x9200_0x9202>().Deserialize(ref jT809_0x9200_0x9202Reader, config); value.GNSS.Add(jT809_0x1200_0x1202); } catch (Exception) { } } } return(value); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9200_0x9203 value = new JT809_0x9200_0x9203(); value.GNSSCount = reader.ReadByte(); writer.WriteNumber($"[{value.GNSSCount.ReadNumber()}]卫星定位数据个数", value.GNSSCount); value.GNSS = new List <JT809_0x9200_0x9202>(); if (value.GNSSCount > 0) { writer.WriteStartArray("卫星定位数据集合"); for (int i = 0; i < value.GNSSCount; i++) { try { writer.WriteStartObject(); JT809MessagePackReader jT809_0x9200_0x9202Reader = new JT809MessagePackReader(reader.ReadArray(36)); config.GetMessagePackFormatter <JT809_0x9200_0x9202>().Analyze(ref jT809_0x9200_0x9202Reader, writer, config); writer.WriteEndObject(); } catch (Exception) { } } writer.WriteEndArray(); } }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1200_0x1202 value = new JT809_0x1200_0x1202(); writer.WriteStartObject("车辆定位信息"); if (config.Version == JT809Version.JTT2011) { value.VehiclePosition = new JT809VehiclePositionProperties(); 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); } else { value.GNSSData = new JT809VehiclePositionProperties_2019(); value.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); writer.WriteString($"[{value.VehiclePosition.Encrypt.ToByteValue()}]是否使用国家测绘局批准的地图保密插件进行加密", value.VehiclePosition.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(); #warning 此处需要提供接口注入 writer.WriteString($"[{value.GNSSData.GnssData.ToHexString()}]车辆定位信息内容", value.GNSSData.GnssData.ToHexString()); var virtualHex = reader.ReadVirtualArray(11); value.GNSSData.PlatformId1 = reader.ReadString(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.ReadString(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]市级监控平台唯一编码", value.GNSSData.PlatformId2); value.GNSSData.Alarm2 = reader.ReadUInt32(); writer.WriteNumber($"[{value.GNSSData.Alarm1.ReadNumber()}]报警状态", value.GNSSData.Alarm1); virtualHex = reader.ReadVirtualArray(11); value.GNSSData.PlatformId3 = reader.ReadString(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]省级监控平台唯一编码", value.GNSSData.PlatformId3); value.GNSSData.Alarm3 = reader.ReadUInt32(); writer.WriteNumber($"[{value.GNSSData.Alarm1.ReadNumber()}]报警状态", value.GNSSData.Alarm1); } writer.WriteEndObject(); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_JT1078_0x9800_0x9801 value = new JT809_JT1078_0x9800_0x9801(); value.ChannelId = reader.ReadByte(); writer.WriteString($"[{value.ChannelId.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.ChannelId)); value.AVitemType = reader.ReadByte(); writer.WriteString($"[{value.AVitemType.ReadNumber()}]音视频资源类型", AVResourceTypeDisplay(value.AVitemType)); var virtualHex = reader.ReadVirtualArray(64); value.AuthorizeCode = reader.ReadString(64); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]时效口令", value.AuthorizeCode); if (reader.ReadCurrentRemainContentLength() >= 36) { value.GnssData = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); writer.WriteString($"[车辆进入跨域地区后5min之内的任何位置]", value.GnssData.ToHexString()); } 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 AVResourceTypeDisplay(byte AVResourceType) { switch (AVResourceType) { case 0: return("音视频"); case 1: return("音频"); case 2: return("视频"); default: break; } return("未知"); } }
public JT809_0x9200_0x9203 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9200_0x9203 jT809_0X1200_0x9203 = new JT809_0x9200_0x9203(); jT809_0X1200_0x9203.GNSSCount = reader.ReadByte(); jT809_0X1200_0x9203.GNSS = new List <JT809_0x9200_0x9202>(); if (jT809_0X1200_0x9203.GNSSCount > 0) { for (int i = 0; i < jT809_0X1200_0x9203.GNSSCount; i++) { try { JT809MessagePackReader jT809_0x9200_0x9202Reader = new JT809MessagePackReader(reader.ReadArray(36)); //todo:JT809_0x9200_0x9202 //JT809_0x9200_0x9202 jT809_0x1200_0x1202 = JT809_0x9200_0x9202_Formatter.Instance.Deserialize(ref jT809_0x9200_0x9202Reader, config); //jT809_0X1200_0x9203.GNSS.Add(jT809_0x1200_0x1202); } catch (Exception) { } } } return(jT809_0X1200_0x9203); }