From 34fb600c4f6907b08e4b054c04b50ca126719628 Mon Sep 17 00:00:00 2001 From: Robert Lefebvre Date: Mon, 12 Oct 2015 10:27:26 -0400 Subject: [PATCH] Copter: Utilize Input Manager Class --- ArduCopter/Copter.cpp | 3 +++ ArduCopter/Copter.h | 10 ++++++++++ ArduCopter/Parameters.cpp | 6 ++++++ ArduCopter/Parameters.h | 7 +++++-- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/ArduCopter/Copter.cpp b/ArduCopter/Copter.cpp index 448c008c2a..1b2fbc68a4 100644 --- a/ArduCopter/Copter.cpp +++ b/ArduCopter/Copter.cpp @@ -32,6 +32,9 @@ Copter::Copter(void) : control_mode(STABILIZE), #if FRAME_CONFIG == HELI_FRAME // helicopter constructor requires more arguments motors(g.rc_7, g.heli_servo_rsc, g.heli_servo_1, g.heli_servo_2, g.heli_servo_3, g.heli_servo_4, MAIN_LOOP_RATE), + + // ToDo: Input Manager is only used by Heli for 3.3, but will be used by all frames for 3.4 + input_manager(MAIN_LOOP_RATE), #elif FRAME_CONFIG == TRI_FRAME // tri constructor requires additional rc_7 argument to allow tail servo reversing motors(MAIN_LOOP_RATE), #elif FRAME_CONFIG == SINGLE_FRAME // single constructor requires extra servos for flaps diff --git a/ArduCopter/Copter.h b/ArduCopter/Copter.h index c99f7b5348..e3b357aff3 100644 --- a/ArduCopter/Copter.h +++ b/ArduCopter/Copter.h @@ -105,6 +105,9 @@ #include #include #endif +#include // Pilot input handling library +#include // Heli specific pilot input handling library + // AP_HAL to Arduino compatibility layer // Configuration @@ -506,6 +509,13 @@ private: AC_PrecLand precland; #endif + // Pilot Input Management Library + // Only used for Helicopter for AC3.3, to be expanded to include Multirotor + // child class for AC3.4 +#if FRAME_CONFIG == HELI_FRAME + AC_InputManager_Heli input_manager; +#endif + // use this to prevent recursion during sensor init bool in_mavlink_delay; diff --git a/ArduCopter/Parameters.cpp b/ArduCopter/Parameters.cpp index 6994e0dacb..b91791e4c9 100644 --- a/ArduCopter/Parameters.cpp +++ b/ArduCopter/Parameters.cpp @@ -901,6 +901,12 @@ const AP_Param::Info Copter::var_info[] = { // @Path: ../libraries/AP_LandingGear/AP_LandingGear.cpp GOBJECT(landinggear, "LGR_", AP_LandingGear), +#if FRAME_CONFIG == HELI_FRAME + // @Group: IM_ + // @Path: ../libraries/AC_InputManager_Heli.cpp + GOBJECT(input_manager, "IM_", AC_InputManager_Heli), +#endif + // @Group: COMPASS_ // @Path: ../libraries/AP_Compass/Compass.cpp GOBJECT(compass, "COMPASS_", Compass), diff --git a/ArduCopter/Parameters.h b/ArduCopter/Parameters.h index 93444af57d..553bcfcb54 100644 --- a/ArduCopter/Parameters.h +++ b/ArduCopter/Parameters.h @@ -83,8 +83,8 @@ public: // Landing gear object k_param_landinggear, // 18 - // precision landing object - k_param_precland, // 19 + // Input Management object + k_param_input_manager, // 19 // Misc // @@ -145,6 +145,9 @@ public: k_param_gps_glitch, // deprecated k_param_baro_glitch, // 71 - deprecated + // 74: precision landing object + k_param_precland = 74, + // // 75: Singlecopter, CoaxCopter //