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.

84 regels
3.2 KiB

  1. using JT808.Protocol.Enums;
  2. using JT808.Protocol.Extensions;
  3. using JT808.Protocol.Formatters;
  4. using JT808.Protocol.Interfaces;
  5. using JT808.Protocol.MessagePack;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Text;
  9. using System.Text.Json;
  10. namespace JT808.Protocol.MessageBody.CarDVR
  11. {
  12. /// <summary>
  13. /// 采集指定的位置信息记录
  14. /// 返回:符合条件的位置信息记录
  15. /// 指定的时间范围内无数据记录,则本数据块数据为空
  16. /// </summary>
  17. public class JT808_CarDVR_Down_0x09 : JT808CarDVRDownBodies, IJT808MessagePackFormatter<JT808_CarDVR_Down_0x09>, IJT808Analyze
  18. {
  19. /// <summary>
  20. /// 0x09
  21. /// </summary>
  22. public override byte CommandId => JT808CarDVRCommandID.采集指定的位置信息记录.ToByteValue();
  23. /// <summary>
  24. /// 符合条件的位置信息记录
  25. /// </summary>
  26. public override string Description => "符合条件的位置信息记录";
  27. /// <summary>
  28. /// 开始时间
  29. /// </summary>
  30. public DateTime StartTime { get; set; }
  31. /// <summary>
  32. /// 结束时间
  33. /// </summary>
  34. public DateTime EndTime { get; set; }
  35. /// <summary>
  36. /// 最大单位数据块个数
  37. /// </summary>
  38. public ushort Count { get; set; }
  39. /// <summary>
  40. ///
  41. /// </summary>
  42. /// <param name="writer"></param>
  43. /// <param name="value"></param>
  44. /// <param name="config"></param>
  45. public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x09 value, IJT808Config config)
  46. {
  47. writer.WriteDateTime6(value.StartTime);
  48. writer.WriteDateTime6(value.EndTime);
  49. writer.WriteUInt16(value.Count);
  50. }
  51. /// <summary>
  52. ///
  53. /// </summary>
  54. /// <param name="reader"></param>
  55. /// <param name="config"></param>
  56. /// <returns></returns>
  57. public JT808_CarDVR_Down_0x09 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  58. {
  59. JT808_CarDVR_Down_0x09 value = new JT808_CarDVR_Down_0x09();
  60. value.StartTime = reader.ReadDateTime6();
  61. value.EndTime = reader.ReadDateTime6();
  62. value.Count = reader.ReadUInt16();
  63. return value;
  64. }
  65. /// <summary>
  66. ///
  67. /// </summary>
  68. /// <param name="reader"></param>
  69. /// <param name="writer"></param>
  70. /// <param name="config"></param>
  71. public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
  72. {
  73. JT808_CarDVR_Down_0x09 value = new JT808_CarDVR_Down_0x09();
  74. value.StartTime = reader.ReadDateTime6();
  75. writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
  76. value.EndTime = reader.ReadDateTime6();
  77. writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
  78. value.Count = reader.ReadUInt16();
  79. writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
  80. }
  81. }
  82. }