public JT809_0x9500_0x9504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9500_0x9504 jT809_0X9500_0X9504 = new JT809_0x9500_0x9504(); jT809_0X9500_0X9504.Command = (JT809CommandType)reader.ReadByte(); switch (jT809_0X9500_0X9504.Command) { case JT809CommandType.记录仪标准版本: case JT809CommandType.当前驾驶人信息: case JT809CommandType.记录仪时间: case JT809CommandType.记录仪累计行驶里程: case JT809CommandType.记录仪脉冲系数: case JT809CommandType.车辆信息: case JT809CommandType.记录仪状态信号配置信息: case JT809CommandType.记录仪唯一性编号: break; case JT809CommandType.采集记录仪行驶记录: case JT809CommandType.采集记录仪位置信息记录: case JT809CommandType.采集记录仪事故疑点记录: case JT809CommandType.采集记录仪超时驾驶记录: case JT809CommandType.采集记录仪驾驶人身份记录: case JT809CommandType.采集记录仪外部供电记录: case JT809CommandType.采集记录仪参数修改记录: case JT809CommandType.采集记录仪速度状态日志: jT809_0X9500_0X9504.StartTime = reader.ReadDateTime6(); jT809_0X9500_0X9504.EndTime = reader.ReadDateTime6(); jT809_0X9500_0X9504.Max = reader.ReadUInt16(); break; } return(jT809_0X9500_0X9504); }
public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config) { var value = new JT809_0x9500_0x9504(); if (config.Version == JT809Version.JTT2019) { var 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); value.Command = (JT809CommandType)reader.ReadByte(); writer.WriteString($"[{value.Command.ToByteValue()}]命令字ID", value.Command.ToString()); } else { value.Command = (JT809CommandType)reader.ReadByte(); writer.WriteString($"[{value.Command.ToByteValue()}]命令字ID", value.Command.ToString()); switch (value.Command) { case JT809CommandType.记录仪标准版本: case JT809CommandType.当前驾驶人信息: case JT809CommandType.记录仪时间: case JT809CommandType.记录仪累计行驶里程: case JT809CommandType.记录仪脉冲系数: case JT809CommandType.车辆信息: case JT809CommandType.记录仪状态信号配置信息: case JT809CommandType.记录仪唯一性编号: break; case JT809CommandType.采集记录仪行驶记录: case JT809CommandType.采集记录仪位置信息记录: case JT809CommandType.采集记录仪事故疑点记录: case JT809CommandType.采集记录仪超时驾驶记录: case JT809CommandType.采集记录仪驾驶人身份记录: case JT809CommandType.采集记录仪外部供电记录: case JT809CommandType.采集记录仪参数修改记录: case JT809CommandType.采集记录仪速度状态日志: var hex = reader.ReadVirtualArray(6); value.StartTime = reader.ReadDateTime6(); writer.WriteString($"[{hex.ToArray().ToHexString()}]开始时间", value.StartTime); hex = reader.ReadVirtualArray(6); value.EndTime = reader.ReadDateTime6(); writer.WriteString($"[{hex.ToArray().ToHexString()}]结束时间", value.EndTime); value.Max = reader.ReadUInt16(); writer.WriteNumber($"[{value.Max.ReadNumber()}]最大数据数", value.Max); break; } } }
public JT809_0x9500_0x9504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x9500_0x9504(); if (config.Version == JT809Version.JTT2019) { value.StartTime = reader.ReadUTCDateTime(); value.EndTime = reader.ReadUTCDateTime(); value.Command = (JT809CommandType)reader.ReadByte(); } else { value.Command = (JT809CommandType)reader.ReadByte(); switch (value.Command) { case JT809CommandType.记录仪标准版本: case JT809CommandType.当前驾驶人信息: case JT809CommandType.记录仪时间: case JT809CommandType.记录仪累计行驶里程: case JT809CommandType.记录仪脉冲系数: case JT809CommandType.车辆信息: case JT809CommandType.记录仪状态信号配置信息: case JT809CommandType.记录仪唯一性编号: break; case JT809CommandType.采集记录仪行驶记录: case JT809CommandType.采集记录仪位置信息记录: case JT809CommandType.采集记录仪事故疑点记录: case JT809CommandType.采集记录仪超时驾驶记录: case JT809CommandType.采集记录仪驾驶人身份记录: case JT809CommandType.采集记录仪外部供电记录: case JT809CommandType.采集记录仪参数修改记录: case JT809CommandType.采集记录仪速度状态日志: value.StartTime = reader.ReadDateTime6(); value.EndTime = reader.ReadDateTime6(); value.Max = reader.ReadUInt16(); break; } } return(value); }