From 1c8fa5a40b7bb1b1290bb214b7e882d4ce12106b Mon Sep 17 00:00:00 2001 From: Felix Ruess Date: Tue, 9 Sep 2014 16:39:40 +0200 Subject: [PATCH] [modules] baro_board as module --- conf/airframes/ENAC/fixed-wing/apogee.xml | 1 + conf/airframes/examples/microjet_lisa_m.xml | 1 + conf/airframes/examples/quadrotor_lisa_mx.xml | 1 + conf/firmwares/rotorcraft.makefile | 2 - .../subsystems/fixedwing/autopilot.makefile | 3 -- conf/modules/baro_board.xml | 22 +++++++++++ sw/airborne/boards/apogee/baro_board.c | 2 +- sw/airborne/boards/ardrone/baro_board.c | 2 +- sw/airborne/boards/baro_board_ms5611_i2c.c | 2 +- sw/airborne/boards/baro_board_ms5611_spi.c | 2 +- sw/airborne/boards/booz/baro_board.c | 2 +- sw/airborne/boards/booz/baro_board.h | 2 +- sw/airborne/boards/lisa_l/baro_board.c | 2 +- sw/airborne/boards/lisa_m/baro_board.c | 2 +- sw/airborne/boards/navgo/baro_board.c | 2 +- sw/airborne/boards/navstik/baro_board.c | 2 +- sw/airborne/boards/umarim/baro_board.c | 2 +- sw/airborne/firmwares/fixedwing/main_ap.c | 38 ++++--------------- sw/airborne/firmwares/rotorcraft/main.c | 36 +++++------------- .../modules/sensors/airspeed_ads1114.c | 2 +- .../sensors/baro_board_module.h} | 9 +++-- sw/airborne/subsystems/ins/ins_alt_float.c | 2 +- sw/airborne/test/test_baro_board.c | 2 +- 23 files changed, 61 insertions(+), 80 deletions(-) create mode 100644 conf/modules/baro_board.xml rename sw/airborne/{subsystems/sensors/baro.h => modules/sensors/baro_board_module.h} (86%) diff --git a/conf/airframes/ENAC/fixed-wing/apogee.xml b/conf/airframes/ENAC/fixed-wing/apogee.xml index a8687c32b08..f29fd84bf29 100644 --- a/conf/airframes/ENAC/fixed-wing/apogee.xml +++ b/conf/airframes/ENAC/fixed-wing/apogee.xml @@ -33,6 +33,7 @@ + diff --git a/conf/airframes/examples/microjet_lisa_m.xml b/conf/airframes/examples/microjet_lisa_m.xml index 491b8367c9a..cd1e3a14203 100644 --- a/conf/airframes/examples/microjet_lisa_m.xml +++ b/conf/airframes/examples/microjet_lisa_m.xml @@ -47,6 +47,7 @@ + diff --git a/conf/airframes/examples/quadrotor_lisa_mx.xml b/conf/airframes/examples/quadrotor_lisa_mx.xml index b391cca192b..14f8045803c 100644 --- a/conf/airframes/examples/quadrotor_lisa_mx.xml +++ b/conf/airframes/examples/quadrotor_lisa_mx.xml @@ -63,6 +63,7 @@ + diff --git a/conf/firmwares/rotorcraft.makefile b/conf/firmwares/rotorcraft.makefile index 36ab61eb629..5278b7dd61a 100644 --- a/conf/firmwares/rotorcraft.makefile +++ b/conf/firmwares/rotorcraft.makefile @@ -141,8 +141,6 @@ ap.srcs += subsystems/actuators.c # ap.srcs += subsystems/air_data.c -include $(CFG_SHARED)/baro_board.makefile - # # Analog Backend # diff --git a/conf/firmwares/subsystems/fixedwing/autopilot.makefile b/conf/firmwares/subsystems/fixedwing/autopilot.makefile index c7e38d561e3..a63d0fc48da 100644 --- a/conf/firmwares/subsystems/fixedwing/autopilot.makefile +++ b/conf/firmwares/subsystems/fixedwing/autopilot.makefile @@ -161,9 +161,6 @@ ap_srcs += $(SRC_ARCH)/subsystems/settings_arch.c # AIR DATA ap_srcs += subsystems/air_data.c -# BARO -include $(CFG_SHARED)/baro_board.makefile - ###################################################################### ## diff --git a/conf/modules/baro_board.xml b/conf/modules/baro_board.xml new file mode 100644 index 00000000000..c8da974be4f --- /dev/null +++ b/conf/modules/baro_board.xml @@ -0,0 +1,22 @@ + + + + + + Baro board default. + Drivers for baros already on an autopilot board. + + + +
+ +
+ + + + + +include $(CFG_SHARED)/baro_board.makefile + + +
diff --git a/sw/airborne/boards/apogee/baro_board.c b/sw/airborne/boards/apogee/baro_board.c index c337bdf6273..e868dcd6aab 100644 --- a/sw/airborne/boards/apogee/baro_board.c +++ b/sw/airborne/boards/apogee/baro_board.c @@ -27,7 +27,7 @@ */ #include "std.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "peripherals/mpl3115.h" // to get MPU status diff --git a/sw/airborne/boards/ardrone/baro_board.c b/sw/airborne/boards/ardrone/baro_board.c index 67528f47618..b6d553b0e1c 100644 --- a/sw/airborne/boards/ardrone/baro_board.c +++ b/sw/airborne/boards/ardrone/baro_board.c @@ -26,7 +26,7 @@ * Based on BMP180 implementation by C. de Wagter. */ -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "subsystems/abi.h" #include "baro_board.h" #include "navdata.h" diff --git a/sw/airborne/boards/baro_board_ms5611_i2c.c b/sw/airborne/boards/baro_board_ms5611_i2c.c index c7a2e34a206..e59d06d1f71 100644 --- a/sw/airborne/boards/baro_board_ms5611_i2c.c +++ b/sw/airborne/boards/baro_board_ms5611_i2c.c @@ -27,7 +27,7 @@ * */ -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "peripherals/ms5611_i2c.h" #include "mcu_periph/sys_time.h" diff --git a/sw/airborne/boards/baro_board_ms5611_spi.c b/sw/airborne/boards/baro_board_ms5611_spi.c index 9c8a84f403b..82f6303e393 100644 --- a/sw/airborne/boards/baro_board_ms5611_spi.c +++ b/sw/airborne/boards/baro_board_ms5611_spi.c @@ -27,7 +27,7 @@ * */ -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "peripherals/ms5611_spi.h" #include "mcu_periph/sys_time.h" diff --git a/sw/airborne/boards/booz/baro_board.c b/sw/airborne/boards/booz/baro_board.c index e7d955ecdb3..751625a145a 100644 --- a/sw/airborne/boards/booz/baro_board.c +++ b/sw/airborne/boards/booz/baro_board.c @@ -25,7 +25,7 @@ */ -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "generated/airframe.h" #include "subsystems/abi.h" diff --git a/sw/airborne/boards/booz/baro_board.h b/sw/airborne/boards/booz/baro_board.h index f47abe700ba..94d09012dce 100644 --- a/sw/airborne/boards/booz/baro_board.h +++ b/sw/airborne/boards/booz/baro_board.h @@ -30,7 +30,7 @@ #include "std.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "mcu_periph/adc.h" #include "mcu_periph/dac.h" diff --git a/sw/airborne/boards/lisa_l/baro_board.c b/sw/airborne/boards/lisa_l/baro_board.c index a7a6a7834bf..14b8f5f1796 100644 --- a/sw/airborne/boards/lisa_l/baro_board.c +++ b/sw/airborne/boards/lisa_l/baro_board.c @@ -21,7 +21,7 @@ */ #include "std.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "mcu_periph/i2c.h" #include "subsystems/abi.h" #include "led.h" diff --git a/sw/airborne/boards/lisa_m/baro_board.c b/sw/airborne/boards/lisa_m/baro_board.c index 6a23b1173d6..b4219a33f3e 100644 --- a/sw/airborne/boards/lisa_m/baro_board.c +++ b/sw/airborne/boards/lisa_m/baro_board.c @@ -25,7 +25,7 @@ #include "std.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "peripherals/bmp085.h" #include "peripherals/bmp085_regs.h" #include diff --git a/sw/airborne/boards/navgo/baro_board.c b/sw/airborne/boards/navgo/baro_board.c index fd99a5c6cac..742bea2aec1 100644 --- a/sw/airborne/boards/navgo/baro_board.c +++ b/sw/airborne/boards/navgo/baro_board.c @@ -27,7 +27,7 @@ #include "std.h" #include "baro_board.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "peripherals/mcp355x.h" #include "subsystems/abi.h" #include "led.h" diff --git a/sw/airborne/boards/navstik/baro_board.c b/sw/airborne/boards/navstik/baro_board.c index b0d030e2ec1..b44dac886d1 100644 --- a/sw/airborne/boards/navstik/baro_board.c +++ b/sw/airborne/boards/navstik/baro_board.c @@ -25,7 +25,7 @@ #include "std.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "peripherals/bmp085.h" #include "peripherals/bmp085_regs.h" #include diff --git a/sw/airborne/boards/umarim/baro_board.c b/sw/airborne/boards/umarim/baro_board.c index c02542ed145..89df1f24e62 100644 --- a/sw/airborne/boards/umarim/baro_board.c +++ b/sw/airborne/boards/umarim/baro_board.c @@ -27,7 +27,7 @@ #include "std.h" #include "baro_board.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "peripherals/ads1114.h" #include "subsystems/abi.h" #include "led.h" diff --git a/sw/airborne/firmwares/fixedwing/main_ap.c b/sw/airborne/firmwares/fixedwing/main_ap.c index da337d4af76..8940cb7526d 100644 --- a/sw/airborne/firmwares/fixedwing/main_ap.c +++ b/sw/airborne/firmwares/fixedwing/main_ap.c @@ -54,13 +54,8 @@ #include "subsystems/ahrs/ahrs_aligner.h" #endif #include "subsystems/air_data.h" -#if USE_BARO_BOARD -#include "subsystems/sensors/baro.h" -PRINT_CONFIG_MSG_VALUE("USE_BARO_BOARD is TRUE, reading onboard baro: ", BARO_BOARD) -#endif #include "subsystems/ins.h" - // autopilot & control #include "state.h" #include "firmwares/fixedwing/autopilot.h" @@ -106,6 +101,14 @@ PRINT_CONFIG_MSG_VALUE("USE_BARO_BOARD is TRUE, reading onboard baro: ", BARO_BO #define COMMAND_YAW_TRIM 0 #endif +#if USE_BARO_BOARD +#if BARO_BOARD_MODULE_LOADED +PRINT_CONFIG_MSG_VALUE("USE_BARO_BOARD is TRUE, reading onboard baro: ", BARO_BOARD) +#else +#warning "USE_BARO_BOARD is TRUE, but baro_board.xml module not loaded!" +#endif // BARO_BOARD_MODULE_LOADED +#endif // USE_BARO_BOARD + /* if PRINT_CONFIG is defined, print some config options */ PRINT_CONFIG_VAR(PERIODIC_FREQUENCY) PRINT_CONFIG_VAR(NAVIGATION_FREQUENCY) @@ -121,13 +124,6 @@ PRINT_CONFIG_VAR(TELEMETRY_FREQUENCY) */ PRINT_CONFIG_VAR(MODULES_FREQUENCY) -#if USE_BARO_BOARD -#ifndef BARO_PERIODIC_FREQUENCY -#define BARO_PERIODIC_FREQUENCY 50 -#endif -PRINT_CONFIG_VAR(BARO_PERIODIC_FREQUENCY) -#endif - #if USE_AHRS && USE_IMU #ifndef AHRS_PROPAGATE_FREQUENCY @@ -178,9 +174,6 @@ tid_t sensors_tid; ///< id for sensors_task() timer tid_t attitude_tid; ///< id for attitude_loop() timer tid_t navigation_tid; ///< id for navigation_task() timer tid_t monitor_tid; ///< id for monitor_task() timer -#if USE_BARO_BOARD -tid_t baro_tid; ///< id for baro_periodic() timer -#endif void init_ap( void ) { #ifndef SINGLE_MCU /** init done in main_fbw in single MCU */ @@ -213,9 +206,6 @@ void init_ap( void ) { #endif air_data_init(); -#if USE_BARO_BOARD - baro_init(); -#endif ins_init(); @@ -244,9 +234,6 @@ void init_ap( void ) { modules_tid = sys_time_register_timer(1./MODULES_FREQUENCY, NULL); telemetry_tid = sys_time_register_timer(1./TELEMETRY_FREQUENCY, NULL); monitor_tid = sys_time_register_timer(1.0, NULL); -#if USE_BARO_BOARD - baro_tid = sys_time_register_timer(1./BARO_PERIODIC_FREQUENCY, NULL); -#endif /** - start interrupt task */ mcu_int_enable(); @@ -285,11 +272,6 @@ void handle_periodic_tasks_ap(void) { if (sys_time_check_and_ack_timer(sensors_tid)) sensors_task(); -#if USE_BARO_BOARD - if (sys_time_check_and_ack_timer(baro_tid)) - baro_periodic(); -#endif - if (sys_time_check_and_ack_timer(navigation_tid)) navigation_task(); @@ -682,10 +664,6 @@ void event_task_ap( void ) { GpsEvent(on_gps_solution); #endif /* USE_GPS */ -#if USE_BARO_BOARD - BaroEvent(); -#endif - DatalinkEvent(); diff --git a/sw/airborne/firmwares/rotorcraft/main.c b/sw/airborne/firmwares/rotorcraft/main.c index b2dfed1683b..924ea261eab 100644 --- a/sw/airborne/firmwares/rotorcraft/main.c +++ b/sw/airborne/firmwares/rotorcraft/main.c @@ -54,11 +54,6 @@ #include "subsystems/gps.h" #include "subsystems/air_data.h" -#if USE_BARO_BOARD -#include "subsystems/sensors/baro.h" -PRINT_CONFIG_MSG_VALUE("USE_BARO_BOARD is TRUE, reading onboard baro: ", BARO_BOARD) -#endif - #include "subsystems/electrical.h" #include "firmwares/rotorcraft/autopilot.h" @@ -84,6 +79,14 @@ PRINT_CONFIG_MSG_VALUE("USE_BARO_BOARD is TRUE, reading onboard baro: ", BARO_BO #include "subsystems/abi.h" +#if USE_BARO_BOARD +#if BARO_BOARD_MODULE_LOADED +PRINT_CONFIG_MSG_VALUE("USE_BARO_BOARD is TRUE, reading onboard baro: ", BARO_BOARD) +#else +#warning "USE_BARO_BOARD is TRUE, but baro_board.xml module not loaded!" +#endif // BARO_BOARD_MODULE_LOADED +#endif // USE_BARO_BOARD + /* if PRINT_CONFIG is defined, print some config options */ PRINT_CONFIG_VAR(PERIODIC_FREQUENCY) @@ -97,11 +100,6 @@ PRINT_CONFIG_VAR(TELEMETRY_FREQUENCY) */ PRINT_CONFIG_VAR(MODULES_FREQUENCY) -#ifndef BARO_PERIODIC_FREQUENCY -#define BARO_PERIODIC_FREQUENCY 50 -#endif -PRINT_CONFIG_VAR(BARO_PERIODIC_FREQUENCY) - #if USE_AHRS && USE_IMU && (defined AHRS_PROPAGATE_FREQUENCY) #if (AHRS_PROPAGATE_FREQUENCY > PERIODIC_FREQUENCY) #warning "PERIODIC_FREQUENCY should be least equal or greater than AHRS_PROPAGATE_FREQUENCY" @@ -121,9 +119,6 @@ tid_t failsafe_tid; ///< id for failsafe_check() timer tid_t radio_control_tid; ///< id for radio_control_periodic_task() timer tid_t electrical_tid; ///< id for electrical_periodic() timer tid_t telemetry_tid; ///< id for telemetry_periodic() timer -#if USE_BARO_BOARD -tid_t baro_tid; ///< id for baro_periodic() timer -#endif #ifndef SITL int main( void ) { @@ -153,9 +148,7 @@ STATIC_INLINE void main_init( void ) { radio_control_init(); air_data_init(); -#if USE_BARO_BOARD - baro_init(); -#endif + imu_init(); ahrs_aligner_init(); ahrs_init(); @@ -188,9 +181,6 @@ STATIC_INLINE void main_init( void ) { failsafe_tid = sys_time_register_timer(0.05, NULL); electrical_tid = sys_time_register_timer(0.1, NULL); telemetry_tid = sys_time_register_timer((1./TELEMETRY_FREQUENCY), NULL); -#if USE_BARO_BOARD - baro_tid = sys_time_register_timer(1./BARO_PERIODIC_FREQUENCY, NULL); -#endif } STATIC_INLINE void handle_periodic_tasks( void ) { @@ -206,10 +196,6 @@ STATIC_INLINE void handle_periodic_tasks( void ) { electrical_periodic(); if (sys_time_check_and_ack_timer(telemetry_tid)) telemetry_periodic(); -#if USE_BARO_BOARD - if (sys_time_check_and_ack_timer(baro_tid)) - baro_periodic(); -#endif } STATIC_INLINE void main_periodic( void ) { @@ -290,10 +276,6 @@ STATIC_INLINE void main_event( void ) { ImuEvent(on_gyro_event, on_accel_event, on_mag_event); -#if USE_BARO_BOARD - BaroEvent(); -#endif - #if USE_GPS GpsEvent(on_gps_event); #endif diff --git a/sw/airborne/modules/sensors/airspeed_ads1114.c b/sw/airborne/modules/sensors/airspeed_ads1114.c index b472beb4ade..f7b4ad910cf 100644 --- a/sw/airborne/modules/sensors/airspeed_ads1114.c +++ b/sw/airborne/modules/sensors/airspeed_ads1114.c @@ -26,7 +26,7 @@ */ #include "modules/sensors/airspeed_ads1114.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "baro_board.h" void airspeed_periodic(void) { diff --git a/sw/airborne/subsystems/sensors/baro.h b/sw/airborne/modules/sensors/baro_board_module.h similarity index 86% rename from sw/airborne/subsystems/sensors/baro.h rename to sw/airborne/modules/sensors/baro_board_module.h index 226d2b42b54..80974350581 100644 --- a/sw/airborne/subsystems/sensors/baro.h +++ b/sw/airborne/modules/sensors/baro_board_module.h @@ -20,7 +20,7 @@ */ /** - * @file subsystems/sensors/baro.h + * @file modules/sensors/baro_board_module.h * * Common barometric sensor implementation. * Used with baro integrated to the autopilot board. @@ -28,13 +28,14 @@ * */ -#ifndef SUBSYSTEMS_SENSORS_BARO_H -#define SUBSYSTEMS_SENSORS_BARO_H +#ifndef MODULES_SENSORS_BARO_H +#define MODULES_SENSORS_BARO_H #include BOARD_CONFIG #if USE_BARO_BOARD #include "baro_board.h" +#define BARO_BOARD_MODULE_LOADED 1 #ifndef BARO_BOARD #define BARO_BOARD BARO_BOARD_DEFAULT #endif @@ -43,4 +44,4 @@ extern void baro_init(void); extern void baro_periodic(void); -#endif /* SUBSYSTEMS_SENSORS_BARO_H */ +#endif /* MODULES_SENSORS_BARO_H */ diff --git a/sw/airborne/subsystems/ins/ins_alt_float.c b/sw/airborne/subsystems/ins/ins_alt_float.c index ea39e5bc90b..cbfaa02469e 100644 --- a/sw/airborne/subsystems/ins/ins_alt_float.c +++ b/sw/airborne/subsystems/ins/ins_alt_float.c @@ -51,7 +51,7 @@ struct InsAltFloat ins_impl; #if USE_BAROMETER -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #include "math/pprz_isa.h" PRINT_CONFIG_MSG("USE_BAROMETER is TRUE: Using baro for altitude estimation.") diff --git a/sw/airborne/test/test_baro_board.c b/sw/airborne/test/test_baro_board.c index 133c3684708..f0de040d7a8 100644 --- a/sw/airborne/test/test_baro_board.c +++ b/sw/airborne/test/test_baro_board.c @@ -34,7 +34,7 @@ #include "subsystems/datalink/downlink.h" -#include "subsystems/sensors/baro.h" +#include "modules/sensors/baro_board_module.h" #define ABI_C #include "subsystems/abi.h"