diff --git a/conf/airframes/Poine/booz2_a1.xml b/conf/airframes/Poine/booz2_a1.xml index 910536f55e..64211a162f 100644 --- a/conf/airframes/Poine/booz2_a1.xml +++ b/conf/airframes/Poine/booz2_a1.xml @@ -209,8 +209,8 @@ - - + + @@ -231,7 +231,7 @@ # FIXME: make fms a module #include $(CFG_BOOZ)/subsystems/booz2_fms_test_signal.makefile #include $(CFG_BOOZ)/booz2_test_progs.makefile -#include $(CFG_BOOZ)/booz2_simulator_nps.makefile +#include $(PAPARAZZI_SRC)/conf/autopilot/booz2_simulator_nps.makefile --> diff --git a/conf/autopilot/booz2_simulator_nps.makefile b/conf/autopilot/subsystems/rotorcraft/simulator_nps.makefile similarity index 93% rename from conf/autopilot/booz2_simulator_nps.makefile rename to conf/autopilot/subsystems/rotorcraft/simulator_nps.makefile index 2e4bae6157..0bf875c311 100644 --- a/conf/autopilot/booz2_simulator_nps.makefile +++ b/conf/autopilot/subsystems/rotorcraft/simulator_nps.makefile @@ -11,6 +11,8 @@ JSBSIM_LIB = $(JSBSIM_ROOT)/lib SRC_BOOZ=booz SRC_BOOZ_SIM = $(SRC_BOOZ)/arch/sim +SRC_BOARD=boards/$(BOARD) + NPSDIR = $(SIMDIR)/nps @@ -25,7 +27,7 @@ sim.LDFLAGS += `pkg-config glib-2.0 --libs` -lm -lmeschach -lpcre -lglibivy sim.CFLAGS += -I$(NPSDIR) -I/usr/local/include -I$(JSBSIM_INC) sim.LDFLAGS += -L$(JSBSIM_LIB) -lJSBSim -sim.CFLAGS += -I$(SRC_BOOZ) -I$(SRC_BOOZ_SIM) -I../simulator -I$(PAPARAZZI_HOME)/conf/simulator/nps +sim.CFLAGS += -I$(SRC_BOOZ) -I$(SRC_BOOZ_SIM) -I$(SRC_BOARD) -I../simulator -I$(PAPARAZZI_HOME)/conf/simulator/nps sim.srcs = $(NPSDIR)/nps_main.c \ $(NPSDIR)/nps_fdm_jsbsim.c \ @@ -51,10 +53,10 @@ sim.srcs += math/pprz_trig_int.c \ -sim.CFLAGS += -DBOARD_CONFIG=\"boards/booz2_v1_0.h\" +sim.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG) sim.srcs += $(SRC_BOOZ_SIM)/booz2_unsimulated_peripherals.c -sim.srcs += $(SRC_BOOZ)/booz2_main.c +sim.srcs += firmwares/rotorcraft/main.c sim.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC((1./512.))' # -DTIME_LED=1 @@ -77,15 +79,15 @@ sim.srcs += $(SRC_BOOZ)/booz2_datalink.c sim.CFLAGS += -DBOOZ2_ANALOG_BARO_LED=2 -DBOOZ2_ANALOG_BARO_PERIOD='SYS_TICS_OF_SEC((1./100.))' -sim.srcs += $(SRC_BOOZ)/booz2_analog_baro.c +sim.srcs += $(SRC_BOARD)/baro_board.c sim.CFLAGS += -DBOOZ2_ANALOG_BATTERY_PERIOD='SYS_TICS_OF_SEC((1./10.))' sim.srcs += $(SRC_BOOZ)/booz2_battery.c sim.srcs += $(SRC_BOOZ)/booz2_analog.c $(SRC_BOOZ_SIM)/booz2_analog_hw.c - - +sim.CFLAGS += -DBOOZ_IMU_TYPE_H=\"imu/booz_imu_b2.h\" +sim.CFLAGS += -DIMU_B2_VERSION_1_1 sim.srcs += $(SRC_BOOZ)/booz2_autopilot.c diff --git a/conf/boards/pc.makefile b/conf/boards/pc.makefile index ca326678bc..ce4c26773f 100644 --- a/conf/boards/pc.makefile +++ b/conf/boards/pc.makefile @@ -6,6 +6,7 @@ ARCH=sim ARCHI=sim +BOARD = pc BOARD_CFG = \"tiny.h\" diff --git a/sw/airborne/boards/lisa_l/baro_board.h b/sw/airborne/boards/lisa_l/baro_board.h index 785dd6173d..3e7f5b52b6 100644 --- a/sw/airborne/boards/lisa_l/baro_board.h +++ b/sw/airborne/boards/lisa_l/baro_board.h @@ -1,3 +1,9 @@ + +/* + * board specific fonctions for the lisa_l board + * + */ + #ifndef BOARDS_LISA_L_BARO_H #define BOARDS_LISA_L_BARO_H diff --git a/sw/airborne/boards/pc/baro_board.c b/sw/airborne/boards/pc/baro_board.c new file mode 100644 index 0000000000..b9d103accd --- /dev/null +++ b/sw/airborne/boards/pc/baro_board.c @@ -0,0 +1,16 @@ + + +#include "firmwares/rotorcraft/baro.h" + +struct Baro baro; + +bool_t baro_pc_available; + +void baro_init(void) {baro_pc_available=FALSE;} + +void baro_periodic(void) {} + +void baro_feed_value(double value) { + baro.absolute = value; + baro_pc_available = TRUE; +} diff --git a/sw/airborne/boards/pc/baro_board.h b/sw/airborne/boards/pc/baro_board.h new file mode 100644 index 0000000000..54d902730b --- /dev/null +++ b/sw/airborne/boards/pc/baro_board.h @@ -0,0 +1,21 @@ +/* + * board specific fonction for the PC board ( simulator ) + * + */ + +#ifndef BOARDS_PC_BARO_H +#define BOARDS_PC_BARO_H + +#define BaroEvent(_b_abs_handler, _b_diff_handler) { \ + if (baro_pc_available) { \ + _b_abs_handler(); \ + baro_pc_available = FALSE; \ + } \ + } + + +extern bool_t baro_pc_available; + +extern void baro_feed_value(double value); + +#endif /* BOARDS_PC_BARO_H */ diff --git a/sw/airborne/booz/booz_fms.h b/sw/airborne/booz/booz_fms.h index 70c031759b..a2ede405f3 100644 --- a/sw/airborne/booz/booz_fms.h +++ b/sw/airborne/booz/booz_fms.h @@ -94,6 +94,7 @@ extern void booz_fms_impl_set_enabled(bool_t enabled); #define BOOZ_FMS_TYPE_DATALINK 0 #define BOOZ_FMS_TYPE_TEST_SIGNAL 1 +#define BOOZ_FMS_TYPE_OVERO_LINK 2 #if defined BOOZ_FMS_TYPE #if BOOZ_FMS_TYPE == BOOZ_FMS_TYPE_DATALINK diff --git a/sw/simulator/nps/nps_autopilot_booz.c b/sw/simulator/nps/nps_autopilot_booz.c index 636f74a891..41c638fd17 100644 --- a/sw/simulator/nps/nps_autopilot_booz.c +++ b/sw/simulator/nps/nps_autopilot_booz.c @@ -1,11 +1,11 @@ #include "nps_autopilot_booz.h" -#include "booz2_main.h" +#include "firmwares/rotorcraft/main.h" #include "nps_sensors.h" #include "nps_radio_control.h" #include "booz_radio_control.h" -#include "booz_imu.h" -#include "booz2_analog_baro.h" +#include "booz/booz_imu.h" +#include "firmwares/rotorcraft/baro.h" #include "actuators/booz_supervision.h" @@ -45,7 +45,7 @@ void nps_autopilot_run_step(double time __attribute__ ((unused))) { } if (nps_sensors_baro_available()) { - Booz2BaroISRHandler(sensors.baro.value); + baro_feed_value(sensors.baro.value); booz2_main_event(); }