public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9101 value = new JT809_0x9101(); value.DynamicInfoTotal = reader.ReadUInt32(); writer.WriteNumber($"[{value.DynamicInfoTotal.ReadNumber()}START_TIME_END_TIME共收到的车辆定位信息数量]", value.DynamicInfoTotal); var 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); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9102 value = new JT809_0x9102(); var virtualHex = reader.ReadVirtualArray(11); value.PlateformId = reader.ReadString(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); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9600 value = new JT809_0x9600(); var 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()); 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 void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9103 value = new JT809_0x9103(); 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.WriteEndArray(); }
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 void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x1200_0x120E(); var virtualHex = reader.ReadVirtualArray(reader.ReadCurrentRemainContentLength()); value.DRVLine = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]路线信息", value.DRVLine); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9200_0x9204 value = new JT809_0x9200_0x9204(); var virtualHex = reader.ReadVirtualArray(reader.ReadCurrentRemainContentLength()); value.CarInfo = reader.ReadRemainStringContent(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车辆信息", value.CarInfo); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9500_0x9501 value = new JT809_0x9500_0x9501(); var virtualHex = reader.ReadVirtualArray(20); value.MonitorTel = reader.ReadString(20); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]回拨电话号码", value.MonitorTel); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9300_0x9302 value = new JT809_0x9300_0x9302(); value.ObjectType = (JT809_0x9302_ObjectType)reader.ReadByte(); writer.WriteString($"[{value.ObjectType.ToByteValue()}]查岗对象的类型", value.ObjectType.ToString()); var virtualHex = reader.ReadVirtualArray(12); value.ObjectID = reader.ReadString(12); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]查岗对象的ID", value.ObjectID); value.InfoID = reader.ReadUInt32(); writer.WriteNumber($"[{value.InfoID.ReadNumber() }]信息ID", value.InfoID); 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 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 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_0x1003 value = new JT809_0x1003(); value.UserId = reader.ReadUInt32(); writer.WriteNumber($"[{value.UserId.ReadNumber()}]用户名", value.UserId); var virtualHex = reader.ReadVirtualArray(8); value.Password = reader.ReadString(8); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]密码", value.Password); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1200_0x120D value = new JT809_0x1200_0x120D(); value.EwaybillLength = reader.ReadUInt32(); writer.WriteNumber($"[{value.EwaybillLength.ReadNumber()}]电子运单数据体长度", value.EwaybillLength); var virtualHex = reader.ReadVirtualArray((int)value.EwaybillLength); value.EwaybillInfo = reader.ReadString((int)value.EwaybillLength); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]电子运单数据内容", value.EwaybillInfo); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1001 value = new JT809_0x1001(); value.UserId = reader.ReadUInt32(); writer.WriteNumber($"[{value.UserId.ReadNumber()}]用户名", value.UserId); var virtualHex = reader.ReadVirtualArray(8); value.Password = reader.ReadString(8); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]密码", value.Password); if (config.Version == JT809Version.JTT2019) { value.MsgGNSSCENTERID = reader.ReadUInt32(); writer.WriteNumber($"[{value.MsgGNSSCENTERID.ReadNumber()}]下级平台接入码", value.MsgGNSSCENTERID); } virtualHex = reader.ReadVirtualArray(32); value.DownLinkIP = reader.ReadString(32); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]下级平台提供对应的从链路服务端IP地址", value.DownLinkIP); value.DownLinkPort = reader.ReadUInt16(); writer.WriteNumber($"[{value.DownLinkPort.ReadNumber()}]下级平台提供对应的从链路服务器端口号", value.DownLinkPort); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_JT1078_0x1A00_0x1A01 value = new JT809_JT1078_0x1A00_0x1A01(); var virtualHex = reader.ReadVirtualArray(32); value.ServerIp = reader.ReadString(32); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]企业视频服务器ip地址", value.ServerIp); value.ServerPort = reader.ReadUInt16(); writer.WriteNumber($"[{value.ServerPort.ReadNumber()}]企业视频服务器端口号", value.ServerPort); value.Result = (JT809_JT1078_0x1A00_0x1A01_Result)reader.ReadByte(); writer.WriteString($"[{((byte)value.Result).ReadNumber()}]应答结果", value.Result.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 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 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) { JT809_0x9300_0x9301 value = new JT809_0x9300_0x9301(); ReadOnlySpan <byte> virtualHex; if (config.Version == JT809Version.JTT2019) { value.ObjectType = (JT809_0x9301_ObjectType)reader.ReadByte(); writer.WriteString($"[{value.ObjectType.ToByteValue()}]查岗对象的类型", value.ObjectType.ToString()); virtualHex = reader.ReadVirtualArray(20); value.ObjectID = reader.ReadString(20); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]查岗对象的ID", value.ObjectID); writer.WriteNumber($"[{value.AnswerTime.ReadNumber()}]查岗应答时限", value.AnswerTime); } value.InfoID = reader.ReadUInt32(); writer.WriteNumber($"[{value.InfoID.ReadNumber() }]信息ID", value.InfoID); 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 void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_JT1078_0x9A00_0x9A02 value = new JT809_JT1078_0x9A00_0x9A02(); value.ControlType = (ControlType)reader.ReadByte(); writer.WriteString($"[{((byte)value.ControlType).ReadNumber()}]控制类型", value.ControlType.ToString()); value.FastTime = (FastTime)reader.ReadByte(); writer.WriteString($"[{((byte)value.FastTime).ReadNumber()}]快进或倒退倍数", value.FastTime.ToString()); var virtualHex = reader.ReadVirtualArray(8); value.DateTime = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]拖动位置", value.DateTime); }
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); writer.WriteNumber($"[{value.BeginMessageNumber.ReadNumber()}需要重传消息的起始报文序列号]", value.BeginMessageNumber); writer.WriteNumber($"[{value.EndMessageNumber.ReadNumber()}需要重传消息的结束报文序列号]", value.EndMessageNumber); 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_0x1200_0x120C value = new JT809_0x1200_0x120C(); var virtualHex = reader.ReadVirtualArray(16); value.DriverName = reader.ReadString(16); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]驾驶员姓名", value.DriverName); virtualHex = reader.ReadVirtualArray(20); value.DriverID = reader.ReadString(20); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]身份证编号", value.DriverID); virtualHex = reader.ReadVirtualArray(40); value.Licence = reader.ReadString(40); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]从业资格证", value.Licence); virtualHex = reader.ReadVirtualArray(200); value.OrgName = reader.ReadString(200); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发证机构名称", value.OrgName); if (config.Version == JT809Version.JTT2019) { virtualHex = reader.ReadVirtualArray(8); value.ValidDate = reader.ReadUTCDateTime(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]证件有效期", value.ValidDate); } }
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 void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x1400_0x1402(); if (config.Version == JT809Version.JTT2011) { value.WarnSrc = (JT809WarnSrc)reader.ReadByte(); writer.WriteString($"[{value.WarnSrc.ToByteValue()}]报警信息来源", value.WarnSrc.ToString()); } else { var virtualHex = reader.ReadVirtualArray(11); value.SourcePlatformId = reader.ReadString(11); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId); } value.WarnType = (JT809WarnType)reader.ReadUInt16(); writer.WriteString($"[{value.WarnType.ToByteValue()}]报警类型", value.WarnType.ToString()); var hex = reader.ReadVirtualArray(8); value.WarnTime = reader.ReadUTCDateTime(); writer.WriteString($"[{hex.ToArray().ToHexString()}]报警时间", value.WarnTime); if (config.Version == JT809Version.JTT2011) { value.InfoID = reader.ReadUInt32(); writer.WriteNumber($"[{value.InfoID.ReadNumber()}]信息ID", value.InfoID); } else { hex = reader.ReadVirtualArray(8); value.StartTime = reader.ReadUTCDateTime(); writer.WriteString($"[{hex.ToArray().ToHexString()}]事件开始时间", value.StartTime); hex = reader.ReadVirtualArray(8); value.EndTime = reader.ReadUTCDateTime(); writer.WriteString($"[{hex.ToArray().ToHexString()}]事件结束时间", value.EndTime); #warning 此处车牌号文档长度有误,使用旧版长度21 hex = reader.ReadVirtualArray(21); value.VehicleNo = reader.ReadString(21); writer.WriteString($"[{hex.ToArray().ToHexString()}]车牌号码", value.VehicleNo); value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); writer.WriteString($"[{value.VehicleColor.ToByteValue()}]车牌颜色", value.VehicleColor.ToString()); hex = reader.ReadVirtualArray(11); value.DestinationPlatformId = reader.ReadString(11); writer.WriteString($"[{hex.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); hex = reader.ReadVirtualArray((int)value.InfoLength); value.InfoContent = reader.ReadString((int)value.InfoLength); writer.WriteString($"[{hex.ToArray().ToHexString()}]信息内容", value.InfoContent); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x9200_0x920D(); value.DRVLineID = reader.ReadUInt32(); writer.WriteNumber($"[{value.DRVLineID.ReadNumber()}]线路ID", value.DRVLineID); value.Result = (JT809_0x920D_Result)reader.ReadByte(); writer.WriteString($"[{value.Result.ToByteValue()}]处理结果", value.Result.ToString()); value.ReasonLength = reader.ReadUInt16(); writer.WriteNumber($"[{value.ReasonLength.ReadNumber()}]未通过原因内容长度", value.ReasonLength); var virtualHex = reader.ReadVirtualArray(value.ReasonLength); value.Reason = reader.ReadString(value.ReasonLength); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]经过GBK编码后的未通过原因", value.Reason); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x9500_0x9503 value = new JT809_0x9500_0x9503(); value.MsgSequence = reader.ReadUInt32(); writer.WriteNumber($"[{value.MsgSequence.ReadNumber()}]消息ID序号", value.MsgSequence); value.MsgPriority = (JT809_0x9503_MsgPriority)reader.ReadByte(); writer.WriteString($"[{value.MsgPriority.ToByteValue()}]报文优先级", value.MsgPriority.ToString()); value.MsgLength = reader.ReadUInt32(); writer.WriteNumber($"[{ value.MsgLength.ReadNumber()}]报文信息长度", value.MsgLength); var virtualHex = reader.ReadVirtualArray((int)value.MsgLength); value.MsgContent = reader.ReadString((int)value.MsgLength); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]报文信息内容", value.MsgContent); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_JT1078_0x1B00_0x1B02 value = new JT809_JT1078_0x1B00_0x1B02(); value.Result = (JT809_JT1078_0x1B00_0x1B02_Result)reader.ReadByte(); writer.WriteString($"[{((byte)value.Result).ReadNumber() }]应答结果", value.Result.ToString()); value.SessionId = reader.ReadUInt16(); writer.WriteNumber($"[{value.SessionId.ReadNumber()}]对应平台文件上传消息的流水号", value.SessionId); var virtualHex = reader.ReadVirtualArray(32); value.ServerIp = reader.ReadString(32); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]FTP服务器ip地址", value.ServerIp); value.TcpPort = reader.ReadUInt16(); writer.WriteNumber($"[{value.TcpPort.ReadNumber()}]FTP服务器端口", value.TcpPort); virtualHex = reader.ReadVirtualArray(49); value.UserName = reader.ReadString(49); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]FTP用户名", value.UserName); virtualHex = reader.ReadVirtualArray(22); value.Password = reader.ReadString(22); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]FTP密码", value.Password); virtualHex = reader.ReadVirtualArray(200); value.FilePath = reader.ReadString(200); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]文件存储路径", value.FilePath); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1600_0x1601 value = new JT809_0x1600_0x1601(); 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); } var virtualHex = reader.ReadVirtualArray(reader.ReadCurrentRemainContentLength()); value.CarInfo = reader.ReadRemainStringContent(); writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]车辆信息", value.CarInfo); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { JT809_0x1300_0x1302 value = new JT809_0x1300_0x1302(); if (config.Version == JT809Version.JTT2019) { var virtualHex = reader.ReadVirtualArray(16); value.SourceDataType = reader.ReadUInt16(); writer.WriteString($"[{value.SourceDataType.ReadNumber()}]对应启动车辆定位信息交换请求消息源子业务类型标识", ((JT809SubBusinessType)value.SourceDataType).ToString()); value.SourceMsgSn = reader.ReadUInt32(); writer.WriteNumber($"[{value.SourceMsgSn.ReadNumber()}对应启动车辆定位信息交换请求消息源报文序列号]", value.SourceMsgSn); } else { value.InfoID = reader.ReadUInt32(); writer.WriteNumber($"[{value.InfoID.ReadNumber()}]信息ID", value.InfoID); } }