public static nxt_result motor_off(NXTBrick.Motor motor)
        {
            nxt_result result = new nxt_result();

            NXTBrick.MotorState motorState = new NXTBrick.MotorState();

            // prepare motor's state to set
            motorState.Power      = (sbyte)0;
            motorState.TurnRatio  = (sbyte)0;
            motorState.Mode       = NXTBrick.MotorMode.None;
            motorState.Regulation = NXTBrick.MotorRegulationMode.Speed;
            motorState.RunState   = NXTBrick.MotorRunState.Idle;
            // tacho limit
            motorState.TachoLimit = 0;

            // set motor's state
            if (nxt.SetMotorState(motor, motorState) != true)
            {
                IrcBot.log   += "Failed setting motor state\n";
                result.result = false;
                result.value  = "Failed";
                return(result);
            }
            result.result = true;
            result.value  = "succed";

            return(result);
        }
        // On motor "Set state" button click
        private void setMotorStateButton_Click(object sender, EventArgs e)
        {
            NXTBrick.MotorState motorState = new NXTBrick.MotorState( );

            // prepare motor's state to set
            motorState.Power     = (sbyte)powerUpDown.Value;
            motorState.TurnRatio = (sbyte)turnRatioUpDown.Value;
            motorState.Mode      = ((modeOnCheck.Checked) ? NXTBrick.MotorMode.On : NXTBrick.MotorMode.None) |
                                   ((modeBrakeCheck.Checked) ? NXTBrick.MotorMode.Brake : NXTBrick.MotorMode.None) |
                                   ((modeRegulatedBox.Checked) ? NXTBrick.MotorMode.Regulated : NXTBrick.MotorMode.None);
            motorState.Regulation = regulationModes[regulationModeCombo.SelectedIndex];
            motorState.RunState   = runStates[runStateCombo.SelectedIndex];
            // tacho limit
            try
            {
                motorState.TachoLimit = Math.Max(0, Math.Min(100000, int.Parse(tachoLimitBox.Text)));
            }
            catch
            {
                motorState.TachoLimit = 1000;
                tachoLimitBox.Text    = motorState.TachoLimit.ToString( );
            }

            // set motor's state
            if (nxt.SetMotorState(GetSelectedMotor( ), motorState, false) != true)
            {
                System.Diagnostics.Debug.WriteLine("Failed setting motor state");
            }
        }
 private void RightForward()
 {
     NXTBrick.MotorState motorState = new NXTBrick.MotorState();
     motorState.Power      = 70;
     motorState.TurnRatio  = 50;
     motorState.Mode       = NXTBrick.MotorMode.On;
     motorState.Regulation = NXTBrick.MotorRegulationMode.Speed;
     motorState.RunState   = NXTBrick.MotorRunState.Running;
     motorState.TachoLimit = 360;
     nxt.SetMotorState(NXTBrick.Motor.B, motorState);
 }
        private void LeftBackwards()
        {
            NXTBrick.MotorState motorState = new NXTBrick.MotorState();

            motorState.Power      = -70;
            motorState.TurnRatio  = -50;
            motorState.Mode       = NXTBrick.MotorMode.On;
            motorState.Regulation = NXTBrick.MotorRegulationMode.Speed;
            motorState.RunState   = NXTBrick.MotorRunState.Running;
            motorState.TachoLimit = 360;

            nxt.SetMotorState(NXTBrick.Motor.C, motorState);
        }
        private void MoveArm(int angle, int power, int turnRatio)
        {
            NXTBrick.MotorState motorState = new NXTBrick.MotorState();

            motorState.Power      = power;
            motorState.TurnRatio  = turnRatio;
            motorState.Mode       = NXTBrick.MotorMode.On;
            motorState.Regulation = NXTBrick.MotorRegulationMode.Speed;
            motorState.RunState   = NXTBrick.MotorRunState.Running;
            motorState.TachoLimit = angle;

            nxt.SetMotorState(NXTBrick.Motor.A, motorState);
        }
        private void OneStepRight(int tacho)
        {
            NXTBrick.MotorState motorState = new NXTBrick.MotorState();

            motorState.Power      = 75;
            motorState.TurnRatio  = 100;
            motorState.Mode       = NXTBrick.MotorMode.On;
            motorState.Regulation = NXTBrick.MotorRegulationMode.Speed;
            motorState.RunState   = NXTBrick.MotorRunState.Running;
            motorState.TachoLimit = tacho;

            nxt.SetMotorState(NXTBrick.Motor.B, motorState);
        }
        public static nxt_result motor_degree(NXTBrick.Motor motor, int degree)
        {
            nxt_result result = new nxt_result();

            NXTBrick.MotorState motorState = new NXTBrick.MotorState();
            if (motor == NXTBrick.Motor.A)
            {
                // prepare motor's state to set
                motorState.Power     = (sbyte)speed_motors[0];
                motorState.TurnRatio = (sbyte)speed_motors[0];
            }
            if (motor == NXTBrick.Motor.B)
            {
                // prepare motor's state to set
                motorState.Power     = (sbyte)speed_motors[1];
                motorState.TurnRatio = (sbyte)speed_motors[1];
            }
            if (motor == NXTBrick.Motor.C)
            {
                // prepare motor's state to set
                motorState.Power     = (sbyte)speed_motors[2];
                motorState.TurnRatio = (sbyte)speed_motors[2];
            }
            // TODO If al motor's on handel correct speed
            if (motor == NXTBrick.Motor.All)
            {
                // prepare motor's state to set
                motorState.Power     = (sbyte)speed_motors[0];
                motorState.TurnRatio = (sbyte)speed_motors[0];
            }
            motorState.Mode       = NXTBrick.MotorMode.On;
            motorState.Regulation = NXTBrick.MotorRegulationMode.Speed;
            motorState.RunState   = NXTBrick.MotorRunState.Running;
            // tacho limit

            motorState.TachoLimit = degree;

            // set motor's state
            if (nxt.SetMotorState(motor, motorState) != true)
            {
                IrcBot.log   += "Failed setting motor state\n";
                result.result = false;
                result.value  = "Failed";
                return(result);
            }
            result.result = true;
            result.value  = "succed";
            return(result);
        }