您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

88 行
3.4 KiB

  1. using JT808.Protocol.Formatters;
  2. using JT808.Protocol.Interfaces;
  3. using JT808.Protocol.MessagePack;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Text;
  7. using System.Text.Json;
  8. namespace JT808.Protocol.Extensions.JT1078.MessageBody
  9. {
  10. /// <summary>
  11. /// 终端上传乘客流量
  12. /// </summary>
  13. public class JT808_0x1005 : JT808MessagePackFormatter<JT808_0x1005>, JT808Bodies, IJT808Analyze
  14. {
  15. /// <summary>
  16. ///
  17. /// </summary>
  18. public string Description => "终端上传乘客流量";
  19. /// <summary>
  20. ///
  21. /// </summary>
  22. public ushort MsgId => 0x1005;
  23. /// <summary>
  24. /// 起始时间
  25. /// </summary>
  26. public DateTime BeginTime { get; set; }
  27. /// <summary>
  28. /// 结束时间
  29. /// </summary>
  30. public DateTime EndTime { get; set; }
  31. /// <summary>
  32. /// 上车人数
  33. /// </summary>
  34. public ushort GettingOnNumber { get; set; }
  35. /// <summary>
  36. /// 下车人数
  37. /// </summary>
  38. public ushort GettingOffNumber { get; set; }
  39. /// <summary>
  40. ///
  41. /// </summary>
  42. /// <param name="reader"></param>
  43. /// <param name="writer"></param>
  44. /// <param name="config"></param>
  45. public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
  46. {
  47. JT808_0x1005 value = new JT808_0x1005();
  48. value.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
  49. writer.WriteString($"[{value.BeginTime.ToString("yyMMddHHmmss")}]开始时间", value.BeginTime.ToString("yyyy-MM-dd HH:mm:ss"));
  50. value.EndTime = reader.ReadDateTime_yyMMddHHmmss();
  51. writer.WriteString($"[{value.EndTime.ToString("yyMMddHHmmss")}]结束时间", value.EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
  52. value.GettingOnNumber = reader.ReadUInt16();
  53. writer.WriteNumber($"[{value.GettingOnNumber.ReadNumber()}]从开始时间到结束时间的上车人数",value.GettingOnNumber);
  54. value.GettingOffNumber = reader.ReadUInt16();
  55. writer.WriteNumber($"[{value.GettingOffNumber.ReadNumber()}]从开始时间到结束时间的下车人数", value.GettingOffNumber);
  56. }
  57. /// <summary>
  58. ///
  59. /// </summary>
  60. /// <param name="reader"></param>
  61. /// <param name="config"></param>
  62. /// <returns></returns>
  63. public override JT808_0x1005 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  64. {
  65. JT808_0x1005 jT808_0x1005 = new JT808_0x1005();
  66. jT808_0x1005.BeginTime = reader.ReadDateTime_yyMMddHHmmss();
  67. jT808_0x1005.EndTime = reader.ReadDateTime_yyMMddHHmmss();
  68. jT808_0x1005.GettingOnNumber = reader.ReadUInt16();
  69. jT808_0x1005.GettingOffNumber = reader.ReadUInt16();
  70. return jT808_0x1005;
  71. }
  72. /// <summary>
  73. ///
  74. /// </summary>
  75. /// <param name="writer"></param>
  76. /// <param name="value"></param>
  77. /// <param name="config"></param>
  78. public override void Serialize(ref JT808MessagePackWriter writer, JT808_0x1005 value, IJT808Config config)
  79. {
  80. writer.WriteDateTime_yyMMddHHmmss(value.BeginTime);
  81. writer.WriteDateTime_yyMMddHHmmss(value.EndTime);
  82. writer.WriteUInt16(value.GettingOnNumber);
  83. writer.WriteUInt16(value.GettingOffNumber);
  84. }
  85. }
  86. }