/// <summary> /// Tries to decode given data. /// </summary> public static bool TryDecode(byte[] data, Encoding encoding, out ChangeStateMessage msg) { if (data == null || data.Length != 2 || data[0] != (byte)MessageType.ChangeStateMessage) { msg = new ChangeStateMessage(); return(false); } switch (data[1]) { case (byte)MessageManagerState.Initial: msg = new ChangeStateMessage(MessageManagerState.Initial); return(true); case (byte)MessageManagerState.Configuration: msg = new ChangeStateMessage(MessageManagerState.Configuration); return(true); case (byte)MessageManagerState.Controllers: msg = new ChangeStateMessage(MessageManagerState.Controllers); return(true); default: msg = new ChangeStateMessage(); return(false); } }
protected bool HandleChangeState(byte[] data) { if (ChangeStateMessage.TryDecode(data, _encoding, out ChangeStateMessage msg)) { _state = msg.State; return(true); } else { return(false); } }