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.

63 righe
2.8 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. using JT809.Protocol.Interfaces;
  7. using System.Text.Json;
  8. namespace JT809.Protocol.SubMessageBody
  9. {
  10. /// <summary>
  11. /// 上报报警督办应答消息
  12. /// <para>子业务类型标识:UP_WARN_MSG_URGE_TODO_ACK_INFO</para>
  13. /// <para>描述:下级平台向上级平台上报某车辆的报警信息</para>
  14. /// <para>本条消息上级平台无需应答</para>
  15. /// </summary>
  16. public class JT809_0x1400_0x1411 : JT809SubBodies, IJT809MessagePackFormatter<JT809_0x1400_0x1411>, IJT809Analyze, IJT809_2019_Version
  17. {
  18. public override ushort SubMsgId => JT809SubBusinessType.上报报警督办应答消息.ToUInt16Value();
  19. public override string Description => "上报报警督办应答消息";
  20. /// <summary>
  21. /// 对应报警督办请求消息源子业务类型标识
  22. /// </summary>
  23. public ushort SourceDataType { get; set; }
  24. /// <summary>
  25. /// 对应报警督办请求消息源报文序列号
  26. /// </summary>
  27. public uint SourceMsgSn { get; set; }
  28. /// <summary>
  29. /// 报警处理结果
  30. /// </summary>
  31. public JT809_0x1411_Result Result { get; set; }
  32. public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
  33. {
  34. var value = new JT809_0x1400_0x1411();
  35. value.SourceDataType = reader.ReadUInt16();
  36. writer.WriteString($"[{value.SourceDataType.ReadNumber()}]对应启动车辆定位信息交换请求消息源子业务类型标识", ((JT809SubBusinessType)value.SourceDataType).ToString());
  37. value.SourceMsgSn = reader.ReadUInt32();
  38. writer.WriteNumber($"[{value.SourceMsgSn.ReadNumber()}对应启动车辆定位信息交换请求消息源报文序列号]", value.SourceMsgSn);
  39. value.Result = (JT809_0x1411_Result)reader.ReadByte();
  40. writer.WriteString($"[{value.Result.ToByteValue()}]报警处理结果", value.Result.ToString());
  41. }
  42. public JT809_0x1400_0x1411 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
  43. {
  44. var value = new JT809_0x1400_0x1411();
  45. value.SourceDataType = reader.ReadUInt16();
  46. value.SourceMsgSn = reader.ReadUInt32();
  47. value.Result = (JT809_0x1411_Result)reader.ReadByte();
  48. return value;
  49. }
  50. public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1400_0x1411 value, IJT809Config config)
  51. {
  52. writer.WriteUInt16(value.SourceDataType);
  53. writer.WriteUInt32(value.SourceMsgSn);
  54. writer.WriteByte((byte)value.Result);
  55. }
  56. }
  57. }