From 420e9e0d2ef14709aea56eeea320c1258fde5ca0 Mon Sep 17 00:00:00 2001 From: Tom Pittenger Date: Thu, 26 Feb 2015 13:07:59 -0800 Subject: [PATCH] Plane: added INITIAL_MODE which is the mode we boot up into. This is useful when flying without a RX or if you have a RX that outputs zeros without a detected Txmtr --- ArduPlane/Parameters.h | 2 ++ ArduPlane/Parameters.pde | 7 +++++++ ArduPlane/system.pde | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ArduPlane/Parameters.h b/ArduPlane/Parameters.h index ef8cdb9c16..8f27e9f298 100644 --- a/ArduPlane/Parameters.h +++ b/ArduPlane/Parameters.h @@ -272,6 +272,7 @@ public: k_param_flight_mode4, k_param_flight_mode5, k_param_flight_mode6, + k_param_initial_mode, // // 220: Waypoint data @@ -407,6 +408,7 @@ public: AP_Int8 flight_mode4; AP_Int8 flight_mode5; AP_Int8 flight_mode6; + AP_Int8 initial_mode; // Navigational maneuvering limits // diff --git a/ArduPlane/Parameters.pde b/ArduPlane/Parameters.pde index bdefbc9834..c6c7918250 100644 --- a/ArduPlane/Parameters.pde +++ b/ArduPlane/Parameters.pde @@ -605,6 +605,13 @@ const AP_Param::Info var_info[] PROGMEM = { // @User: Standard GSCALAR(flight_mode6, "FLTMODE6", FLIGHT_MODE_6), + // @Param: INITIAL_MODE + // @DisplayName: Initial flight mode + // @Description: This selects the mode to start in on boot. This is useful for when you want to start in AUTO mode on boot without a receiver. + // @Values: 0:Manual,1:CIRCLE,2:STABILIZE,3:TRAINING,4:ACRO,5:FBWA,6:FBWB,7:CRUISE,8:AUTOTUNE,10:Auto,11:RTL,12:Loiter,15:Guided + // @User: Advanced + GSCALAR(initial_mode, "INITIAL_MODE", MANUAL), + // @Param: LIM_ROLL_CD // @DisplayName: Maximum Bank Angle // @Description: The maximum commanded bank angle in either direction diff --git a/ArduPlane/system.pde b/ArduPlane/system.pde index 5417a13947..0ae5675b68 100644 --- a/ArduPlane/system.pde +++ b/ArduPlane/system.pde @@ -220,7 +220,7 @@ static void init_ardupilot() // choose the nav controller set_nav_controller(); - set_mode(MANUAL); + set_mode((FlightMode)g.initial_mode.get()); // set the correct flight mode // ---------------------------