public DmxData ReadFrame()
{
var target = new DmxData();
byte start = this.binRead.ReadByte();
target.Timestamp = (uint)this.binRead.ReadInt32();
target.Universe = (ushort)this.binRead.ReadInt16();
switch (start)
{
case 1:
target.DataType = DmxData.DataTypes.FullFrame;
ushort len = (ushort)this.binRead.ReadInt16();
target.Data = this.binRead.ReadBytes(len);
break;
case 2:
target.DataType = DmxData.DataTypes.NoChange;
break;
default:
throw new ArgumentException("Invalid data");
}
byte end = this.binRead.ReadByte();
if (end != 4)
throw new ArgumentException("Invalid data");
return target;
}