Browse Source

mc_pos_control: refactor switch case logic for modes

sbg
Matthias Grob 6 years ago
parent
commit
d76aec4eb2
  1. 10
      src/modules/mc_pos_control/mc_pos_control_main.cpp
  2. 15
      src/modules/mc_pos_control/mc_pos_control_params.c

10
src/modules/mc_pos_control/mc_pos_control_main.cpp

@ -919,13 +919,7 @@ MulticopterPositionControl::start_flight_task() @@ -919,13 +919,7 @@ MulticopterPositionControl::start_flight_task()
should_disable_task = false;
int error = 0;
switch (MPC_AUTO_MODE.get()) {
case 0:
case 1:
case 2:
error = _flight_tasks.switchTask(FlightTaskIndex::AutoLine);
break;
case 3:
error = _flight_tasks.switchTask(FlightTaskIndex::AutoLineSmoothVel);
break;
@ -965,7 +959,6 @@ MulticopterPositionControl::start_flight_task() @@ -965,7 +959,6 @@ MulticopterPositionControl::start_flight_task()
error = _flight_tasks.switchTask(FlightTaskIndex::ManualPositionSmoothVel);
break;
case 0:
default:
error = _flight_tasks.switchTask(FlightTaskIndex::ManualPosition);
break;
@ -994,9 +987,6 @@ MulticopterPositionControl::start_flight_task() @@ -994,9 +987,6 @@ MulticopterPositionControl::start_flight_task()
error = _flight_tasks.switchTask(FlightTaskIndex::ManualAltitudeSmooth);
break;
case 0:
case 2:
case 3:
default:
error = _flight_tasks.switchTask(FlightTaskIndex::ManualAltitude);
break;

15
src/modules/mc_pos_control/mc_pos_control_params.c

@ -681,22 +681,11 @@ PARAM_DEFINE_INT32(MPC_POS_MODE, 1); @@ -681,22 +681,11 @@ PARAM_DEFINE_INT32(MPC_POS_MODE, 1);
/**
* Auto sub-mode.
*
* The supported sub-modes are:
* 0 Direct line tracking, no smoothing
*
* 1 Not used
*
* 2 Not used
*
* 3 Jerk-limited trajectory
*
* @value 0 Default line tracking
* @value 1 N/A
* @value 2 N/A
* @value 3 Jerk-limited trajectory
* @value 1 Jerk-limited trajectory
* @group Multicopter Position Control
*/
PARAM_DEFINE_INT32(MPC_AUTO_MODE, 3);
PARAM_DEFINE_INT32(MPC_AUTO_MODE, 1);
/**
* Delay from idle state to arming state.

Loading…
Cancel
Save