| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | using System.Text;namespace InABox.DigitalMatter{    public class DMHelloRequest : DMMessage    {        public override byte Type => 0x00;        public uint SerialNumber { get; set; }        public string IMEI { get; set; }        public string ICCID { get; set; }        public byte ProductID { get; set; }        public byte HardwareRevision { get; set; }        public byte FirmwareMajor { get; set; }        public byte FirmwareMinor { get; set; }        public uint Flags { get; set; }        protected override void DoDecode(IDMReadBuffer buffer)        {            SerialNumber = buffer.TakeUInt32();            IMEI = buffer.TakeString(16);            ICCID = buffer.TakeString(21);            ProductID = buffer.TakeByte();            HardwareRevision = buffer.TakeByte();            FirmwareMajor = buffer.TakeByte();            FirmwareMinor = buffer.TakeByte();            Flags = buffer.TakeUInt32();        }        protected override void DoEncode(IDMWriteBuffer buffer)        {            buffer.AddUInt32(SerialNumber);            buffer.AddString(IMEI, 16);            buffer.AddString(ICCID, 21);            buffer.AddByte(ProductID);            buffer.AddByte(HardwareRevision);            buffer.AddByte(FirmwareMajor);            buffer.AddByte(FirmwareMinor);            buffer.AddUInt32(Flags);        }        public override byte[] Dump()        {            return Encoding.UTF8.GetBytes($"(HelloRequest) SerialNumber: {SerialNumber}");        }    }}
 |