using JT809.Protocol.Enums; using JT809.Protocol.Formatters; using JT809.Protocol.MessagePack; using JT809.Protocol.Extensions; using System; namespace JT809.Protocol.SubMessageBody { /// /// 报警督办请求消息 /// 子业务类型标识:DOWN_WARN_MSG_URGE_TODO_REQ /// 描述:上级平台向车辆归属下级平台下发本消息,催促其及时处理相关车辆的报警信息 /// public class JT809_0x9400_0x9401:JT809SubBodies, IJT809MessagePackFormatter { public override ushort SubMsgId => JT809SubBusinessType.报警督办请求消息.ToUInt16Value(); public override string Description => "报警督办请求消息"; /// /// 报警信息来源 /// public JT809WarnSrc WarnSrc { get; set; } /// /// 报警类型 /// public ushort WarnType { get; set; } /// /// 报警时间UTCDateTime /// public DateTime WarnTime { get; set; } /// /// 报警督办ID HexString /// public string SupervisionID { get; set; } /// /// 督办截止时间 /// public DateTime SupervisionEndTime { get; set; } /// /// 督办级别 /// public byte SupervisionLevel { get; set; } /// /// 督办人 /// public string Supervisor { get; set; } /// /// 督办联系电话 /// public string SupervisorTel { get; set; } /// /// 督办联系电子邮件 /// public string SupervisorEmail { get; set; } public JT809_0x9400_0x9401 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { JT809_0x9400_0x9401 jT809_0X9400_0X9401 = new JT809_0x9400_0x9401(); jT809_0X9400_0X9401.WarnSrc = (JT809WarnSrc)reader.ReadByte(); jT809_0X9400_0X9401.WarnType = reader.ReadUInt16(); jT809_0X9400_0X9401.WarnTime = reader.ReadUTCDateTime(); jT809_0X9400_0X9401.SupervisionID = reader.ReadHex(4); jT809_0X9400_0X9401.SupervisionEndTime = reader.ReadUTCDateTime(); jT809_0X9400_0X9401.SupervisionLevel = reader.ReadByte(); jT809_0X9400_0X9401.Supervisor = reader.ReadString(16); jT809_0X9400_0X9401.SupervisorTel = reader.ReadString(20); jT809_0X9400_0X9401.SupervisorEmail = reader.ReadString(32); return jT809_0X9400_0X9401; } public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9400_0x9401 value, IJT809Config config) { writer.WriteByte((byte)value.WarnSrc); writer.WriteUInt16(value.WarnType); writer.WriteUTCDateTime(value.WarnTime); writer.WriteHex(value.SupervisionID, 4); writer.WriteUTCDateTime(value.SupervisionEndTime); writer.WriteByte(value.SupervisionLevel); writer.WriteStringPadRight(value.Supervisor, 16); writer.WriteStringPadRight(value.SupervisorTel, 20); writer.WriteStringPadRight(value.SupervisorEmail, 32); } } }