You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.6 KiB

  1. using JT808.Protocol.Extensions;
  2. using JT808.Protocol.Formatters;
  3. using JT808.Protocol.Interfaces;
  4. using JT808.Protocol.MessagePack;
  5. using System;
  6. using System.Text.Json;
  7. namespace JT808.Protocol.MessageBody
  8. {
  9. /// <summary>
  10. /// 信息点播/取消
  11. /// 0x0303
  12. /// 2019版本已作删除
  13. /// </summary>
  14. public class JT808_0x0303 : JT808MessagePackFormatter<JT808_0x0303>, JT808Bodies, IJT808_2019_Version, IJT808Analyze
  15. {
  16. /// <summary>
  17. /// 0x0303
  18. /// </summary>
  19. public ushort MsgId => 0x0303;
  20. /// <summary>
  21. ///
  22. /// </summary>
  23. public bool SkipSerialization => false;
  24. /// <summary>
  25. /// 信息点播_取消
  26. /// </summary>
  27. public string Description => "信息点播_取消";
  28. /// <summary>
  29. /// 信息类型
  30. /// </summary>
  31. public byte InformationType { get; set; }
  32. /// <summary>
  33. /// 点播/取消标志
  34. /// </summary>
  35. public byte Flag { get; set; }
  36. /// <summary>
  37. ///
  38. /// </summary>
  39. /// <param name="reader"></param>
  40. /// <param name="writer"></param>
  41. /// <param name="config"></param>
  42. public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
  43. {
  44. JT808_0x0303 value = new JT808_0x0303();
  45. value.InformationType = reader.ReadByte();
  46. value.Flag = reader.ReadByte();
  47. writer.WriteNumber($"[{value.InformationType.ReadNumber()}]信息类型", value.InformationType);
  48. writer.WriteNumber($"[{value.Flag.ReadNumber()}]{(value.Flag==1? "点播" : "取消")}", value.Flag);
  49. }
  50. /// <summary>
  51. ///
  52. /// </summary>
  53. /// <param name="reader"></param>
  54. /// <param name="config"></param>
  55. /// <returns></returns>
  56. public override JT808_0x0303 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  57. {
  58. JT808_0x0303 value = new JT808_0x0303();
  59. value.InformationType = reader.ReadByte();
  60. value.Flag = reader.ReadByte();
  61. return value;
  62. }
  63. /// <summary>
  64. ///
  65. /// </summary>
  66. /// <param name="writer"></param>
  67. /// <param name="value"></param>
  68. /// <param name="config"></param>
  69. public override void Serialize(ref JT808MessagePackWriter writer, JT808_0x0303 value, IJT808Config config)
  70. {
  71. writer.WriteByte(value.InformationType);
  72. writer.WriteByte(value.Flag);
  73. }
  74. }
  75. }