From 93abfdb90582f75129e6b8d615767a3982046b9e Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sun, 10 Nov 2019 20:13:17 +0000 Subject: [PATCH] Copter: create generic vehicle management and move runcam to it --- ArduCopter/APM_Config.h | 1 - ArduCopter/Copter.cpp | 1 + ArduCopter/Parameters.cpp | 6 ++++-- ArduCopter/Parameters.h | 2 ++ ArduCopter/system.cpp | 3 +++ 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ArduCopter/APM_Config.h b/ArduCopter/APM_Config.h index c28a027b9b..aaf4cb5d93 100644 --- a/ArduCopter/APM_Config.h +++ b/ArduCopter/APM_Config.h @@ -49,7 +49,6 @@ //#define OSD_ENABLED DISABLED // disable on-screen-display support //#define BUTTON_ENABLED DISABLED // disable button support - // features below are disabled by default on all boards //#define CAL_ALWAYS_REBOOT // flight controller will reboot after compass or accelerometer calibration completes //#define DISALLOW_GCS_MODE_CHANGE_DURING_RC_FAILSAFE // disable mode changes from GCS during Radio failsafes. Avoids a race condition for vehicle like Solo in which the RC and telemetry travel along the same link diff --git a/ArduCopter/Copter.cpp b/ArduCopter/Copter.cpp index ef947c6b41..e60ebb328c 100644 --- a/ArduCopter/Copter.cpp +++ b/ArduCopter/Copter.cpp @@ -623,5 +623,6 @@ Copter::Copter(void) } Copter copter; +AP_Vehicle& vehicle = copter; AP_HAL_MAIN_CALLBACKS(&copter); diff --git a/ArduCopter/Parameters.cpp b/ArduCopter/Parameters.cpp index fcafc92afa..68a93bc23c 100644 --- a/ArduCopter/Parameters.cpp +++ b/ArduCopter/Parameters.cpp @@ -715,6 +715,10 @@ const AP_Param::Info Copter::var_info[] = { // @Path: Parameters.cpp GOBJECT(g2, "", ParametersG2), + // @Group: + // @Path: ../libraries/AP_Vehicle/AP_Vehicle.cpp + { AP_PARAM_GROUP, "", Parameters::k_param_vehicle, (const void *)&copter, {group_info : AP_Vehicle::var_info} }, + AP_VAREND }; @@ -959,8 +963,6 @@ const AP_Param::GroupInfo ParametersG2::var_info[] = { AP_SUBGROUPINFO(arot, "AROT_", 37, ParametersG2, AC_Autorotation), #endif - - AP_GROUPEND }; diff --git a/ArduCopter/Parameters.h b/ArduCopter/Parameters.h index 5b101cb711..44bfaa86dc 100644 --- a/ArduCopter/Parameters.h +++ b/ArduCopter/Parameters.h @@ -373,6 +373,8 @@ public: // 254,255: reserved + k_param_vehicle = 257, // vehicle common block of parameters + // the k_param_* space is 9-bits in size // 511: reserved }; diff --git a/ArduCopter/system.cpp b/ArduCopter/system.cpp index 3c2f10e847..91c58b9e5e 100644 --- a/ArduCopter/system.cpp +++ b/ArduCopter/system.cpp @@ -226,6 +226,9 @@ void Copter::init_ardupilot() g2.smart_rtl.init(); #endif + // run all the vehicle initialization routines + init_vehicle(); + // initialise AP_Logger library logger.setVehicle_Startup_Writer(FUNCTOR_BIND(&copter, &Copter::Log_Write_Vehicle_Startup_Messages, void));