Example #1
0
        /// <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);
     }
 }