Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

84 righe
3.3 KiB

  1. using JT809.Protocol.Enums;
  2. using JT809.Protocol.Formatters;
  3. using JT809.Protocol.MessagePack;
  4. using JT809.Protocol.Extensions;
  5. using System;
  6. namespace JT809.Protocol.SubMessageBody
  7. {
  8. /// <summary>
  9. /// 报警督办请求消息
  10. /// <para>子业务类型标识:DOWN_WARN_MSG_URGE_TODO_REQ</para>
  11. /// <para>描述:上级平台向车辆归属下级平台下发本消息,催促其及时处理相关车辆的报警信息</para>
  12. /// </summary>
  13. public class JT809_0x9400_0x9401:JT809SubBodies, IJT809MessagePackFormatter<JT809_0x9400_0x9401>
  14. {
  15. public override ushort SubMsgId => JT809SubBusinessType.报警督办请求消息.ToUInt16Value();
  16. public override string Description => "报警督办请求消息";
  17. /// <summary>
  18. /// 报警信息来源
  19. /// </summary>
  20. public JT809WarnSrc WarnSrc { get; set; }
  21. /// <summary>
  22. /// 报警类型
  23. /// </summary>
  24. public ushort WarnType { get; set; }
  25. /// <summary>
  26. /// 报警时间UTCDateTime
  27. /// </summary>
  28. public DateTime WarnTime { get; set; }
  29. /// <summary>
  30. /// 报警督办ID HexString
  31. /// </summary>
  32. public string SupervisionID { get; set; }
  33. /// <summary>
  34. /// 督办截止时间
  35. /// </summary>
  36. public DateTime SupervisionEndTime { get; set; }
  37. /// <summary>
  38. /// 督办级别
  39. /// </summary>
  40. public byte SupervisionLevel { get; set; }
  41. /// <summary>
  42. /// 督办人
  43. /// </summary>
  44. public string Supervisor { get; set; }
  45. /// <summary>
  46. /// 督办联系电话
  47. /// </summary>
  48. public string SupervisorTel { get; set; }
  49. /// <summary>
  50. /// 督办联系电子邮件
  51. /// </summary>
  52. public string SupervisorEmail { get; set; }
  53. public JT809_0x9400_0x9401 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
  54. {
  55. JT809_0x9400_0x9401 jT809_0X9400_0X9401 = new JT809_0x9400_0x9401();
  56. jT809_0X9400_0X9401.WarnSrc = (JT809WarnSrc)reader.ReadByte();
  57. jT809_0X9400_0X9401.WarnType = reader.ReadUInt16();
  58. jT809_0X9400_0X9401.WarnTime = reader.ReadUTCDateTime();
  59. jT809_0X9400_0X9401.SupervisionID = reader.ReadHex(4);
  60. jT809_0X9400_0X9401.SupervisionEndTime = reader.ReadUTCDateTime();
  61. jT809_0X9400_0X9401.SupervisionLevel = reader.ReadByte();
  62. jT809_0X9400_0X9401.Supervisor = reader.ReadString(16);
  63. jT809_0X9400_0X9401.SupervisorTel = reader.ReadString(20);
  64. jT809_0X9400_0X9401.SupervisorEmail = reader.ReadString(32);
  65. return jT809_0X9400_0X9401;
  66. }
  67. public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9400_0x9401 value, IJT809Config config)
  68. {
  69. writer.WriteByte((byte)value.WarnSrc);
  70. writer.WriteUInt16(value.WarnType);
  71. writer.WriteUTCDateTime(value.WarnTime);
  72. writer.WriteHex(value.SupervisionID, 4);
  73. writer.WriteUTCDateTime(value.SupervisionEndTime);
  74. writer.WriteByte(value.SupervisionLevel);
  75. writer.WriteStringPadRight(value.Supervisor, 16);
  76. writer.WriteStringPadRight(value.SupervisorTel, 20);
  77. writer.WriteStringPadRight(value.SupervisorEmail, 32);
  78. }
  79. }
  80. }