Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

60 lignes
2.4 KiB

  1. using JT809.Protocol.Enums;
  2. using JT809.Protocol.Formatters;
  3. using JT809.Protocol.MessagePack;
  4. using JT809.Protocol.Extensions;
  5. using JT809.Protocol.Interfaces;
  6. namespace JT809.Protocol.SubMessageBody
  7. {
  8. /// <summary>
  9. /// 上报车辆电子运单应答消息
  10. /// <para>子业务类型标识:UP_EXG_MSG_TAKE_EWAYBILL_ACK</para>
  11. /// <para>描述:下级平台应答上级平台发送的上报车辆电子运单请求消息,向上级平台上传车辆当前电子运单</para>
  12. /// </summary>
  13. public class JT809_0x1200_0x120B:JT809SubBodies, IJT809MessagePackFormatter<JT809_0x1200_0x120B>, IJT809_2019_Version
  14. {
  15. public override ushort SubMsgId => JT809SubBusinessType.上报车辆电子运单应答消息.ToUInt16Value();
  16. public override string Description => "上报车辆电子运单应答消息";
  17. /// <summary>
  18. /// 对应上报车辆电子运单源子业务类型标识
  19. /// </summary>
  20. public ushort SourceDataType { get; set; }
  21. /// <summary>
  22. /// 对应上报车辆电子运单源报文序列号
  23. /// </summary>
  24. public uint SourceMsgSn { get; set; }
  25. /// <summary>
  26. /// 电子运单数据体长度
  27. /// </summary>
  28. public uint EwaybillLength { get; set; }
  29. /// <summary>
  30. /// 电子运单数据内容
  31. /// </summary>
  32. public string EwaybillInfo { get; set; }
  33. public JT809_0x1200_0x120B Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
  34. {
  35. var value = new JT809_0x1200_0x120B();
  36. if (config.Version == JT809Version.JTT2019)
  37. {
  38. value.SourceDataType = reader.ReadUInt16();
  39. value.SourceMsgSn = reader.ReadUInt32();
  40. }
  41. value.EwaybillLength = reader.ReadUInt32();
  42. value.EwaybillInfo = reader.ReadString((int)value.EwaybillLength);
  43. return value;
  44. }
  45. public void Serialize(ref JT809MessagePackWriter writer, JT809_0x1200_0x120B value, IJT809Config config)
  46. {
  47. if (config.Version == JT809Version.JTT2019)
  48. {
  49. writer.WriteUInt16(value.SourceDataType);
  50. writer.WriteUInt32(value.SourceMsgSn);
  51. }
  52. writer.WriteUInt32((uint)value.EwaybillInfo.Length);
  53. writer.WriteString(value.EwaybillInfo);
  54. }
  55. }
  56. }