From b8e1f0359978e7ddbc16f8078b4115f277daf183 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 22 Feb 2018 15:53:20 +1100 Subject: [PATCH] Copter: add define for disabling beacon --- ArduCopter/APM_Config.h | 1 + ArduCopter/ArduCopter.cpp | 6 +++++- ArduCopter/Copter.h | 2 -- ArduCopter/Log.cpp | 11 ----------- ArduCopter/Parameters.cpp | 7 ++++++- ArduCopter/Parameters.h | 2 ++ ArduCopter/config.h | 6 ++++++ ArduCopter/sensors.cpp | 6 ------ ArduCopter/system.cpp | 6 +++++- 9 files changed, 25 insertions(+), 22 deletions(-) diff --git a/ArduCopter/APM_Config.h b/ArduCopter/APM_Config.h index 1b36b9dd12..c9f0ec2589 100644 --- a/ArduCopter/APM_Config.h +++ b/ArduCopter/APM_Config.h @@ -21,6 +21,7 @@ //#define FRSKY_TELEM_ENABLED DISABLED // disable FRSky telemetry //#define ADSB_ENABLED DISABLED // disable ADSB support //#define PRECISION_LANDING DISABLED // disable precision landing using companion computer or IRLock sensor +//#define BEACON_ENABLED DISABLED // disable beacon support //#define SPRAYER DISABLED // disable the crop sprayer feature (two ESC controlled pumps the speed of which depends upon the vehicle's horizontal velocity) //#define WINCH_ENABLED DISABLED // disable winch support //#define MODE_AUTO_ENABLED DISABLED // disable auto mode support diff --git a/ArduCopter/ArduCopter.cpp b/ArduCopter/ArduCopter.cpp index ae55fd7cfb..ac46d39f14 100644 --- a/ArduCopter/ArduCopter.cpp +++ b/ArduCopter/ArduCopter.cpp @@ -101,7 +101,9 @@ const AP_Scheduler::Task Copter::scheduler_tasks[] = { #if PROXIMITY_ENABLED == ENABLED SCHED_TASK_CLASS(AP_Proximity, &copter.g2.proximity, update, 100, 50), #endif +#if BEACON_ENABLED == ENABLED SCHED_TASK_CLASS(AP_Beacon, &copter.g2.beacon, update, 400, 50), +#endif SCHED_TASK(update_visual_odom, 400, 50), SCHED_TASK(update_altitude, 10, 100), SCHED_TASK(run_nav_updates, 50, 100), @@ -336,7 +338,9 @@ void Copter::ten_hz_logging_loop() if (should_log(MASK_LOG_CTUN)) { attitude_control->control_monitor_log(); Log_Write_Proximity(); - Log_Write_Beacon(); +#if BEACON_ENABLED == ENABLED + DataFlash.Log_Write_Beacon(g2.beacon); +#endif } #if FRAME_CONFIG == HELI_FRAME Log_Write_Heli(); diff --git a/ArduCopter/Copter.h b/ArduCopter/Copter.h index 1bcd83167d..0c21a96d47 100644 --- a/ArduCopter/Copter.h +++ b/ArduCopter/Copter.h @@ -797,7 +797,6 @@ private: void Log_Write_GuidedTarget(uint8_t target_type, const Vector3f& pos_target, const Vector3f& vel_target); void Log_Write_Throw(ThrowModeStage stage, float velocity, float velocity_z, float accel, float ef_accel_z, bool throw_detect, bool attitude_ok, bool height_ok, bool position_ok); void Log_Write_Proximity(); - void Log_Write_Beacon(); void Log_Write_Vehicle_Startup_Messages(); void log_init(void); @@ -883,7 +882,6 @@ private: void init_proximity(); void update_proximity(); void update_sensor_status_flags(void); - void init_beacon(); void init_visual_odom(); void update_visual_odom(); void winch_init(); diff --git a/ArduCopter/Log.cpp b/ArduCopter/Log.cpp index be481e8551..3d01ffab0f 100644 --- a/ArduCopter/Log.cpp +++ b/ArduCopter/Log.cpp @@ -579,16 +579,6 @@ void Copter::Log_Write_Proximity() #endif } -// Write beacon position and distances -void Copter::Log_Write_Beacon() -{ - // exit immediately if feature is disabled - if (!g2.beacon.enabled()) { - return; - } - DataFlash.Log_Write_Beacon(g2.beacon); -} - // type and unit information can be found in // libraries/DataFlash/Logstructure.h; search for "log_Units" for // units and "Format characters" for field type information @@ -675,7 +665,6 @@ void Copter::Log_Write_Precland() {} void Copter::Log_Write_GuidedTarget(uint8_t target_type, const Vector3f& pos_target, const Vector3f& vel_target) {} void Copter::Log_Write_Throw(ThrowModeStage stage, float velocity, float velocity_z, float accel, float ef_accel_z, bool throw_detect, bool attitude_ok, bool height_ok, bool pos_ok) {} void Copter::Log_Write_Proximity() {} -void Copter::Log_Write_Beacon() {} void Copter::Log_Write_Vehicle_Startup_Messages() {} #if FRAME_CONFIG == HELI_FRAME diff --git a/ArduCopter/Parameters.cpp b/ArduCopter/Parameters.cpp index 62025ddcc7..0a8bf2aa53 100644 --- a/ArduCopter/Parameters.cpp +++ b/ArduCopter/Parameters.cpp @@ -874,7 +874,9 @@ const AP_Param::GroupInfo ParametersG2::var_info[] = { // @Group: BCN // @Path: ../libraries/AP_Beacon/AP_Beacon.cpp +#if BEACON_ENABLED == ENABLED AP_SUBGROUPINFO(beacon, "BCN", 14, ParametersG2, AP_Beacon), +#endif #if PROXIMITY_ENABLED == ENABLED // @Group: PRX @@ -994,7 +996,10 @@ const AP_Param::GroupInfo ParametersG2::var_info[] = { constructor for g2 object */ ParametersG2::ParametersG2(void) - : beacon(copter.serial_manager) + : temp_calibration(copter.barometer, copter.ins) +#if BEACON_ENABLED == ENABLED + , beacon(copter.serial_manager) +#endif #if PROXIMITY_ENABLED == ENABLED , proximity(copter.serial_manager) #endif diff --git a/ArduCopter/Parameters.h b/ArduCopter/Parameters.h index fe97f03de7..078fa7859e 100644 --- a/ArduCopter/Parameters.h +++ b/ArduCopter/Parameters.h @@ -512,8 +512,10 @@ public: // ground effect compensation enable/disable AP_Int8 gndeffect_comp_enabled; +#if BEACON_ENABLED == ENABLED // beacon (non-GPS positioning) library AP_Beacon beacon; +#endif #if VISUAL_ODOMETRY_ENABLED == ENABLED // Visual Odometry camera diff --git a/ArduCopter/config.h b/ArduCopter/config.h index 36026435c1..beb1d35200 100644 --- a/ArduCopter/config.h +++ b/ArduCopter/config.h @@ -333,6 +333,12 @@ # define MODE_SPORT_ENABLED ENABLED #endif +////////////////////////////////////////////////////////////////////////////// +// Beacon support - support for local positioning systems +#ifndef BEACON_ENABLED +# define BEACON_ENABLED ENABLED +#endif + ////////////////////////////////////////////////////////////////////////////// // RADIO CONFIGURATION ////////////////////////////////////////////////////////////////////////////// diff --git a/ArduCopter/sensors.cpp b/ArduCopter/sensors.cpp index 5e5daf1364..1399aab5b0 100644 --- a/ArduCopter/sensors.cpp +++ b/ArduCopter/sensors.cpp @@ -467,12 +467,6 @@ void Copter::update_sensor_status_flags(void) #endif } -// init beacons used for non-gps position estimates -void Copter::init_beacon() -{ - g2.beacon.init(); -} - // init visual odometry sensor void Copter::init_visual_odom() { diff --git a/ArduCopter/system.cpp b/ArduCopter/system.cpp index 91b6e1dc88..3a06fc49aa 100644 --- a/ArduCopter/system.cpp +++ b/ArduCopter/system.cpp @@ -153,8 +153,10 @@ void Copter::init_ardupilot() */ hal.scheduler->register_timer_failsafe(failsafe_check_static, 1000); +#if BEACON_ENABLED == ENABLED // give AHRS the range beacon sensor ahrs.set_beacon(&g2.beacon); +#endif // Do GPS init gps.set_log_gps_bit(MASK_LOG_GPS); @@ -222,8 +224,10 @@ void Copter::init_ardupilot() // init proximity sensor init_proximity(); +#if BEACON_ENABLED == ENABLED // init beacons used for non-gps position estimation - init_beacon(); + g2.beacon.init(); +#endif // init visual odometry init_visual_odom();