Telemetry modules (#1835)

* [modules] convert telemetry subsystems to modules
* [modules] add init and event functions to modules
* [datalink] remove old datalink lib export
* [datalink] drop audio_telemetry code
* [modules] generate modules functions grouped into tasks
This commit is contained in:
Gautier Hattenberger
2016-10-07 14:35:07 +02:00
committed by GitHub
parent 49b554d0ae
commit 4316871b63
94 changed files with 1065 additions and 980 deletions
+8 -8
View File
@@ -9,9 +9,9 @@ ARK RT
<firmware name="rotorcraft">
<target name="ap" board="lisa_mx_2.1">
<subsystem name="radio_control" type="sbus">
<module name="radio_control" type="sbus">
<configure name="SBUS_PORT" value="UART5"/>
</subsystem>
</module>
</target>
<!-- NOTE: if you want to use extra_dl module for HITL
@@ -29,17 +29,17 @@ ARK RT
<configure name="AP_BAUD" value="B921600"/>
</target>
<subsystem name="motor_mixing"/>
<subsystem name="actuators" type="pwm">
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="160"/>
</subsystem>
</module>
<subsystem name="telemetry" type="transparent">
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART3"/>
<configure name="MODEM_BAUD" value="B57600"/>
</subsystem>
</module>
<subsystem name="stabilization" type="float_euler"/>
<module name="stabilization" type="float_euler"/>
<module name="ins" type="vectornav">
<configure name="VN_PORT" value="UART2"/>
@@ -9,7 +9,6 @@
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="telemetry" type="transparent_udp"/>
<module name="radio_control" type="datalink"/>
</target>
@@ -18,6 +17,7 @@
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
@@ -9,7 +9,6 @@
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="telemetry" type="transparent_udp"/>
<module name="radio_control" type="datalink"/>
</target>
@@ -18,6 +17,7 @@
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
+1 -1
View File
@@ -9,7 +9,6 @@
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="telemetry" type="transparent_udp"/>
<module name="radio_control" type="datalink"/>
</target>
@@ -18,6 +17,7 @@
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
@@ -12,7 +12,6 @@
<define name="USE_SONAR"/>
<define name="USE_BARO_MEDIAN_FILTER"/>
<define name="AUTOPILOT_DISABLE_AHRS_KILL"/>
<module name="telemetry" type="transparent_udp"/>
<module name="radio_control" type="datalink"/>
</target>
@@ -21,6 +20,7 @@
<module name="radio_control" type="ppm"/>
</target>
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="ardrone2"/>
+1 -1
View File
@@ -5,7 +5,6 @@
<firmware name="rotorcraft">
<target name="ap" board="bebop">
<module name="telemetry" type="transparent_udp"/>
<module name="radio_control" type="datalink"/>
</target>
@@ -16,6 +15,7 @@
<!--define name="USE_SONAR" value="TRUE"/-->
<module name="telemetry" type="transparent_udp"/>
<!-- Subsystem section -->
<module name="motor_mixing"/>
<module name="actuators" type="bebop"/>
+14 -14
View File
@@ -325,12 +325,12 @@
<firmware name="rotorcraft">
<target name="ap" board="lisa_m_2.0">
<subsystem name="radio_control" type="spektrum">
<module name="radio_control" type="spektrum">
<define name="RADIO_KILL_SWITCH" value="6"/>
<!-- Put the mode on channel AUX1-->
<!-- <define name="RADIO_MODE" value="RADIO_AUX1"/>-->
<!-- <configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="1"/> -->
</subsystem>
</module>
<!-- ONLY if flashing via JTAG cable -->
<configure name="FLASH_MODE" value="JTAG"/>
@@ -344,24 +344,24 @@
<!-- <configure name="LISA_M_BARO" value="BARO_MS5611_SPI"/> -->
</target>
<subsystem name="motor_mixing"/>
<subsystem name="actuators" type="pwm">
<module name="motor_mixing"/>
<module name="actuators" type="pwm">
<define name="SERVO_HZ" value="400"/>
<define name="USE_SERVOS_7AND8"/>
</subsystem>
</module>
<subsystem name="telemetry" type="xbee_api"/>
<!-- <subsystem name="telemetry" type="transparent"/> -->
<subsystem name="imu" type="aspirin_v2.1"/>
<subsystem name="gps" type="ublox"/>
<!-- <subsystem name="stabilization" type="int_quat"/> -->
<subsystem name="stabilization" type="indi"/>
<module name="telemetry" type="xbee_api"/>
<!-- <module name="telemetry" type="transparent"/> -->
<module name="imu" type="aspirin_v2.1"/>
<module name="gps" type="ublox"/>
<!-- <module name="stabilization" type="int_quat"/> -->
<module name="stabilization" type="indi"/>
<subsystem name="ahrs" type="int_cmpl_quat">
<module name="ahrs" type="int_cmpl_quat">
<configure name="USE_MAGNETOMETER" value="1"/>
<define name="AHRS_USE_GPS_HEADING" value="0"/>
</subsystem>
</module>
<subsystem name="ins"/>
<module name="ins"/>
</firmware>
</airframe>
+1 -2
View File
@@ -221,5 +221,4 @@ fbw.srcs += $(ns_srcs)
##
include $(CFG_SHARED)/nps.makefile
nps.srcs += nps/nps_autopilot_rotorcraft.c
nps.srcs += $(SRC_FIRMWARE)/rotorcraft_telemetry.c
nps.srcs += subsystems/datalink/datalink.c $(SRC_FIRMWARE)/rotorcraft_datalink.c
+1 -1
View File
@@ -112,7 +112,7 @@ setup_actuators.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
SETUP_ACTUATORS_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
setup_actuators.CFLAGS += -DDOWNLINK -DDOWNLINK_DEVICE=$(SETUP_ACTUATORS_MODEM_PORT_LOWER) -DPPRZ_UART=$(SETUP_ACTUATORS_MODEM_PORT_LOWER)
setup_actuators.CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ
setup_actuators.srcs += subsystems/datalink/downlink.c pprzlink/src/pprz_transport.c
setup_actuators.srcs += subsystems/datalink/downlink.c pprzlink/src/pprz_transport.c modules/datalink/pprz_dl.c
setup_actuators.srcs += subsystems/actuators.c
setup_actuators.srcs += $(SRC_FIRMWARE)/setup_actuators.c
@@ -236,8 +236,6 @@ ap.srcs += $(ap_srcs) $(ns_srcs)
##
include $(CFG_SHARED)/nps.makefile
nps.srcs += nps/nps_autopilot_fixedwing.c
nps.srcs += subsystems/datalink/datalink.c $(SRC_FIRMWARE)/fixedwing_datalink.c
nps.srcs += $(SRC_FIRMWARE)/ap_downlink.c $(SRC_FIRMWARE)/fbw_downlink.c
# add normal ap and fbw sources
nps.CFLAGS += $(fbw_CFLAGS) $(ap_CFLAGS)
@@ -1,14 +0,0 @@
# Hey Emacs, this is a -*- makefile -*-
# include shared part for ap
ifeq ($(TARGET),ap)
include $(CFG_SHARED)/telemetry_bluegiga.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/fixedwing_datalink.c $(SRC_FIRMWARE)/ap_downlink.c
# avoid fbw_telemetry_mode error
ap.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
fbw.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
@@ -1,16 +0,0 @@
#
# The superbitRF module as telemetry downlink/uplink
#
#
# include shared part for ap
ifeq ($(TARGET),ap)
include $(CFG_SHARED)/telemetry_superbitrf.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/fixedwing_datalink.c $(SRC_FIRMWARE)/ap_downlink.c
# avoid fbw_telemetry_mode error
ap.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
fbw.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
@@ -1,14 +0,0 @@
# Hey Emacs, this is a -*- makefile -*-
# include shared part for ap
ifeq ($(TARGET),ap)
include $(CFG_SHARED)/telemetry_transparent.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/fixedwing_datalink.c $(SRC_FIRMWARE)/ap_downlink.c
# avoid fbw_telemetry_mode error
ap.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
fbw.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
@@ -1,14 +0,0 @@
# Hey Emacs, this is a -*- makefile -*-
#serial USB (e.g. /dev/ttyACM0)
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_transparent_usb.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/fixedwing_datalink.c $(SRC_FIRMWARE)/ap_downlink.c $(SRC_FIRMWARE)/fbw_downlink.c
# avoid fbw_telemetry_mode error
ap.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
fbw.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
@@ -1,14 +0,0 @@
# Hey Emacs, this is a -*- makefile -*-
# W5100 ethernet chip.
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_w5100.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/fixedwing_datalink.c $(SRC_FIRMWARE)/ap_downlink.c
# avoid fbw_telemetry_mode error
ap.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
fbw.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
@@ -1,15 +0,0 @@
# Hey Emacs, this is a -*- makefile -*-
# XBee modems in API mode
# include shared part for ap
ifeq ($(TARGET),ap)
include $(CFG_SHARED)/telemetry_xbee_api.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/fixedwing_datalink.c $(SRC_FIRMWARE)/ap_downlink.c
# avoid fbw_telemetry_mode error
ap.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
fbw.srcs += $(SRC_FIRMWARE)/fbw_downlink.c
@@ -1,9 +0,0 @@
#
# The bluegiga module as telemetry downlink/uplink for rotorcraft
#
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_bluegiga.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/rotorcraft_datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -1,11 +0,0 @@
#
# The superbitRF module as telemetry downlink/uplink
#
# include generic part
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_superbitrf.makefile
endif
# add rotorcraft specific files
ap.srcs += $(SRC_FIRMWARE)/rotorcraft_datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -1,12 +0,0 @@
#
# Expected from board file or overriden as xml param :
#
# MODEM_PORT
# MODEM_BAUD
#
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_transparent.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/rotorcraft_datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -1,8 +0,0 @@
#serial UDP
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_transparent_udp.makefile
endif
ap.srcs += subsystems/datalink/datalink.c $(SRC_FIRMWARE)/rotorcraft_datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -1,8 +0,0 @@
#serial USB (e.g. /dev/ttyACM0)
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_transparent_usb.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/rotorcraft_datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -1,13 +0,0 @@
# XBee modems in API mode
#
# Expected from board file or overriden as xml param :
#
# MODEM_PORT
# MODEM_BAUD
#
ifeq ($(TARGET), ap)
include $(CFG_SHARED)/telemetry_xbee_api.makefile
endif
ap.srcs += $(SRC_FIRMWARE)/rotorcraft_datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -62,6 +62,3 @@ endif
# for geo mag calculation
nps.srcs += math/pprz_geodetic_wmm2015.c
ifeq ($(TARGET), nps)
include $(CFG_SHARED)/telemetry_transparent_udp.makefile
endif
@@ -1,35 +0,0 @@
#
# The bluegiga module as telemetry downlink/uplink
#
# On Lisa-s, the Superbit-RF module can be replaced with a
# bluegiga-bluetooth 4 low power board. This subsystem puts
# the telemetry over this bluetooth 4 link.
#
# Bluegiga is a SPI-slave device without Chip select but with a compulsory DRDY
#
# Required:
# #define BLUEGIGA_SPI_DEV: the SPI device which MUST have a SLAVE mode without chipselect
#
# Optional: (defaults to SUPERBITRF DRDY)
# #define BLUEGIGA_DRDY_GPIO
# #define BLUEGIGA_DRDY_GPIO_PIN
# Include SPI if not yet included
include $(CFG_SHARED)/spi_master.makefile
# Set downlink to paparazzi transport over bluegiga protocol over SPI slave
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=bluegiga_p
ap.CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=BLUEGIGA
BLUEGIGA_SPI_DEV ?= SPI2
BLUEGIGA_SPI_DEV_LOWER=$(shell echo $(BLUEGIGA_SPI_DEV) | tr A-Z a-z)
ap.CFLAGS += -DUSE_$(BLUEGIGA_SPI_DEV)_SLAVE -DSPI_SLAVE -DBLUEGIGA_SPI_DEV=$(BLUEGIGA_SPI_DEV_LOWER)
# LED
MODEM_LED ?= none
ifneq ($(MODEM_LED),none)
ap.CFLAGS += -DMODEM_LED=$(MODEM_LED)
endif
ap.srcs += $(SRC_SUBSYSTEMS)/datalink/downlink.c subsystems/datalink/datalink.c $(SRC_SUBSYSTEMS)/datalink/bluegiga.c
ap.srcs += pprzlink/src/pprz_transport.c $(SRC_SUBSYSTEMS)/datalink/telemetry.c
@@ -1,3 +0,0 @@
$(TARGET).CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_TRANSPORT=ivy_tp -DDOWNLINK_DEVICE=ivy_tp
$(TARGET).srcs += pprzlink/src/ivy_transport.c
$(TARGET).srcs += subsystems/datalink/downlink.c subsystems/datalink/datalink.c subsystems/datalink/telemetry.c
@@ -1,10 +0,0 @@
#
# The superbitRF module as telemetry downlink/uplink
#
#
$(TARGET).CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=superbitrf
$(TARGET).CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=SUPERBITRF
$(TARGET).srcs += peripherals/cyrf6936.c
$(TARGET).srcs += subsystems/datalink/downlink.c subsystems/datalink/datalink.c subsystems/datalink/superbitrf.c pprzlink/src/pprz_transport.c subsystems/datalink/telemetry.c
@@ -1,17 +0,0 @@
#
# Expected from board file or overriden as xml param :
#
# MODEM_PORT
# MODEM_BAUD
#
PPRZ_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
PPRZ_MODEM_PORT_UPPER=$(shell echo $(MODEM_PORT) | tr a-z A-Z)
$(TARGET).CFLAGS += -DUSE_$(PPRZ_MODEM_PORT_UPPER)
$(TARGET).CFLAGS += -D$(PPRZ_MODEM_PORT_UPPER)_BAUD=$(MODEM_BAUD)
$(TARGET).CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(PPRZ_MODEM_PORT_LOWER) -DPPRZ_UART=$(PPRZ_MODEM_PORT_LOWER)
$(TARGET).CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ
$(TARGET).srcs += subsystems/datalink/downlink.c subsystems/datalink/datalink.c pprzlink/src/pprz_transport.c subsystems/datalink/telemetry.c
@@ -1,23 +0,0 @@
#serial UDP
include $(CFG_SHARED)/udp.makefile
MODEM_DEV ?= UDP0
MODEM_PORT_OUT ?= 4242
MODEM_PORT_IN ?= 4243
MODEM_BROADCAST ?= TRUE
UDP_MODEM_PORT_LOWER=$(shell echo $(MODEM_DEV) | tr A-Z a-z)
UDP_MODEM_PORT_UPPER=$(shell echo $(MODEM_DEV) | tr a-z A-Z)
MODEM_CFLAGS = -DUSE_$(UDP_MODEM_PORT_UPPER) -D$(UDP_MODEM_PORT_UPPER)_PORT_OUT=$(MODEM_PORT_OUT) -D$(UDP_MODEM_PORT_UPPER)_PORT_IN=$(MODEM_PORT_IN)
MODEM_CFLAGS += -D$(UDP_MODEM_PORT_UPPER)_BROADCAST=$(MODEM_BROADCAST) -D$(UDP_MODEM_PORT_UPPER)_HOST=$(MODEM_HOST)
TELEM_CFLAGS = -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(UDP_MODEM_PORT_LOWER) -DPPRZ_UART=$(UDP_MODEM_PORT_LOWER)
TELEM_CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ
$(TARGET).CFLAGS += $(MODEM_CFLAGS) $(TELEM_CFLAGS)
$(TARGET).srcs += subsystems/datalink/downlink.c subsystems/datalink/datalink.c pprzlink/src/pprz_transport.c subsystems/datalink/telemetry.c
@@ -1,20 +0,0 @@
#serial USB (e.g. /dev/ttyACM0)
$(TARGET).CFLAGS += -DDOWNLINK -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=usb_serial
$(TARGET).CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ -DUSE_USB_SERIAL
$(TARGET).CFLAGS += -DPERIODIC_TELEMETRY
$(TARGET).srcs += subsystems/datalink/downlink.c subsystems/datalink/datalink.c pprzlink/src/pprz_transport.c subsystems/datalink/telemetry.c
ifeq ($(ARCH), lpc21)
$(TARGET).srcs += $(SRC_ARCH)/usb_ser_hw.c $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbcontrol.c
$(TARGET).srcs += $(SRC_ARCH)/lpcusb/usbstdreq.c $(SRC_ARCH)/lpcusb/usbinit.c
else
ifeq ($(ARCH), stm32)
$(TARGET).srcs += $(SRC_ARCH)/usb_ser_hw.c
else
ifneq ($(ARCH), sim)
$(error telemetry_transparent_usb currently only implemented for the lpc21 and stm32)
endif
endif
endif
@@ -1,31 +0,0 @@
# Hey Emacs, this is a -*- makefile -*-
# W5100 ethernet chip.
W5100_IP ?= "192,168,25,47"
W5100_SUBNET ?= "255,255,255,0"
W5100_MULTICAST_IP ?= "224,1,1,11"
W5100_MULTICAST_PORT ?= "1234"
$(TARGET).CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=chip0
$(TARGET).CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=W5100
$(TARGET).CFLAGS += -DW5100_IP=$(W5100_IP) -DW5100_SUBNET=$(W5100_SUBNET) -DW5100_MULTICAST_IP=$(W5100_MULTICAST_IP) -DW5100_MULTICAST_PORT=$(W5100_MULTICAST_PORT)
$(TARGET).srcs += subsystems/datalink/downlink.c subsystems/datalink/datalink.c subsystems/datalink/w5100.c pprzlink/src/pprz_transport.c subsystems/datalink/telemetry.c
ifeq ($(ARCH), lpc21)
# only an issue of setting the DRDY pin in w5100.c, which is stm32 specific
$(error Not implemented for the LCP21x yet.)
$(TARGET).CFLAGS += -DUSE_SPI1
# default SPI device for W5100 is already SPI1
$(TARGET).CFLAGS += -DUSE_SPI_SLAVE0
$(TARGET).CFLAGS += -DW5100_SLAVE_IDX=0
else ifeq ($(ARCH), stm32)
# on extra SPI1 connector
$(TARGET).CFLAGS += -DUSE_SPI1
# default SPI device for W5100 is already SPI1
# Slave select configuration
# SLAVE1 is SS on external SPI1 connector (PA04)
$(TARGET).CFLAGS += -DUSE_SPI_SLAVE1
# default slave select for W5100 is already SLAVE1
#$(TARGET).CFLAGS += -DW5100_SLAVE_IDX=1
endif
@@ -1,17 +0,0 @@
# XBee modems in API mode
#
# Expected from board file or overriden as xml param :
#
# MODEM_PORT
# MODEM_BAUD
#
XBEE_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
XBEE_MODEM_PORT_UPPER=$(shell echo $(MODEM_PORT) | tr a-z A-Z)
$(TARGET).CFLAGS += -DUSE_$(XBEE_MODEM_PORT_UPPER)
$(TARGET).CFLAGS += -D$(XBEE_MODEM_PORT_UPPER)_BAUD=$(MODEM_BAUD) -DXBEE_BAUD=$(MODEM_BAUD)
$(TARGET).CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(XBEE_MODEM_PORT_LOWER) -DXBEE_UART=$(XBEE_MODEM_PORT_LOWER)
$(TARGET).CFLAGS += -DDOWNLINK_TRANSPORT=xbee_tp -DDATALINK=XBEE
$(TARGET).srcs += subsystems/datalink/downlink.c subsystems/datalink/datalink.c pprzlink/src/xbee_transport.c subsystems/datalink/telemetry.c
+1 -1
View File
@@ -67,7 +67,7 @@ COMMON_TEST_CFLAGS += -DUSE_LED
# pprz downlink/datalink
COMMON_TELEMETRY_CFLAGS = -DDOWNLINK -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ
COMMON_TELEMETRY_SRCS = subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c
COMMON_TELEMETRY_SRCS = subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c modules/datalink/pprz_dl.c
COMMON_TELEMETRY_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
COMMON_TELEMETRY_CFLAGS += -DUSE_$(MODEM_PORT) -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
+1 -1
View File
@@ -71,7 +71,7 @@ endif
# pprz downlink/datalink
COMMON_TELEMETRY_CFLAGS = -DDOWNLINK -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ
COMMON_TELEMETRY_SRCS = subsystems/datalink/downlink.c pprzlink/src/pprz_transport.c
COMMON_TELEMETRY_SRCS = subsystems/datalink/downlink.c pprzlink/src/pprz_transport.c modules/datalink/pprz_dl.c
# check if we are using UDP
ifneq (,$(findstring UDP, $(MODEM_DEV)))
+2 -1
View File
@@ -30,7 +30,8 @@
<!ATTLIST module
name CDATA #REQUIRED
dir CDATA #IMPLIED>
dir CDATA #IMPLIED
task CDATA #IMPLIED>
<!ATTLIST autoload
name CDATA #REQUIRED
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="sdlog" dir="loggers">
<doc>
<description>
Enable pprzlog binary prototol with downlink message system
</description>
</doc>
<header/>
<makefile>
<define name="DOWNLINK"/>
<file name="sdlog_tp.c"/>
<file name="pprzlog_transport.c" dir="pprzlink/src"/>
</makefile>
</module>
+66
View File
@@ -0,0 +1,66 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_bluegiga" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using PPRZ protocol over Bluegiga modules
Bluegiga is a SPI-slave device without Chip select but with a compulsory DRDY
Required:
BLUEGIGA_SPI_DEV: the SPI device which MUST have a SLAVE mode without chipselect
Optional: (defaults to SUPERBITRF DRDY)
BLUEGIGA_DRDY_GPIO
BLUEGIGA_DRDY_GPIO_PIN
On Lisa-s, the Superbit-RF module can be replaced with a bluegiga-bluetooth 4 low power board.
This module puts the telemetry over this bluetooth 4 link.
</description>
<configure name="BLUEGIGA_SPI_DEV" value="SPIx" description="SPI where the modem is connected to (SPI1, SPI2, etc)"/>
<configure name="MODEM_LED" value="none" description="LED number for modem status, 'none' to disable"/>
<define name="BLUEGIGA_DRDY_GPIO" value="GPIOX" description="GPIO port used for data ready pin"/>
<define name="BLUEGIGA_DRDY_GPIO_PIN" value="GPIOY" description="GPIO pin number used for data ready pin"/>
</doc>
<autoload name="telemetry" type="nps"/>
<autoload name="telemetry" type="sim"/>
<header>
<file name="bluegiga_dl.h"/>
</header>
<init fun="bluegiga_dl_init()"/>
<event fun="bluegiga_dl_event()"/>
<makefile target="!fbw|sim|nps">
<raw>
include $(CFG_SHARED)/spi_master.makefile
</raw>
<configure name="BLUEGIGA_SPI_DEV" default="SPI2" case="upper|lower"/>
<configure name="MODEM_LED" default="none"/>
<define name="USE_$(BLUEGIGA_SPI_DEV_UPPER)_SLAVE"/>
<define name="SPI_SLAVE"/>
<define name="BLUEGIGA_SPI_DEV" value="$(BLUEGIGA_SPI_DEV_LOWER)"/>
<define name="MODEM_LED" value="$(MODEM_LED)" cond="ifneq ($(MODEM_LED),none)"/>
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="bluegiga_p"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_bg_tp"/>
<define name="DATALINK" value="BLUEGIGA"/>
<file name="bluegiga_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
<file name="bluegiga.c" dir="subsystems/datalink"/>
</makefile>
<makefile target="ap" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|fbw" firmware="fixedwing">
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>
+1 -1
View File
@@ -1,6 +1,6 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_intermcu" dir="telemetry">
<module name="telemetry_intermcu" dir="telemetry" task="datalink">
<doc>
<description>Telemetry over InterMCU
This module transmits Telemetry of the process "InterMCU" from AP to FBW. The FBW then transmits this telemetry further through PPRZ over an UART.
+25
View File
@@ -0,0 +1,25 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_ivy" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using IVY
</description>
</doc>
<header>
<file name="ivy_dl.h"/>
</header>
<init fun="ivy_dl_init()"/>
<makefile>
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="ivy_tp"/>
<define name="DOWNLINK_TRANSPORT" value="ivy_tp"/>
<file name="ivy_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="ivy_transport.c" dir="pprzlink/src"/>
</makefile>
</module>
+56
View File
@@ -0,0 +1,56 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_nps" dir="datalink" task="datalink">
<doc>
<description>
Telemetry module for NPS simalation
Currently a simple copy of telemetry UDP but only for target nps
</description>
<configure name="MODEM_DEV" value="UDPx" description="UDP port used for communication"/>
<configure name="MODEM_HOST" value="192.168.1.255" description="IP address of the ground station (can be a broadcast address)"/>
<configure name="MODEM_PORT_OUT" value="4242" description="output UDP port"/>
<configure name="MODEM_PORT_IN" value="4243" description="input UDP port"/>
<configure name="MODEM_BROADCAST" value="TRUE|FALSE" description="UDP socket in broadcast mode"/>
</doc>
<header>
<file name="pprz_dl.h"/>
</header>
<init fun="pprz_dl_init()"/>
<event fun="pprz_dl_event()"/>
<makefile target="nps">
<configure name="MODEM_DEV" default="UDP0" case="upper|lower"/>
<configure name="MODEM_PORT_OUT" default="4242"/>
<configure name="MODEM_PORT_IN" default="4243"/>
<configure name="MODEM_BROADCAST" default="TRUE"/>
<define name="USE_$(MODEM_DEV_UPPER)"/>
<define name="$(MODEM_DEV_UPPER)_HOST" value="$(MODEM_HOST)"/>
<define name="$(MODEM_DEV_UPPER)_PORT_OUT" value="$(MODEM_PORT_OUT)"/>
<define name="$(MODEM_DEV_UPPER)_PORT_IN" value="$(MODEM_PORT_IN)"/>
<define name="$(MODEM_DEV_UPPER)_BROADCAST" value="$(MODEM_BROADCAST)"/>
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="$(MODEM_DEV_LOWER)"/>
<define name="PPRZ_UART" value="$(MODEM_DEV_LOWER)"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_tp"/>
<define name="DATALINK" value="PPRZ"/>
<file name="pprz_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
<raw>
include $(CFG_SHARED)/udp.makefile
</raw>
</makefile>
<makefile target="nps" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="nps" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>
+27
View File
@@ -0,0 +1,27 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_sim" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using IVY for basic FW simulator
only a copy of telemetry ivy limited to sim target for now
</description>
</doc>
<header>
<file name="ivy_dl.h"/>
</header>
<init fun="ivy_dl_init()"/>
<makefile target="sim">
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="ivy_tp"/>
<define name="DOWNLINK_TRANSPORT" value="ivy_tp"/>
<file name="ivy_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="ivy_transport.c" dir="pprzlink/src"/>
</makefile>
</module>
+41
View File
@@ -0,0 +1,41 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_superbitrf" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using PPRZ protocol over SuperbitRF module
</description>
</doc>
<autoload name="telemetry" type="nps"/>
<autoload name="telemetry" type="sim"/>
<header>
<file name="superbitrf.h" dir="subsystems/datalink"/>
</header>
<init fun="superbitrf_dl_init()"/>
<event fun="superbitrf_dl_event()"/>
<makefile target="!fbw|sim|nps">
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="superbitrf"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_srf_tp"/>
<define name="DATALINK" value="SUPERBITRF"/>
<file name="superbitrf.c" dir="subsystems/datalink"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
<file name="cyrf6936.c" dir="peripherals"/>
</makefile>
<makefile target="ap" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|fbw" firmware="fixedwing">
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>
+10 -3
View File
@@ -1,16 +1,22 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_transparent" dir="datalink">
<module name="telemetry_transparent" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using PPRZ protocol over UART
Currently used as a makefile wrapper over the telemetry_transparent subsystem
</description>
<configure name="MODEM_PORT" value="UARTx" description="UART where the modem is connected to (UART1, UART2, etc"/>
<configure name="MODEM_PORT" value="UARTx" description="UART where the modem is connected to (UART1, UART2, etc)"/>
<configure name="MODEM_BAUD" value="B57600" description="UART baud rate"/>
</doc>
<header/>
<autoload name="telemetry" type="nps"/>
<autoload name="telemetry" type="sim"/>
<header>
<file name="pprz_dl.h"/>
</header>
<init fun="pprz_dl_init()"/>
<event fun="pprz_dl_event()"/>
<makefile target="!fbw|sim|nps">
<configure name="MODEM_PORT" case="upper|lower"/>
<define name="USE_$(MODEM_PORT_UPPER)"/>
@@ -21,6 +27,7 @@
<define name="PPRZ_UART" value="$(MODEM_PORT_LOWER)"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_tp"/>
<define name="DATALINK" value="PPRZ"/>
<file name="pprz_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
@@ -0,0 +1,57 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_udp" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using PPRZ protocol over UDP
</description>
<configure name="MODEM_DEV" value="UDPx" description="UDP port used for communication"/>
<configure name="MODEM_HOST" value="192.168.1.255" description="IP address of the ground station (can be a broadcast address)"/>
<configure name="MODEM_PORT_OUT" value="4242" description="output UDP port"/>
<configure name="MODEM_PORT_IN" value="4243" description="input UDP port"/>
<configure name="MODEM_BROADCAST" value="TRUE|FALSE" description="UDP socket in broadcast mode"/>
</doc>
<autoload name="telemetry" type="sim"/>
<header>
<file name="pprz_dl.h"/>
</header>
<init fun="pprz_dl_init()"/>
<event fun="pprz_dl_event()"/>
<makefile target="!fbw|sim">
<configure name="MODEM_DEV" default="UDP0" case="upper|lower"/>
<configure name="MODEM_PORT_OUT" default="4242"/>
<configure name="MODEM_PORT_IN" default="4243"/>
<configure name="MODEM_BROADCAST" default="TRUE"/>
<define name="USE_$(MODEM_DEV_UPPER)"/>
<define name="$(MODEM_DEV_UPPER)_HOST" value="$(MODEM_HOST)"/>
<define name="$(MODEM_DEV_UPPER)_PORT_OUT" value="$(MODEM_PORT_OUT)"/>
<define name="$(MODEM_DEV_UPPER)_PORT_IN" value="$(MODEM_PORT_IN)"/>
<define name="$(MODEM_DEV_UPPER)_BROADCAST" value="$(MODEM_BROADCAST)"/>
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="$(MODEM_DEV_LOWER)"/>
<define name="PPRZ_UART" value="$(MODEM_DEV_LOWER)"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_tp"/>
<define name="DATALINK" value="PPRZ"/>
<file name="pprz_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
<raw>
include $(CFG_SHARED)/udp.makefile
</raw>
</makefile>
<makefile target="ap|nps" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|fbw|nps" firmware="fixedwing">
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|nps" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>
@@ -0,0 +1,49 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_transparent_usb" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using PPRZ protocol over serial USB (e.g. /dev/ttyACM0)
</description>
</doc>
<autoload name="telemetry" type="nps"/>
<autoload name="telemetry" type="sim"/>
<header>
<file name="pprz_dl.h"/>
</header>
<init fun="pprz_dl_init()"/>
<event fun="pprz_dl_event()"/>
<makefile target="!fbw|sim|nps">
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="USE_USB_SERIAL"/>
<define name="DOWNLINK_DEVICE" value="usb_serial"/>
<define name="PPRZ_UART" value="usb_serial"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_tp"/>
<define name="DATALINK" value="PPRZ"/>
<file name="pprz_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
<file_arch name="usb_ser_hw.c" dir="."/>
<raw>
ifeq ($(ARCH), lpc21)
$(TARGET).srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbcontrol.c
$(TARGET).srcs += $(SRC_ARCH)/lpcusb/usbstdreq.c $(SRC_ARCH)/lpcusb/usbinit.c
endif
</raw>
</makefile>
<makefile target="ap" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|fbw" firmware="fixedwing">
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>
+61
View File
@@ -0,0 +1,61 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_w5100" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using PPRZ protocol over W5100 Wifi module
W5100 is connected with a SPI link to the autopilot
</description>
<configure name="W5100_SPI_DEV" value="SPI1" description="SPI port used for communication"/>
<configure name="W5100_SLAVE_IDX" value="1" description="SPI slave number"/>
<configure name="W5100_IP" value="192,168,25,47" description="IP address"/>
<configure name="W5100_SUBNET" value="255,255,255,0" description="network mask"/>
<configure name="W5100_MULTICAST_IP" value="224,1,1,11" description="multicast IP address"/>
<configure name="W5100_MULTICAST_PORT" value="1234" description="multicast IP port"/>
<define name="W5100_DRDY_GPIO" value="GPIOX" description="GPIO port used for data ready pin"/>
<define name="W5100_DRDY_GPIO_PIN" value="GPIOY" description="GPIO pin number used for data ready pin"/>
</doc>
<autoload name="telemetry" type="sim"/>
<header>
<file name="w5100.h" dir="subsystems/datalink"/>
</header>
<init fun="w5100_init()"/>
<event fun="w5100_event()"/>
<makefile target="!fbw|sim">
<configure name="W5100_SPI_DEV" default="SPI1" case="upper|lower"/>
<configure name="W5100_SLAVE_IDX" default="1"/>
<configure name="W5100_IP" default="192,168,25,47"/>
<configure name="W5100_SUBNET" default="255,255,255,0"/>
<configure name="W5100_MULTICAST_IP" default="224,1,1,11"/>
<configure name="W5100_MULTICAST_PORT" default="1234"/>
<define name="USE_$(W5100_SPI_DEV_UPPER)"/>
<define name="USE_SPI_SLAVE$(W5100_SLAVE_IDX)"/>
<define name="W5100_IP" value="$(W5100_IP)"/>
<define name="W5100_SUBNET" value="$(W5100_SUBNET)"/>
<define name="W5100_MULTICAST_IP" value="$(W5100_MULTICAST_IP)"/>
<define name="W5100_MULTICAST_PORT" value="$(W5100_MULTICAST_PORT)"/>
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="chip0"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_w5100_tp"/>
<define name="DATALINK" value="W5100"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="pprz_transport.c" dir="pprzlink/src"/>
<file name="w5100.c" dir="subsystems/datalink"/>
</makefile>
<makefile target="ap|nps" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|fbw|nps" firmware="fixedwing">
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|nps" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>
+47
View File
@@ -0,0 +1,47 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="telemetry_xbee_api" dir="datalink" task="datalink">
<doc>
<description>
Telemetry using XBEE API protocol over UART
</description>
<configure name="MODEM_PORT" value="UARTx" description="UART where the modem is connected to (UART1, UART2, etc)"/>
<configure name="MODEM_BAUD" value="B57600" description="UART baud rate"/>
</doc>
<autoload name="telemetry" type="nps"/>
<autoload name="telemetry" type="sim"/>
<header>
<file name="xbee_dl.h"/>
</header>
<init fun="xbee_dl_init()"/>
<event fun="xbee_dl_event()"/>
<makefile target="!fbw|sim|nps">
<configure name="MODEM_PORT" case="upper|lower"/>
<define name="USE_$(MODEM_PORT_UPPER)"/>
<define name="$(MODEM_PORT_UPPER)_BAUD" value="$(MODEM_BAUD)"/>
<define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/>
<define name="DOWNLINK_DEVICE" value="$(MODEM_PORT_LOWER)"/>
<define name="XBEE_UART" value="$(MODEM_PORT_LOWER)"/>
<define name="XBEE_BAUD" value="$(MODEM_BAUD)"/>
<define name="DOWNLINK_TRANSPORT" value="xbee_tp"/>
<define name="DATALINK" value="XBEE"/>
<file name="xbee_dl.c"/>
<file name="downlink.c" dir="subsystems/datalink"/>
<file name="datalink.c" dir="subsystems/datalink"/>
<file name="telemetry.c" dir="subsystems/datalink"/>
<file name="xbee_transport.c" dir="pprzlink/src"/>
</makefile>
<makefile target="ap" firmware="fixedwing">
<file name="fixedwing_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="ap_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap|fbw" firmware="fixedwing">
<file name="fbw_downlink.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="ap" firmware="rotorcraft">
<file name="rotorcraft_datalink.c" dir="$(SRC_FIRMWARE)"/>
<file name="rotorcraft_telemetry.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
</module>
@@ -1,86 +0,0 @@
#include "audio_telemetry.h"
#include "types.h"
#include "armVIC.h"
uint8_t audio_telemetry_nb_ovrn;
uint8_t tx_head;
volatile uint8_t tx_tail;
uint8_t tx_buf[ TX_BUF_SIZE ];
uint8_t ck_a, ck_b;
uint8_t tx_byte;
uint8_t tx_bit_idx;
#define NB_STATE 2
#define NB_PHASE 2
static const uint16_t audio_telemetry_sample[NB_STATE][NB_PHASE][SAMPLES_PER_PERIOD] = {
{ {512, 1023, 512, 1},
{512 , 1 , 512 , 1023}
},
{ {512, 874, 1023, 874},
{512 , 150 , 1 , 150}
}
};
static uint8_t audio_telemetry_sample_idx = 0;
static uint8_t audio_telemetry_phase = 0;
static inline uint8_t get_next_bit(void)
{
uint8_t ret;
/* start bit */
if (tx_bit_idx == 0) {
ret = 0;
}
/* data bits */
else if (tx_bit_idx < 9) {
ret = tx_byte & 0x01;
tx_byte >>= 1;
}
/* stop_bit */
else {
ret = 1;
}
tx_bit_idx++;
if (tx_bit_idx >= 10) {
/* if we have nothing left to transmit */
if (tx_head == tx_tail) {
/* hack to stay with data = 1 */
tx_bit_idx--;
} else {
/* else load next byte */
tx_byte = tx_buf[tx_tail];
tx_bit_idx = 0;
tx_tail++;
if (tx_tail >= TX_BUF_SIZE) {
tx_tail = 0;
}
}
}
return ret;
}
void TIMER1_ISR(void)
{
ISR_ENTRY();
static uint8_t audio_telemetry_bit;
DACR = audio_telemetry_sample[audio_telemetry_bit][audio_telemetry_phase][audio_telemetry_sample_idx] << 6;
audio_telemetry_sample_idx++;
if (audio_telemetry_sample_idx == SAMPLES_PER_PERIOD) {
audio_telemetry_sample_idx = 0;
audio_telemetry_phase ^= audio_telemetry_bit;
audio_telemetry_bit = get_next_bit();
}
/* clear interrupt */
T1IR = TIR_MR0I;
VICVectAddr = 0x00000000;
ISR_EXIT();
}
@@ -1,60 +0,0 @@
#ifndef AUDIO_TELEMETRY_HW_H
#define AUDIO_TELEMETRY_HW_H
#include "LPC21xx.h"
#include BOARD_CONFIG
void TIMER1_ISR(void) __attribute__((naked));
/* T1 prescaler, set T1_CLK to 5MHz, T1_CLK = PCLK / T1PCLK_DIV */
#if (PCLK == 15000000)
#define T1_PCLK_DIV 3
#else
#if (PCLK == 30000000)
#define T1_PCLK_DIV 6
#else
#if (PCLK == 60000000)
#define T1_PCLK_DIV 12
#else
#error unknown PCLK frequency
#endif
#endif
#endif
#define SAMPLES_PER_PERIOD 4
#define SAMPLE_PERIOD (PCLK/4762/SAMPLES_PER_PERIOD/T1_PCLK_DIV)
static inline void audio_telemetry_init(void)
{
/* turn on DAC pins */
PINSEL1 &= 1 << 19;
PINSEL1 |= ~(1 << 18);
/* reset & disable timer 1 */
T1TCR = TCR_RESET;
/* set the prescale divider */
T1PR = T1_PCLK_DIV - 1;
/* select TIMER1 as IRQ */
VICIntSelect &= ~VIC_BIT(VIC_TIMER1);
/* enable TIMER1 interrupt */
VICIntEnable = VIC_BIT(VIC_TIMER1);
/* on slot vic slot 1 */
VICVectCntl1 = VIC_ENABLE | VIC_TIMER1;
/* address of the ISR */
VICVectAddr1 = (uint32_t)TIMER1_ISR;
/* trigger initial match in a long time from now */
T1MR0 = SAMPLE_PERIOD;
/* enable interrupt on match register 0 */
T1MCR |= TMCR_MR0_I | TMCR_MR0_R;
/* enable timer 1 */
T1TCR = TCR_ENABLE;
}
#define AUDIO_TELEMETRY_CHECK_RUNNING() {}
#endif /* AUDIO_TELEMETRY_HW_H */
@@ -105,6 +105,8 @@ static inline void main_init(void)
downlink_init();
modules_init();
register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_AUTOPILOT_VERSION, send_autopilot_version);
register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_ALIVE, send_alive);
register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_COMMANDS, send_commands);
@@ -131,13 +133,14 @@ static inline void main_periodic_task(void)
RunOnceEvery(10, { LED_PERIODIC();});
RunOnceEvery(PERIODIC_FREQUENCY, { datalink_time++; });
periodic_telemetry_send_Main(DefaultPeriodic, &(DefaultChannel).trans_tx, &(DefaultDevice).device);
modules_periodic_task();
}
static inline void main_event_task(void)
{
mcu_event();
modules_event_task();
DatalinkEvent();
}
static void send_alive(struct transport_tx *trans, struct link_device *dev)
+2 -17
View File
@@ -68,16 +68,12 @@ PRINT_CONFIG_MSG_VALUE("USE_BARO_BOARD is TRUE, reading onboard baro: ", BARO_BO
#include "generated/flight_plan.h"
// datalink & telemetry
#if DATALINK || SITL
#include "subsystems/datalink/datalink.h"
#include "subsystems/datalink/downlink.h"
#endif
#if PERIODIC_TELEMETRY
#include "subsystems/datalink/telemetry.h"
#endif
#include "subsystems/settings.h"
// modules & settings
#include "subsystems/settings.h"
#include "generated/modules.h"
#include "generated/settings.h"
#if defined RADIO_CONTROL || defined RADIO_CONTROL_AUTO1
@@ -208,9 +204,6 @@ void init_ap(void)
#if defined MCU_SPI_LINK || defined MCU_UART_LINK || defined MCU_CAN_LINK
link_mcu_init();
#endif
#if USE_AUDIO_TELEMETRY
audio_telemetry_init();
#endif
/************ Internal status ***************/
autopilot_init();
@@ -240,11 +233,6 @@ void init_ap(void)
downlink_init();
#endif
#if defined AEROCOMM_DATA_PIN
IO0DIR |= _BV(AEROCOMM_DATA_PIN);
IO0SET = _BV(AEROCOMM_DATA_PIN);
#endif
/* set initial trim values.
* these are passed to fbw via inter_mcu.
*/
@@ -689,8 +677,7 @@ void event_task_ap(void)
BaroEvent();
#endif
DatalinkEvent();
modules_event_task();
#if defined MCU_SPI_LINK || defined MCU_UART_LINK
link_mcu_event_task();
@@ -702,8 +689,6 @@ void event_task_ap(void)
telecommand_task();
}
modules_event_task();
#ifdef AHRS_TRIGGERED_ATTITUDE_LOOP
if (new_ins_attitude > 0) {
attitude_loop();

Some files were not shown because too many files have changed in this diff Show More