Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

61 строка
1.8 KiB

  1. using JT808.Protocol.Formatters;
  2. using JT808.Protocol.Interfaces;
  3. using JT808.Protocol.MessagePack;
  4. using System.Collections.Generic;
  5. namespace JT808.Protocol.MessageBody
  6. {
  7. /// <summary>
  8. /// 查询区域或线路数据应答
  9. /// </summary>
  10. public class JT808_0x0608 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x0608>, IJT808_2019_Version
  11. {
  12. public override ushort MsgId { get; } = 0x0608;
  13. /// <summary>
  14. /// 查询类型
  15. /// </summary>
  16. public byte QueryType { get; set; }
  17. /// <summary>
  18. /// 查询的区域或线路的ID数量
  19. /// </summary>
  20. public uint Count { get; set; }
  21. /// <summary>
  22. /// 查询的区域或线路的ID
  23. /// </summary>
  24. public List<uint> Ids { get; set; }
  25. public JT808_0x0608 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  26. {
  27. JT808_0x0608 value = new JT808_0x0608();
  28. value.QueryType = reader.ReadByte();
  29. value.Count = reader.ReadUInt32();
  30. if (value.Count > 0)
  31. {
  32. value.Ids = new List<uint>();
  33. for (int i = 0; i < value.Count; i++)
  34. {
  35. value.Ids.Add(reader.ReadUInt32());
  36. }
  37. }
  38. return value;
  39. }
  40. public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0608 value, IJT808Config config)
  41. {
  42. writer.WriteByte(value.QueryType);
  43. if (value.Ids != null && value.Ids.Count > 0)
  44. {
  45. writer.WriteUInt32((uint)value.Ids.Count);
  46. foreach (var item in value.Ids)
  47. {
  48. writer.WriteUInt32(item);
  49. }
  50. }
  51. else
  52. {
  53. writer.WriteUInt32(0);
  54. }
  55. }
  56. }
  57. }