DMHelloRequest.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.Text;
  2. namespace InABox.DigitalMatter
  3. {
  4. public class DMHelloRequest : DMMessage
  5. {
  6. public override byte Type => 0x00;
  7. public uint SerialNumber { get; set; }
  8. public string IMEI { get; set; }
  9. public string ICCID { get; set; }
  10. public byte ProductID { get; set; }
  11. public byte HardwareRevision { get; set; }
  12. public byte FirmwareMajor { get; set; }
  13. public byte FirmwareMinor { get; set; }
  14. public uint Flags { get; set; }
  15. protected override void DoDecode(IDMReadBuffer buffer)
  16. {
  17. SerialNumber = buffer.TakeUInt32();
  18. IMEI = buffer.TakeString(16);
  19. ICCID = buffer.TakeString(21);
  20. ProductID = buffer.TakeByte();
  21. HardwareRevision = buffer.TakeByte();
  22. FirmwareMajor = buffer.TakeByte();
  23. FirmwareMinor = buffer.TakeByte();
  24. Flags = buffer.TakeUInt32();
  25. }
  26. protected override void DoEncode(IDMWriteBuffer buffer)
  27. {
  28. buffer.AddUInt32(SerialNumber);
  29. buffer.AddString(IMEI, 16);
  30. buffer.AddString(ICCID, 21);
  31. buffer.AddByte(ProductID);
  32. buffer.AddByte(HardwareRevision);
  33. buffer.AddByte(FirmwareMajor);
  34. buffer.AddByte(FirmwareMinor);
  35. buffer.AddUInt32(Flags);
  36. }
  37. public override byte[] Dump()
  38. {
  39. return Encoding.UTF8.GetBytes($"(HelloRequest) SerialNumber: {SerialNumber}");
  40. }
  41. }
  42. }