public override void Read(BigEndianStream s, bool inclHeader = true) { if (inclHeader) { s.ReadByte(); //Start byte s.ReadByte(); //Channel byte } Flags = s.ReadUShort(); MessageFamily = s.ReadUShort(); MessageType = s.ReadUShort(); SequenceNumber = s.ReadUInt(); BlockSize = s.ReadUInt(); if (BlockSize == 0) { Block = new TLV[0]; } else { uint left = BlockSize; List <TLV> bList = new List <TLV>(); while (left > 0) { var b = new TLV(); b.Read(s); bList.Add(b); left -= b.GetSize(); } Block = bList.ToArray(); } //byte[] block = s.ReadBytes(BlockSize); //Console.WriteLine(BitConverter.ToString(block)); }
public void Read(BigEndianStream s) { TLVType = s.ReadUShort(); if (Is32) { Length = s.ReadUInt(); } else { Length = s.ReadUShort(); } //Value = new byte[Length]; Value = s.ReadBytesReversed(Length); }