Exemplo n.º 1
0
        public virtual IEnumerator <ITask> TurnRightHandler(TurnRight forward)
        {
            if (!_state.MotorEnabled)
            {
                yield return(EnableMotor());
            }

            drive.SetDrivePowerRequest request = new drive.SetDrivePowerRequest();
            request.RightWheelPower = 0.5;
            request.LeftWheelPower  = -0.5;

            yield return(Arbiter.Choice(
                             _drivePort.SetDrivePower(request),
                             delegate(DefaultUpdateResponseType response) { },
                             delegate(Fault fault)
            {
                LogError(null, "Unable to turn right", fault);
            }
                             ));
        }
        private void btnTurnRight_Click(object sender, EventArgs e)
        {
            TurnRight turnRight = new TurnRight();

            _mainPort.Post(turnRight);

            //while (turnRight.ResponsePort.P1.ItemCount <= 0 && turnRight.ResponsePort.P0.ItemCount <= 0) ;
            //MessageBox.Show("Has headers");


            //if (turnRight.ResponsePort.P0.ItemCount <= 0)
            //    MessageBox.Show("Has headers");


            _moveTimer.Interval = _turnInterval;
            _moveTimer.Enabled  = true;

            // Wait until this move is processed before processing the next
            while (_moveTimer.Enabled)
            {
                ;
            }
        }