Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

83 rader
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. /// </summary>
  16. public class JT808_CarDVR_Down_0x14 : JT808CarDVRDownBodies, IJT808MessagePackFormatter<JT808_CarDVR_Down_0x14>, IJT808Analyze
  17. {
  18. /// <summary>
  19. /// 0x14
  20. /// </summary>
  21. public override byte CommandId => JT808CarDVRCommandID.采集指定的参数修改记录.ToByteValue();
  22. /// <summary>
  23. /// 符合条件的参数修改记录
  24. /// </summary>
  25. public override string Description => "符合条件的参数修改记录";
  26. /// <summary>
  27. /// 开始时间
  28. /// </summary>
  29. public DateTime StartTime { get; set; }
  30. /// <summary>
  31. /// 结束时间
  32. /// </summary>
  33. public DateTime EndTime { get; set; }
  34. /// <summary>
  35. /// 最大单位数据块个数
  36. /// </summary>
  37. public ushort Count { get; set; }
  38. /// <summary>
  39. ///
  40. /// </summary>
  41. /// <param name="writer"></param>
  42. /// <param name="value"></param>
  43. /// <param name="config"></param>
  44. public void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x14 value, IJT808Config config)
  45. {
  46. writer.WriteDateTime_yyMMddHHmmss(value.StartTime);
  47. writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
  48. writer.WriteUInt16(value.Count);
  49. }
  50. /// <summary>
  51. ///
  52. /// </summary>
  53. /// <param name="reader"></param>
  54. /// <param name="config"></param>
  55. /// <returns></returns>
  56. public JT808_CarDVR_Down_0x14 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  57. {
  58. JT808_CarDVR_Down_0x14 value = new JT808_CarDVR_Down_0x14();
  59. value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
  60. value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
  61. value.Count = reader.ReadUInt16();
  62. return value;
  63. }
  64. /// <summary>
  65. ///
  66. /// </summary>
  67. /// <param name="reader"></param>
  68. /// <param name="writer"></param>
  69. /// <param name="config"></param>
  70. public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
  71. {
  72. JT808_CarDVR_Down_0x14 value = new JT808_CarDVR_Down_0x14();
  73. value.StartTime = reader.ReadDateTime_yyMMddHHmmss();
  74. writer.WriteString($"[{value.StartTime:yyMMddHHmmss}]开始时间", value.StartTime.ToString("yyyy-MM-dd HH:mm:ss"));
  75. value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
  76. writer.WriteString($"[{value.EndTime:yyMMddHHmmss}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
  77. value.Count = reader.ReadUInt16();
  78. writer.WriteNumber($"[{value.Count.ReadNumber()}]最大单位数据块个数", value.Count);
  79. }
  80. }
  81. }