diff --git a/conf/airframes/booz2_flixr.xml b/conf/airframes/booz2_flixr.xml index c0a5b0c7f8..38255e1429 100644 --- a/conf/airframes/booz2_flixr.xml +++ b/conf/airframes/booz2_flixr.xml @@ -16,6 +16,7 @@ + diff --git a/conf/autopilot/rotorcraft.makefile b/conf/autopilot/rotorcraft.makefile index e42d413483..5ffb0f8d73 100644 --- a/conf/autopilot/rotorcraft.makefile +++ b/conf/autopilot/rotorcraft.makefile @@ -23,13 +23,6 @@ # # -# -# Expected from board file or overriden as xml param : -# -# MODEM_PORT -# MODEM_BAUD -# - CFG_SHARED=$(PAPARAZZI_SRC)/conf/autopilot/subsystems/shared CFG_ROTORCRAFT=$(PAPARAZZI_SRC)/conf/autopilot/subsystems/rotorcraft @@ -92,20 +85,11 @@ endif # # Telemetry/Datalink # +# include subsystems/rotorcraft/telemetry_transparent.makefile +# or +# include subsystems/rotorcraft/telemetry_xbee_api.makefile +# ap.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c -ap.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -ap.CFLAGS += -DDOWNLINK_DEVICE=$(MODEM_PORT) -ap.srcs += $(SRC_FIRMWARE)/telemetry.c -ap.srcs += downlink.c -ap.srcs += pprz_transport.c -ap.CFLAGS += -DDATALINK=PPRZ -ap.CFLAGS += -DPPRZ_UART=$(MODEM_PORT) -ap.srcs += $(SRC_FIRMWARE)/datalink.c -ap.CFLAGS += -DUSE_$(MODEM_PORT) -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD) - -ifeq ($(ARCH), lpc21) -ap.CFLAGS += -D$(MODEM_PORT)_VIC_SLOT=6 -endif ap.srcs += $(SRC_BOOZ)/booz2_commands.c diff --git a/conf/autopilot/subsystems/rotorcraft/telemetry_transparent.makefile b/conf/autopilot/subsystems/rotorcraft/telemetry_transparent.makefile new file mode 100644 index 0000000000..fbc1b89c2e --- /dev/null +++ b/conf/autopilot/subsystems/rotorcraft/telemetry_transparent.makefile @@ -0,0 +1,18 @@ +# +# Expected from board file or overriden as xml param : +# +# MODEM_PORT +# MODEM_BAUD +# + +ap.CFLAGS += -DUSE_$(MODEM_PORT) +ap.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD) + +ap.CFLAGS += -DDOWNLINK -DDOWNLINK_DEVICE=$(MODEM_PORT) -DPPRZ_UART=$(MODEM_PORT) +ap.CFLAGS += -DDOWNLINK_TRANSPORT=PprzTransport -DDATALINK=PPRZ +ap.srcs += downlink.c pprz_transport.c +ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/telemetry.c + +ifeq ($(ARCH), lpc21) +ap.CFLAGS += -D$(MODEM_PORT)_VIC_SLOT=6 +endif diff --git a/conf/autopilot/subsystems/rotorcraft/telemetry_xbee_api.makefile b/conf/autopilot/subsystems/rotorcraft/telemetry_xbee_api.makefile new file mode 100644 index 0000000000..a10f3fa95e --- /dev/null +++ b/conf/autopilot/subsystems/rotorcraft/telemetry_xbee_api.makefile @@ -0,0 +1,19 @@ +# XBee modems in API mode +# +# Expected from board file or overriden as xml param : +# +# MODEM_PORT +# MODEM_BAUD +# + +ap.CFLAGS += -DUSE_$(MODEM_PORT) +ap.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD) + +ap.CFLAGS += -DDOWNLINK -DDOWNLINK_DEVICE=$(MODEM_PORT) -DXBEE_UART=$(MODEM_PORT) +ap.CFLAGS += -DDOWNLINK_TRANSPORT=XBeeTransport -DDATALINK=XBEE +ap.srcs += downlink.c xbee.c +ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/telemetry.c + +ifeq ($(ARCH), lpc21) +ap.CFLAGS += -D$(MODEM_PORT)_VIC_SLOT=6 +endif diff --git a/sw/airborne/datalink.h b/sw/airborne/datalink.h index 690b06462a..9baa824a92 100644 --- a/sw/airborne/datalink.h +++ b/sw/airborne/datalink.h @@ -78,8 +78,8 @@ EXTERN void dl_parse_msg(void); #elif DATALINK == XBEE #define DatalinkEvent() { \ - if (XbeeBuffer()) { \ - ReadXbeeBuffer(); \ + if (XBeeBuffer()) { \ + ReadXBeeBuffer(); \ if (xbee_msg_received) { \ xbee_parse_payload(); \ xbee_msg_received = FALSE; \ diff --git a/sw/airborne/firmwares/rotorcraft/main.c b/sw/airborne/firmwares/rotorcraft/main.c index 60205f57e1..dc84985b20 100644 --- a/sw/airborne/firmwares/rotorcraft/main.c +++ b/sw/airborne/firmwares/rotorcraft/main.c @@ -32,6 +32,7 @@ #include "downlink.h" #include "firmwares/rotorcraft/telemetry.h" #include "datalink.h" +#include "xbee.h" #include "booz2_commands.h" #include "firmwares/rotorcraft/actuators.h" @@ -100,6 +101,10 @@ STATIC_INLINE void main_init( void ) { actuators_init(); radio_control_init(); +#if DATALINK == XBEE + xbee_init(); +#endif + booz2_analog_init(); baro_init();