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);
}
}
}