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.

72 lines
2.5 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.Buffers.Binary;
  8. using System.Collections.Generic;
  9. using System.Text;
  10. using System.Text.Json;
  11. namespace JT808.Protocol.MessageBody.CarDVR
  12. {
  13. /// <summary>
  14. /// 设置记录仪初次安装日期
  15. /// 返回:初次安装日期
  16. /// </summary>
  17. public class JT808_CarDVR_Down_0x83 : JT808MessagePackFormatter<JT808_CarDVR_Down_0x83>, JT808CarDVRDownBodies, IJT808Analyze
  18. {
  19. /// <summary>
  20. /// 0x83
  21. /// </summary>
  22. public byte CommandId => JT808CarDVRCommandID.set_first_install_date_recorder.ToByteValue();
  23. /// <summary>
  24. ///
  25. /// </summary>
  26. public bool SkipSerialization => false;
  27. /// <summary>
  28. /// 实时时间
  29. /// </summary>
  30. public DateTime RealTime { get; set; }
  31. /// <summary>
  32. /// 初次安装日期
  33. /// </summary>
  34. public string Description => "初次安装日期";
  35. /// <summary>
  36. ///
  37. /// </summary>
  38. /// <param name="reader"></param>
  39. /// <param name="writer"></param>
  40. /// <param name="config"></param>
  41. public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
  42. {
  43. JT808_CarDVR_Down_0x83 value = new JT808_CarDVR_Down_0x83();
  44. value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
  45. writer.WriteString($"[{value.RealTime:yyMMddHHmmss}]初次安装日期", value.RealTime.ToString("yyyy-MM-dd HH:mm:ss"));
  46. }
  47. /// <summary>
  48. ///
  49. /// </summary>
  50. /// <param name="writer"></param>
  51. /// <param name="value"></param>
  52. /// <param name="config"></param>
  53. public override void Serialize(ref JT808MessagePackWriter writer, JT808_CarDVR_Down_0x83 value, IJT808Config config)
  54. {
  55. writer.WriteDateTime_yyMMddHHmmss(value.RealTime);
  56. }
  57. /// <summary>
  58. ///
  59. /// </summary>
  60. /// <param name="reader"></param>
  61. /// <param name="config"></param>
  62. /// <returns></returns>
  63. public override JT808_CarDVR_Down_0x83 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  64. {
  65. JT808_CarDVR_Down_0x83 value = new JT808_CarDVR_Down_0x83();
  66. value.RealTime = reader.ReadDateTime_yyMMddHHmmss();
  67. return value;
  68. }
  69. }
  70. }