public override string ToString() { return(String.Format( "Message: {0} fields, protocol {1}", (RootList != null) ? RootList.Count : 0, WaveMessage.ProtocolVersionToInfoString(ProtocolVersion))); }
public void Parse() { if (IsEmpty) { return; } if (!hasHeader) { // determine protocol version WaveProtocolVersion version = WaveMessage.MagicNumberToProtocolVersion(buffer[0]); if (version != WaveProtocolVersion.Unknown) { // check if we have entire header yet int headerSize = 0; switch (version) { case WaveProtocolVersion.Version2: case WaveProtocolVersion.Version3: headerSize = 7; break; case WaveProtocolVersion.Version4: headerSize = 9; break; } if ((headerSize != 0) && (buffer.Length >= headerSize)) { // we have entire header, so let's determine entire message size if (version == WaveProtocolVersion.Version4) { // message size is a 24 bit integer byte[] temp = new byte[3] { buffer[1], buffer[2], buffer[3] }; ExpectedSize = DataHelper.BytesToInt24(temp); if (ExpectedSize == -1) { ExpectedSize = 0; // 0 is our "undefined" value } } else { // message size is a 16 bit integer byte[] temp = new byte[2] { buffer[1], buffer[2] }; ExpectedSize = BitConverter.ToInt16(temp, 0); } // do not repeat this again hasHeader = true; } } } }