using JT808.Protocol.Enums; using JT808.Protocol.Extensions; using JT808.Protocol.Formatters; using JT808.Protocol.Interfaces; using JT808.Protocol.MessagePack; using System; using System.Text.Json; namespace JT808.Protocol.MessageBody { /// /// 存储多媒体数据检索 /// 0x8802 /// public class JT808_0x8802 : JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze { public override ushort MsgId { get; } = 0x8802; public override string Description => "存储多媒体数据检索"; /// /// 多媒体类型 /// /// public byte MultimediaType { get; set; } /// /// 通道 ID /// public byte ChannelId { get; set; } /// /// 事件项编码 /// /// 0:平台下发指令;1:定时动作;2:抢劫报警触发;3:碰撞侧翻报警触发;其他保留 /// public byte EventItemCoding { get; set; } /// /// 起始时间 /// YY-MM-DD-hh-mm-ss /// public DateTime StartTime { get; set; } /// /// 结束时间 /// YY-MM-DD-hh-mm-ss /// public DateTime EndTime { get; set; } public JT808_0x8802 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) { JT808_0x8802 jT808_0X8802 = new JT808_0x8802(); jT808_0X8802.MultimediaType = reader.ReadByte(); jT808_0X8802.ChannelId = reader.ReadByte(); jT808_0X8802.EventItemCoding = reader.ReadByte(); jT808_0X8802.StartTime = reader.ReadDateTime6(); jT808_0X8802.EndTime = reader.ReadDateTime6(); return jT808_0X8802; } public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8802 value, IJT808Config config) { writer.WriteByte(value.MultimediaType); writer.WriteByte(value.ChannelId); writer.WriteByte(value.EventItemCoding); writer.WriteDateTime6(value.StartTime); writer.WriteDateTime6(value.EndTime); } public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config) { JT808_0x8802 value = new JT808_0x8802(); value.MultimediaType = reader.ReadByte(); value.ChannelId = reader.ReadByte(); value.EventItemCoding = reader.ReadByte(); value.StartTime = reader.ReadDateTime6(); value.EndTime = reader.ReadDateTime6(); JT808MultimediaType multimediaType = (JT808MultimediaType)value.MultimediaType; JT808EventItemCoding eventItemCoding = (JT808EventItemCoding)value.EventItemCoding; writer.WriteNumber($"[{ value.MultimediaType.ReadNumber()}]多媒体类型-{multimediaType.ToString()}", value.MultimediaType); writer.WriteNumber($"[{ value.ChannelId.ReadNumber()}]通道ID", value.ChannelId); writer.WriteNumber($"[{ value.EventItemCoding.ReadNumber()}]事件项编码-{eventItemCoding.ToString()}", value.EventItemCoding); writer.WriteString($"[{ value.StartTime.ToString("yyMMddHHmmss")}]起始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss")); writer.WriteString($"[{ value.EndTime.ToString("yyMMddHHmmss")}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss")); } } }