選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

31 行
1.3 KiB

  1. using JT808.Protocol.Extensions;
  2. using JT808.Protocol.Formatters;
  3. using JT808.Protocol.Interfaces;
  4. using JT808.Protocol.MessagePack;
  5. using JT808.Protocol.Test.MessageBody.JT808_0x0701BodiesImpl;
  6. using System;
  7. namespace JT808.Protocol.Test.MessageBody.JT808Formatters
  8. {
  9. public class JT808_0x0701TestBodiesImplFormatter : IJT808MessagePackFormatter<JT808_0x0701TestBodiesImpl>
  10. {
  11. public JT808_0x0701TestBodiesImpl Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
  12. {
  13. JT808_0x0701TestBodiesImpl jT808_0X0701TestBodiesImpl = new JT808_0x0701TestBodiesImpl();
  14. jT808_0X0701TestBodiesImpl.Id = reader.ReadUInt32();
  15. jT808_0X0701TestBodiesImpl.UserNameLength = reader.ReadUInt16();
  16. jT808_0X0701TestBodiesImpl.UserName = reader.ReadString(jT808_0X0701TestBodiesImpl.UserNameLength);
  17. return jT808_0X0701TestBodiesImpl;
  18. }
  19. public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0701TestBodiesImpl value, IJT808Config config)
  20. {
  21. writer.WriteUInt32(value.Id);
  22. writer.Skip(2,out int position);
  23. writer.WriteString(value.UserName);
  24. int strLength = writer.GetCurrentPosition() - position - 2;
  25. writer.WriteUInt16Return((ushort)strLength, position);
  26. }
  27. }
  28. }