Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

41 linhas
1.6 KiB

  1. using JT808.Protocol.Attributes;
  2. using JT808.Protocol.Formatters;
  3. using JT808.Protocol.Formatters.MessageBodyFormatters;
  4. using JT808.Protocol.MessagePack;
  5. using System.Runtime.Serialization;
  6. namespace JT808.Protocol.MessageBody
  7. {
  8. [JT808Formatter(typeof(JT808_0x0200_0x03_Formatter))]
  9. public class JT808_0x0200_0x03 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter<JT808_0x0200_0x03>
  10. {
  11. /// <summary>
  12. /// 行驶记录功能获取的速度
  13. /// </summary>
  14. public ushort Speed { get; set; }
  15. /// <summary>
  16. /// 行驶记录功能获取的速度 1/10km/h
  17. /// </summary>
  18. [IgnoreDataMember]
  19. public double ConvertSpeed => Speed / 10.0;
  20. public override byte AttachInfoId { get; set; } = 0x03;
  21. public override byte AttachInfoLength { get; set; } = 2;
  22. public JT808_0x0200_0x03 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  23. {
  24. JT808_0x0200_0x03 jT808LocationAttachImpl0x03 = new JT808_0x0200_0x03();
  25. jT808LocationAttachImpl0x03.AttachInfoId = reader.ReadByte();
  26. jT808LocationAttachImpl0x03.AttachInfoLength = reader.ReadByte();
  27. jT808LocationAttachImpl0x03.Speed = reader.ReadUInt16();
  28. return jT808LocationAttachImpl0x03;
  29. }
  30. public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x03 value, IJT808Config config)
  31. {
  32. writer.WriteByte(value.AttachInfoId);
  33. writer.WriteByte(value.AttachInfoLength);
  34. writer.WriteUInt16(value.Speed);
  35. }
  36. }
  37. }