/// <summary>
        /// Receive Buttons Notifications
        /// </summary>
        /// <param name="update"></param>
        private void NotificationHandler(brick.LegoSensorUpdate update)
        {
            // Receive Button notifications from the NXT Brick
            LegoResponseGetButtonState buttonsUpdate = new LegoResponseGetButtonState(update.Body.CommandData);

            if (buttonsUpdate != null && buttonsUpdate.Success)
            {
                if (_state.Buttons.PressedLeft != buttonsUpdate.PressedLeft ||
                    _state.Buttons.PressedEnter != buttonsUpdate.PressedEnter ||
                    _state.Buttons.PressedRight != buttonsUpdate.PressedRight ||
                    _state.Buttons.PressedCancel != buttonsUpdate.PressedCancel ||
                    _state.Buttons.TimeStamp == DateTime.MinValue)
                {
                    _state.Buttons.TimeStamp     = update.Body.TimeStamp;
                    _state.Buttons.PressedLeft   = buttonsUpdate.PressedLeft;
                    _state.Buttons.PressedEnter  = buttonsUpdate.PressedEnter;
                    _state.Buttons.PressedRight  = buttonsUpdate.PressedRight;
                    _state.Buttons.PressedCancel = buttonsUpdate.PressedCancel;

                    SendNotification <ButtonsUpdate>(_subMgrPort, _state.Buttons);
                }
            }
        }
        /// <summary>
        /// Receive Buttons Notifications
        /// </summary>
        /// <param name="update"></param>
        private void NotificationHandler(brick.LegoSensorUpdate update)
        {
            // Receive Button notifications from the NXT Brick
            LegoResponseGetButtonState buttonsUpdate = new LegoResponseGetButtonState(update.Body.CommandData);
            if (buttonsUpdate != null && buttonsUpdate.Success)
            {
                if (_state.Buttons.PressedLeft != buttonsUpdate.PressedLeft
                    || _state.Buttons.PressedEnter != buttonsUpdate.PressedEnter
                    || _state.Buttons.PressedRight != buttonsUpdate.PressedRight
                    || _state.Buttons.PressedCancel != buttonsUpdate.PressedCancel
                    || _state.Buttons.TimeStamp == DateTime.MinValue)
                {
                    _state.Buttons.TimeStamp = update.Body.TimeStamp;
                    _state.Buttons.PressedLeft = buttonsUpdate.PressedLeft;
                    _state.Buttons.PressedEnter = buttonsUpdate.PressedEnter;
                    _state.Buttons.PressedRight = buttonsUpdate.PressedRight;
                    _state.Buttons.PressedCancel = buttonsUpdate.PressedCancel;

                    SendNotification<ButtonsUpdate>(_subMgrPort, _state.Buttons);
                }
            }
        }