Merge pull request #1140 from paparazzi/link_device

Use the generic device interface for receiving data stream (transmission was already done).

Tested on stm32f4 (xbee_api, ublox over uart, log), lpc21 (transparant), ardrone2 (udp, ublox over ftdi)

This is also a necessary step to continue the rt_chibios integration due to conflicting definition of peripherals (when used with uppercase).
This commit is contained in:
Felix Ruess
2015-03-23 18:14:15 +01:00
110 changed files with 734 additions and 1348 deletions
+3 -3
View File
@@ -91,7 +91,7 @@ demo5.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c
demo5.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=uart0
demo5.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c
demo5.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=UART0
demo5.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=uart0
#
@@ -117,7 +117,7 @@ demo6.srcs += $(SRC_ARCH)/usb_ser_hw.c
demo6.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=usb_serial
demo6.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c
//demo6.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=UART0
//demo6.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=uart0
@@ -137,7 +137,7 @@ test_spk.CFLAGS += -DUSE_LED
test_spk.srcs += $(SRC_ARCH)/armVIC.c
test_spk.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DUSE_USB_SERIAL
test_spk.CFLAGS += -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=UsbS -DDATALINK=PPRZ
test_spk.CFLAGS += -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=usb_serial -DDATALINK=PPRZ
test_spk.srcs += subsystems/datalink/downlink.c $(SRC_ARCH)/usb_ser_hw.c subsystems/datalink/pprz_transport.c
test_spk.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbcontrol.c
test_spk.srcs += $(SRC_ARCH)/lpcusb/usbstdreq.c $(SRC_ARCH)/lpcusb/usbinit.c
+2 -2
View File
@@ -27,7 +27,7 @@ ap.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c
ap.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=uart0
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c
ap.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=UART0
ap.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=uart0
#ap.srcs += $(BOOZ)/booz_datalink.c
ap.srcs += $(WIND_TUNNEL)/wt_servo.c
@@ -57,7 +57,7 @@ mb.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c
mb.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=uart0
mb.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c
mb.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=UART0
mb.CFLAGS += -DDATALINK=PPRZ -DPPRZ_UART=uart0
mb.srcs += $(WIND_TUNNEL)/wt_servo.c
+1 -1
View File
@@ -108,7 +108,7 @@ setup_actuators.srcs += mcu_periph/uart.c $(SRC_ARCH)/mcu_periph/uart_arch.c
setup_actuators.CFLAGS += -DUSE_$(MODEM_PORT)
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=$(MODEM_PORT)
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 subsystems/datalink/pprz_transport.c
@@ -1,5 +1,8 @@
FBW_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
FBW_AP_PORT_LOWER=$(shell echo $(AUTOPILOT_PORT) | tr A-Z a-z)
fbw.srcs += firmwares/fixedwing/fbw_datalink.c
fbw.CFLAGS += -DFBW_DATALINK
fbw.CFLAGS += -DMODEM_LINK=$(MODEM_PORT) -DUSE_$(MODEM_PORT) -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
fbw.CFLAGS += -DAUTOPILOT_LINK=$(AUTOPILOT_PORT) -DUSE_$(AUTOPILOT_PORT) -D$(AUTOPILOT_PORT)_BAUD=$(MODEM_BAUD)
fbw.CFLAGS += -DMODEM_LINK=$(FBW_MODEM_PORT_LOWER) -DUSE_$(MODEM_PORT) -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
fbw.CFLAGS += -DAUTOPILOT_LINK=$(FBW_AP_PORT_LOWER) -DUSE_$(AUTOPILOT_PORT) -D$(AUTOPILOT_PORT)_BAUD=$(MODEM_BAUD)
@@ -3,9 +3,10 @@
# Furuno NMEA GPS unit
GPS_LED ?= none
FURUNO_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS -DGPS_USE_LATLONG
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(FURUNO_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
ap.CFLAGS += -DNMEA_PARSE_PROP
@@ -3,9 +3,10 @@
# Mediatek MT3329, DIYDrones V1.4/1.6 protocol
GPS_LED ?= none
MTK_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS -DGPS_CONFIGURE -DGPS_USE_LATLONG
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(MTK_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -3,9 +3,10 @@
# NMEA GPS unit
GPS_LED ?= none
NMEA_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS -DGPS_USE_LATLONG
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(NMEA_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -1,9 +1,10 @@
# Hey Emacs, this is a -*- makefile -*-
GPS_LED ?= none
SKYTRAQ_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS -DGPS_USE_LATLONG
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(SKYTRAQ_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -2,9 +2,10 @@
# UBlox LEA 5H
GPS_LED ?= none
UBX_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS -DUBX -DGPS_USE_LATLONG
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(UBX_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -2,9 +2,10 @@
# UBlox LEA 4P
GPS_LED ?= none
UBX_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS -DUBX
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(UBX_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -63,6 +63,6 @@ ifndef XSENS_UART_BAUD
endif
ap.CFLAGS += -DUSE_UART$(XSENS_UART_NR)
ap.CFLAGS += -DINS_LINK=UART$(XSENS_UART_NR)
ap.CFLAGS += -DINS_LINK=uart$(XSENS_UART_NR)
ap.CFLAGS += -DUART$(XSENS_UART_NR)_BAUD=$(XSENS_UART_BAUD)
ap.CFLAGS += -DXSENS_OUTPUT_MODE=0x1836
@@ -25,7 +25,7 @@ endif
#B115200
ap.CFLAGS += -DUSE_UART$(XSENS_UART_NR)
ap.CFLAGS += -DINS_LINK=UART$(XSENS_UART_NR)
ap.CFLAGS += -DINS_LINK=uart$(XSENS_UART_NR)
ap.CFLAGS += -DUART$(XSENS_UART_NR)_BAUD=$(XSENS_UART_BAUD)
ap.CFLAGS += -DXSENS_OUTPUT_MODE=0x1836
ap.srcs += $(SRC_SUBSYSTEMS)/ins.c
@@ -21,7 +21,7 @@ ifndef XSENS_UART_BAUD
endif
ap.CFLAGS += -DUSE_UART$(XSENS_UART_NR)
ap.CFLAGS += -DINS_LINK=UART$(XSENS_UART_NR)
ap.CFLAGS += -DINS_LINK=uart$(XSENS_UART_NR)
ap.CFLAGS += -DUART$(XSENS_UART_NR)_BAUD=$(XSENS_UART_BAUD)
ap.CFLAGS += -DXSENS_OUTPUT_MODE=0x1836
ap.srcs += $(SRC_SUBSYSTEMS)/ins.c
@@ -8,15 +8,13 @@ $(error Using intermcu via UART, so dual mcu with separate fbw. Please add <conf
endif
ifeq ($(TARGET),fbw)
ifeq ($(INTERMCU_PORT),none)
INTERMCU_PORT = UART2
endif
fbw.CFLAGS += -DINTERMCU_LINK=$(INTERMCU_PORT) -DUSE_$(INTERMCU_PORT) -D$(INTERMCU_PORT)_BAUD=B57600
INTERMCU_PORT ?= UART2
INTERMCU_PORT_LOWER = $(shell echo $(INTERMCU_PORT) | tr A-Z a-z)
fbw.CFLAGS += -DINTERMCU_LINK=$(INTERMCU_PORT_LOWER) -DUSE_$(INTERMCU_PORT) -D$(INTERMCU_PORT)_BAUD=B57600
else
ifeq ($(INTERMCU_PORT),none)
INTERMCU_PORT = UART5
endif
ap.CFLAGS += -DINTERMCU_LINK=$(INTERMCU_PORT) -DUSE_$(INTERMCU_PORT) -D$(INTERMCU_PORT)_BAUD=B57600
INTERMCU_PORT ?= UART5
INTERMCU_PORT_LOWER = $(shell echo $(INTERMCU_PORT) | tr A-Z a-z)
ap.CFLAGS += -DINTERMCU_LINK=$(INTERMCU_PORT_LOWER) -DUSE_$(INTERMCU_PORT) -D$(INTERMCU_PORT)_BAUD=B57600
endif
ifneq ($(TARGET),sim)
@@ -2,9 +2,6 @@
# The superbitRF module as telemetry downlink/uplink
#
#
ap.CFLAGS += -DUSE_$(MODEM_PORT)
ap.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_FBW_DEVICE=superbitrf -DDOWNLINK_AP_DEVICE=superbitrf
ap.CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=SUPERBITRF -DDefaultPeriodic='&telemetry_Ap'
#ap.CFLAGS += -DUSE_SUPERBITRF -DUSE_SPI2 -DUSE_SPI_SLAVE2
@@ -4,7 +4,7 @@ PPRZ_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
telemetry_CFLAGS = -DUSE_$(MODEM_PORT)
telemetry_CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
telemetry_CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(PPRZ_MODEM_PORT_LOWER) -DPPRZ_UART=$(MODEM_PORT)
telemetry_CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(PPRZ_MODEM_PORT_LOWER) -DPPRZ_UART=$(PPRZ_MODEM_PORT_LOWER)
telemetry_CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ -DDefaultPeriodic='&telemetry_Ap'
telemetry_srcs = subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c subsystems/datalink/telemetry.c
@@ -2,7 +2,7 @@
#serial USB (e.g. /dev/ttyACM0)
telemetry_CFLAGS = -DDOWNLINK -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=UsbS
telemetry_CFLAGS = -DDOWNLINK -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=usb_serial
telemetry_CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ -DUSE_USB_SERIAL
telemetry_CFLAGS += -DDefaultPeriodic='&telemetry_Ap'
telemetry_srcs = subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c subsystems/datalink/telemetry.c
@@ -7,7 +7,7 @@ XBEE_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_$(MODEM_PORT)
ap.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD) -DXBEE_BAUD=$(MODEM_BAUD)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(XBEE_MODEM_PORT_LOWER) -DXBEE_UART=$(MODEM_PORT)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(XBEE_MODEM_PORT_LOWER) -DXBEE_UART=$(XBEE_MODEM_PORT_LOWER)
ap.CFLAGS += -DDOWNLINK_TRANSPORT=xbee_tp -DDATALINK=XBEE -DDefaultPeriodic='&telemetry_Ap'
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/xbee.c subsystems/datalink/telemetry.c
ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/ap_downlink.c
@@ -2,9 +2,10 @@
# Furuno NMEA GPS unit
FURUNO_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(FURUNO_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
ap.CFLAGS += -DNMEA_PARSE_PROP
@@ -2,9 +2,10 @@
# NMEA GPS unit
NMEA_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(NMEA_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -3,9 +3,10 @@
# Sirf GPS unit
GPS_LED ?= none
SIRF_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(SIRF_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -1,9 +1,10 @@
# Hey Emacs, this is a -*- makefile -*-
GPS_LED ?= none
SKYTRAQ_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_GPS
ap.CFLAGS += -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DGPS_LINK=$(SKYTRAQ_GPS_PORT_LOWER)
ap.CFLAGS += -DUSE_$(GPS_PORT)
ap.CFLAGS += -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
@@ -1,13 +1,14 @@
# Hey Emacs, this is a -*- makefile -*-
GPS_LED ?= none
UBX_GPS_PORT_LOWER=$(shell echo $(GPS_PORT) | tr A-Z a-z)
ap.srcs += $(SRC_SUBSYSTEMS)/gps.c
ap.CFLAGS += -DGPS_TYPE_H=\"subsystems/gps/gps_ubx.h\"
ap.srcs += $(SRC_SUBSYSTEMS)/gps/gps_ubx.c
ap.CFLAGS += -DUSE_$(GPS_PORT) -D$(GPS_PORT)_BAUD=$(GPS_BAUD)
ap.CFLAGS += -DUSE_GPS -DGPS_LINK=$(GPS_PORT)
ap.CFLAGS += -DUSE_GPS -DGPS_LINK=$(UBX_GPS_PORT_LOWER)
ifneq ($(GPS_LED),none)
ap.CFLAGS += -DGPS_LED=$(GPS_LED)
@@ -2,9 +2,6 @@
# The superbitRF module as telemetry downlink/uplink
#
#
ap.CFLAGS += -DUSE_$(MODEM_PORT)
ap.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=superbitrf
ap.CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=SUPERBITRF
ap.CFLAGS += -DDefaultPeriodic='&telemetry_Main'
@@ -10,7 +10,7 @@ PPRZ_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_$(MODEM_PORT)
ap.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(PPRZ_MODEM_PORT_LOWER) -DPPRZ_UART=$(MODEM_PORT)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(PPRZ_MODEM_PORT_LOWER) -DPPRZ_UART=$(PPRZ_MODEM_PORT_LOWER)
ap.CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ -DDefaultPeriodic='&telemetry_Main'
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c subsystems/datalink/telemetry.c
ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -14,7 +14,7 @@ UDP_MODEM_PORT_LOWER=$(shell echo $(MODEM_DEV) | tr A-Z a-z)
MODEM_CFLAGS = -DUSE_$(MODEM_DEV) -D$(MODEM_DEV)_PORT_OUT=$(MODEM_PORT_OUT) -D$(MODEM_DEV)_PORT_IN=$(MODEM_PORT_IN)
MODEM_CFLAGS += -D$(MODEM_DEV)_BROADCAST=$(MODEM_BROADCAST) -D$(MODEM_DEV)_HOST=\"$(MODEM_HOST)\"
TELEM_CFLAGS = -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(UDP_MODEM_PORT_LOWER) -DPPRZ_UART=$(MODEM_DEV)
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 -DDefaultPeriodic='&telemetry_Main'
@@ -2,7 +2,7 @@
#serial USB (e.g. /dev/ttyACM0)
ifeq ($(ARCH), lpc21)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=UsbS
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=usb_serial
ap.CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ -DUSE_USB_SERIAL -DDefaultPeriodic='&telemetry_Main'
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c subsystems/datalink/telemetry.c
ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -10,7 +10,7 @@ ap.srcs += $(SRC_ARCH)/usb_ser_hw.c $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/l
ap.srcs += $(SRC_ARCH)/lpcusb/usbstdreq.c $(SRC_ARCH)/lpcusb/usbinit.c
else
ifeq ($(ARCH), stm32)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=UsbS
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=usb_serial -DPPRZ_UART=usb_serial
ap.CFLAGS += -DDOWNLINK_TRANSPORT=pprz_tp -DDATALINK=PPRZ -DUSE_USB_SERIAL -DDefaultPeriodic='&telemetry_Main'
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c subsystems/datalink/telemetry.c
ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -11,7 +11,7 @@ XBEE_MODEM_PORT_LOWER=$(shell echo $(MODEM_PORT) | tr A-Z a-z)
ap.CFLAGS += -DUSE_$(MODEM_PORT)
ap.CFLAGS += -D$(MODEM_PORT)_BAUD=$(MODEM_BAUD) -DXBEE_BAUD=$(MODEM_BAUD)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(XBEE_MODEM_PORT_LOWER) -DXBEE_UART=$(MODEM_PORT)
ap.CFLAGS += -DDOWNLINK -DPERIODIC_TELEMETRY -DDOWNLINK_DEVICE=$(XBEE_MODEM_PORT_LOWER) -DXBEE_UART=$(XBEE_MODEM_PORT_LOWER)
ap.CFLAGS += -DDOWNLINK_TRANSPORT=xbee_tp -DDATALINK=XBEE -DDefaultPeriodic='&telemetry_Main'
ap.srcs += subsystems/datalink/downlink.c subsystems/datalink/xbee.c subsystems/datalink/telemetry.c
ap.srcs += $(SRC_FIRMWARE)/datalink.c $(SRC_FIRMWARE)/rotorcraft_telemetry.c
@@ -7,6 +7,7 @@ endif
ifndef UM6_BAUD
UM6_BAUD=B115200
endif
UM6_PORT_LOWER=$(shell echo $(UM6_PORT) | tr A-Z a-z)
IMU_UM6_CFLAGS += -DUSE_IMU
IMU_UM6_CFLAGS += -DIMU_TYPE_H=\"imu/imu_um6.h\"
@@ -14,7 +15,7 @@ IMU_UM6_SRCS += $(SRC_SUBSYSTEMS)/imu.c
IMU_UM6_SRCS += $(SRC_SUBSYSTEMS)/imu/imu_um6.c
IMU_UM6_CFLAGS += -DUSE_$(UM6_PORT) -D$(UM6_PORT)_BAUD=$(UM6_BAUD)
IMU_UM6_CFLAGS += -DUM6_LINK=$(UM6_PORT)
IMU_UM6_CFLAGS += -DUM6_LINK=$(UM6_PORT_LOWER)
ap.CFLAGS += $(IMU_UM6_CFLAGS)
ap.srcs += $(IMU_UM6_SRCS)
+2 -2
View File
@@ -82,7 +82,7 @@ UDP_MODEM_PORT_LOWER=$(shell echo $(MODEM_DEV) | tr A-Z a-z)
COMMON_TELEMETRY_CFLAGS += -DUSE_$(MODEM_DEV) -D$(MODEM_DEV)_PORT_OUT=$(MODEM_PORT_OUT) -D$(MODEM_DEV)_PORT_IN=$(MODEM_PORT_IN)
COMMON_TELEMETRY_CFLAGS += -D$(MODEM_DEV)_BROADCAST=$(MODEM_BROADCAST) -D$(MODEM_DEV)_HOST=\"$(MODEM_HOST)\"
COMMON_TELEMETRY_CFLAGS += -DPPRZ_UART=$(MODEM_DEV)
COMMON_TELEMETRY_CFLAGS += -DPPRZ_UART=$(UDP_MODEM_PORT_LOWER)
COMMON_TELEMETRY_CFLAGS += -DDOWNLINK_DEVICE=$(UDP_MODEM_PORT_LOWER)
else
# via UART
@@ -91,7 +91,7 @@ else
#endif
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)
COMMON_TELEMETRY_CFLAGS += -DPPRZ_UART=$(MODEM_PORT)
COMMON_TELEMETRY_CFLAGS += -DPPRZ_UART=$(COMMON_TELEMETRY_MODEM_PORT_LOWER)
COMMON_TELEMETRY_CFLAGS += -DDOWNLINK_DEVICE=$(COMMON_TELEMETRY_MODEM_PORT_LOWER)
COMMON_TELEMETRY_SRCS += mcu_periph/uart.c
COMMON_TELEMETRY_SRCS += $(SRC_ARCH)/mcu_periph/uart_arch.c
+1 -1
View File
@@ -13,7 +13,7 @@
<define name="USE_AHRS"/>
<define name="USE_INS_MODULE"/>
<define name="USE_SPI"/>
<define name="INS_LINK" value="SpiSlave"/>
<define name="INS_LINK" value="spi_slave_hs"/>
<define name="USE_USB_HIGH_PCLK" />
<file name="ahrs_chimu_spi.c"/>
<file name="imu_chimu.c"/>
+1 -1
View File
@@ -17,7 +17,7 @@
<define name="USE_AHRS"/>
<define name="USE_INS_MODULE"/>
<define name="USE_UART$(CHIMU_UART_NR)" value="1"/>
<define name="INS_LINK" value="UART$(CHIMU_UART_NR)"/>
<define name="INS_LINK" value="uart$(CHIMU_UART_NR)"/>
<define name="UART$(CHIMU_UART_NR)_BAUD" value="B115200"/>
<file name="ahrs_chimu_uart.c"/>
<file name="imu_chimu.c"/>
+4 -1
View File
@@ -22,9 +22,12 @@
<periodic fun="airspeed_otf_periodic()" freq="1"/>
<event fun="airspeed_otf_event()"/>
<makefile target="ap">
<raw>
OTF_UART_LOWER=$(shell echo $(OTF_UART) | tr A-Z a-z)
</raw>
<file name="airspeed_otf.c"/>
<define name="USE_$(OTF_UART)"/>
<define name="MET_LINK" value="$(OTF_UART)"/>
<define name="MET_LINK" value="$(OTF_UART_LOWER)"/>
<define name="$(OTF_UART)_BAUD" value="B115200"/>
</makefile>
</module>
+1 -1
View File
@@ -48,7 +48,7 @@
<define name="DM_LOG_SPI_DEV" value="$(DM_LOG_SPI_DEV_LOWER)" />
<define name="DM_LOG_SPI_SLAVE_IDX" value="$(DM_LOG_SPI_SLAVE_IDX_UPPER)" />
<define name="DM_LOG_UART" value="$(DM_LOG_UART_UPPER)"/>
<define name="DM_LOG_UART" value="$(DM_LOG_UART_LOWER)"/>
<define name="USE_$(DM_LOG_UART_UPPER)"/>
<define name="$(DM_LOG_UART_UPPER)_BAUD" value="B230400"/>
-1
View File
@@ -16,7 +16,6 @@
EXTRA_DL_PORT_LOWER = $(shell echo $(EXTRA_DL_PORT) | tr A-Z a-z)
</raw>
<define name="EXTRA_DOWNLINK_DEVICE" value="$(EXTRA_DL_PORT_LOWER)"/>
<define name="EXTRA_PPRZ_UART" value="$(EXTRA_DL_PORT)"/>
<define name="USE_$(EXTRA_DL_PORT)"/>
<define name="$(EXTRA_DL_PORT)_BAUD" value="$(EXTRA_DL_BAUD)"/>
<file name="extra_pprz_dl.c"/>
+4 -3
View File
@@ -19,18 +19,19 @@
<raw>
MAVLINK_PORT ?= UART1
MAVLINK_PORT_UPPER=$(shell echo $(MAVLINK_PORT) | tr a-z A-Z)
MAVLINK_PORT_LOWER=$(shell echo $(MAVLINK_PORT) | tr A-Z a-z)
ifeq ($(MAVLINK_PORT), UsbS)
ap.CFLAGS += -DUSE_USB_SERIAL
ap.srcs += $(SRC_ARCH)/usb_ser_hw.c
ap.CFLAGS += -DMAVLINK_DEV=UsbS
ap.CFLAGS += -DMAVLINK_DEV=usb_serial
else
ifeq ($(findstring UDP,$(MAVLINK_PORT)), UDP)
include $(CFG_SHARED)/udp.makefile
$(TARGET).CFLAGS += -DMAVLINK_DEV=$(MAVLINK_PORT_UPPER)
$(TARGET).CFLAGS += -DMAVLINK_DEV=$(MAVLINK_PORT_LOWER)
$(TARGET).CFLAGS += -DUSE_$(MAVLINK_PORT_UPPER)
else
MAVLINK_BAUD ?= B57600
ap.CFLAGS += -DMAVLINK_DEV=$(MAVLINK_PORT_UPPER)
ap.CFLAGS += -DMAVLINK_DEV=$(MAVLINK_PORT_LOWER)
ap.CFLAGS += -DUSE_$(MAVLINK_PORT_UPPER)
ap.CFLAGS += -D$(MAVLINK_PORT_UPPER)_BAUD=$(MAVLINK_BAUD)
endif
+4 -1
View File
@@ -11,7 +11,10 @@
</header>
<event fun="MavlinkDatalinkEvent()"/>
<makefile>
<define name="MAVLINK_UART" value="$(MAVLINK_PORT)"/>
<raw>
MAVLINK_PORT_LOWER=$(shell echo $(MAVLINK_PORT) | tr A-Z a-z)
</raw>
<define name="MAVLINK_UART" value="$(MAVLINK_PORT_LOWER)"/>
<define name="USE_$(MAVLINK_PORT)"/>
<define name="$(MAVLINK_PORT)_BAUD" value="$(MAVLINK_BAUD)"/>
<file name="mavlink_decoder.c"/>
@@ -42,6 +42,8 @@
void uart_periph_set_baudrate(struct uart_periph *periph, uint32_t baud)
{
periph->baudrate = baud;
struct SerialPort *port;
// close serial port if already open
if (periph->reg_addr != NULL) {
@@ -38,6 +38,7 @@
#include "pprz_debug.h"
#include "armVIC.h"
struct spi_slave_hs spi_slave_hs;
/* High Speed SPI Slave Circular Buffer */
uint16_t spi_slave_hs_rx_insert_idx, spi_slave_hs_rx_extract_idx;
@@ -103,6 +104,36 @@ static void SSP_ISR(void) __attribute__((naked));
#endif
// Functions for the generic device API
static int spi_slave_hs_check_free_space(struct spi_slave_hs *p __attribute__((unused)), uint8_t len __attribute__((unused)))
{
return TRUE;
}
static void spi_slave_hs_transmit(struct spi_slave_hs *p __attribute__((unused)), uint8_t byte)
{
uint8_t temp = (spi_slave_hs_tx_insert_idx + 1) % SPI_SLAVE_HS_TX_BUFFER_SIZE;
if (temp != spi_slave_hs_tx_extract_idx) /* there is room left */
{
spi_slave_hs_tx_buffer[spi_slave_hs_tx_insert_idx] = byte;
spi_slave_hs_tx_insert_idx = temp;
}
}
static void spi_slave_hs_send(struct spi_slave_hs *p __attribute__((unused))) { }
static int spi_slave_hs_char_available(struct spi_slave_hs *p __attribute__((unused)))
{
return spi_slave_hs_rx_insert_idx != spi_slave_hs_rx_extract_idx;
}
static uint8_t spi_slave_hs_getch(struct spi_slave_hs *p __attribute__((unused)))
{
uint8_t ret = spi_slave_hs_rx_buffer[spi_slave_hs_rx_extract_idx];
spi_slave_hs_rx_extract_idx = (spi_slave_hs_rx_extract_idx + 1)%SPI_SLAVE_HS_RX_BUFFER_SIZE;
return ret;
}
void spi_slave_hs_init(void)
{
@@ -129,6 +160,14 @@ void spi_slave_hs_init(void)
// Enable Receive interrupt
SetBit(SSPIMSC, RXIM);
// Configure generic device
spi_slave_hs.device.periph = (void *)(&spi_slave_hs);
spi_slave_hs.device.check_free_space = (check_free_space_t) spi_slave_hs_check_free_space;
spi_slave_hs.device.put_byte = (put_byte_t) spi_slave_hs_transmit;
spi_slave_hs.device.send_message = (send_message_t) spi_slave_hs_send;
spi_slave_hs.device.char_available = (char_available_t) spi_slave_hs_char_available;
spi_slave_hs.device.get_byte = (get_byte_t) spi_slave_hs_getch;
}
/*
@@ -32,7 +32,14 @@
#define SPI_SLAVE_HS_ARCH_H
#include "std.h"
#include "mcu_periph/link_device.h"
struct spi_slave_hs {
/** Generic device interface */
struct link_device device;
};
extern struct spi_slave_hs spi_slave_hs;
#define SpiEnable() { \
SetBit(SSPCR1, SSE); \
@@ -48,29 +55,11 @@
extern uint16_t spi_slave_hs_rx_insert_idx, spi_slave_hs_rx_extract_idx;
extern uint8_t spi_slave_hs_rx_buffer[SPI_SLAVE_HS_RX_BUFFER_SIZE];
#define SpiSlaveChAvailable() (spi_slave_hs_rx_insert_idx != spi_slave_hs_rx_extract_idx)
#define SpiSlaveGetch() ({\
uint8_t ret = spi_slave_hs_rx_buffer[spi_slave_hs_rx_extract_idx]; \
spi_slave_hs_rx_extract_idx = (spi_slave_hs_rx_extract_idx + 1)%SPI_SLAVE_HS_RX_BUFFER_SIZE; \
ret; \
})
#define SPI_SLAVE_HS_TX_BUFFER_SIZE 64
extern uint8_t spi_slave_hs_tx_insert_idx, spi_slave_hs_tx_extract_idx;
extern uint8_t spi_slave_hs_tx_buffer[SPI_SLAVE_HS_TX_BUFFER_SIZE];
#define SpiSlaveTransmit(data) {\
uint8_t temp = (spi_slave_hs_tx_insert_idx + 1) % SPI_SLAVE_HS_TX_BUFFER_SIZE; \
if (temp != spi_slave_hs_tx_extract_idx) /* there is room left */ \
{ \
spi_slave_hs_tx_buffer[spi_slave_hs_tx_insert_idx] = (uint8_t)data; \
spi_slave_hs_tx_insert_idx = temp; \
} \
}
#endif
@@ -48,6 +48,8 @@ static inline void uart_enable_interrupts(struct uart_periph *p)
static inline void uart_set_baudrate(struct uart_periph *p, uint32_t baud)
{
p->baudrate = baud;
/* calculate the baudrate */
uint32_t _baud_reg_val = (uint16_t)((PCLK / (((float)baud) * 16.0)) + 0.5);
/* select divisor latches */
+13 -1
View File
@@ -565,6 +565,16 @@ void VCOM_event(void) {}
// Empty for lpc21
void VCOM_send_message(void) {}
static int usb_serial_char_available(struct usb_serial_periph *p __attribute__((unused)))
{
return VCOM_check_available();
}
static uint8_t usb_serial_getch(struct usb_serial_periph *p __attribute__((unused)))
{
return (uint8_t)(VCOM_getchar());
}
void VCOM_init(void)
{
// initialise stack
@@ -608,6 +618,8 @@ void VCOM_init(void)
// Configure generic device
usb_serial.device.periph = (void *)(&usb_serial);
usb_serial.device.check_free_space = (check_free_space_t) usb_serial_check_free_space;
usb_serial.device.transmit = (transmit_t) usb_serial_transmit;
usb_serial.device.put_byte = (put_byte_t) usb_serial_transmit;
usb_serial.device.send_message = (send_message_t) usb_serial_send;
usb_serial.device.char_available = (char_available_t) usb_serial_char_available;
usb_serial.device.get_byte = (get_byte_t) usb_serial_getch;
}
-21
View File
@@ -20,7 +20,6 @@
#include "firmwares/fixedwing/guidance/guidance_v.h"
#include "subsystems/commands.h"
#include "firmwares/fixedwing/main_ap.h"
#include "sim_uart.h"
#include "subsystems/datalink/datalink.h"
#include "subsystems/datalink/telemetry.h"
#include "generated/flight_plan.h"
@@ -100,26 +99,6 @@ value sim_init(value unit)
{
init_fbw();
init_ap();
#ifdef SIM_UART
/* open named pipe */
char link_pipe_name[128];
#ifdef SIM_XBEE
sprintf(link_pipe_name, "/tmp/pprz_xbee");
#else
sprintf(link_pipe_name, "/tmp/pprz_link_%d", AC_ID);
#endif
struct stat st;
if (stat(link_pipe_name, &st)) {
if (mkfifo(link_pipe_name, 0644) == -1) {
perror("make pipe");
exit(10);
}
}
if (!(pipe_stream = fopen(link_pipe_name, "w"))) {
perror("open pipe");
exit(10);
}
#endif
return unit;
}
-3
View File
@@ -1,3 +0,0 @@
#include "sim_uart.h"
FILE *pipe_stream;
-14
View File
@@ -1,14 +0,0 @@
/** \file sim_uart.h
* \brief Simulation of uart transmission on an Unix pipe
*/
#include <stdio.h>
extern FILE *pipe_stream;
#define SimUartCheckFreeSpace(_) TRUE
#define SimUartTransmit(_x) fputc(_x, pipe_stream)
#define SimUartPrintString(_s) fputs(_s, pipe_stream)
#define SimUartSendMessage() fflush(pipe_stream);
#define SimUartPrintHex16(c) _PrintHex16(SimUartTransmit, c)
@@ -41,6 +41,7 @@
void uart_periph_set_baudrate(struct uart_periph *p, uint32_t baud)
{
p->baudrate = baud;
/* Configure USART baudrate */
usart_set_baudrate((uint32_t)p->reg_addr, baud);
+13 -1
View File
@@ -486,6 +486,16 @@ static void usb_serial_send(struct usb_serial_periph *p __attribute__((unused)))
VCOM_send_message();
}
static int usb_serial_char_available(struct usb_serial_periph *p __attribute__((unused)))
{
return VCOM_check_available();
}
static uint8_t usb_serial_getch(struct usb_serial_periph *p __attribute__((unused)))
{
return (uint8_t)(VCOM_getchar());
}
void VCOM_init(void)
{
// initialise fifos
@@ -518,6 +528,8 @@ void VCOM_init(void)
// Configure generic device
usb_serial.device.periph = (void *)(&usb_serial);
usb_serial.device.check_free_space = (check_free_space_t) usb_serial_check_free_space;
usb_serial.device.transmit = (transmit_t) usb_serial_transmit;
usb_serial.device.put_byte = (put_byte_t) usb_serial_transmit;
usb_serial.device.send_message = (send_message_t) usb_serial_send;
usb_serial.device.char_available = (char_available_t) usb_serial_char_available;
usb_serial.device.get_byte = (get_byte_t) usb_serial_getch;
}
+11 -27
View File
@@ -31,38 +31,19 @@
#include "led.h"
#define __ModemLink(dev, _x) dev##_x
#define _ModemLink(dev, _x) __ModemLink(dev, _x)
#define ModemLink(_x) _ModemLink(MODEM_LINK, _x)
#define ModemBuffer() ModemLink(ChAvailable())
#define __AutopilotLink(dev, _x) dev##_x
#define _AutopilotLink(dev, _x) __AutopilotLink(dev, _x)
#define AutopilotLink(_x) _AutopilotLink(AUTOPILOT_LINK, _x)
#define AutopilotBuffer() AutopilotLink(ChAvailable())
#define ModemLinkDevice (&(MODEM_LINK).device)
#define AutopilotLinkDevice (&(AUTOPILOT_LINK).device)
static inline void autopilot_parse(char c)
{
ModemLink(Transmit(c));
ModemLinkDevice->put_byte(ModemLinkDevice->periph, c);
}
static inline void modem_parse(char c)
{
AutopilotLink(Transmit(c));
AutopilotLinkDevice->put_byte(AutopilotLinkDevice->periph, c);
}
#define ReadAutopilotBuffer() { \
while (AutopilotLink(ChAvailable())) \
autopilot_parse(AutopilotLink(Getch())); \
}
#define ReadModemBuffer() { \
while (ModemLink(ChAvailable())) \
modem_parse(ModemLink(Getch())); \
}
void fbw_datalink_periodic(void)
{
#ifdef MODEM_LINK_LED
@@ -76,16 +57,19 @@ void fbw_datalink_periodic(void)
void fbw_datalink_event(void)
{
#ifdef MODEM_LINK_LED
if (ModemLink(ChAvailable())) {
if (ModemLinkDevice->char_available(ModemLinkDevice->periph)) {
LED_ON(MODEM_LINK_LED);
}
#endif
#ifdef AUTOPILOT_LINK_LED
if (AutopilotLink(ChAvailable())) {
if (AutopilotLinkDevice->char_available(AutopilotLinkDevice->periph)) {
LED_ON(AUTOPILOT_LINK_LED);
}
#endif
ReadModemBuffer();
ReadAutopilotBuffer();
while (ModemLinkDevice->char_available(ModemLinkDevice->periph))
modem_parse(ModemLinkDevice->get_byte(ModemLinkDevice->periph));
while (AutopilotLinkDevice->char_available(AutopilotLinkDevice->periph))
autopilot_parse(AutopilotLinkDevice->get_byte(AutopilotLinkDevice->periph));
}
+1 -6
View File
@@ -331,12 +331,7 @@ void periodic_task_fbw(void)
}
#endif
#ifdef MCU_UART_LINK
inter_mcu_fill_fbw_state();
link_mcu_periodic_task();
#endif
#ifdef MCU_CAN_LINK
#if defined MCU_UART_LINK || defined MCU_CAN_LINK
inter_mcu_fill_fbw_state();
link_mcu_periodic_task();
#endif
+8 -12
View File
@@ -29,16 +29,12 @@
//////////////////////////////////////////////////////////////////////////////////////////////
// LINK
#define __InterMcuLink(dev, _x) dev##_x
#define _InterMcuLink(dev, _x) __InterMcuLink(dev, _x)
#define InterMcuLink(_x) _InterMcuLink(INTERMCU_LINK, _x)
#define InterMcuBuffer() InterMcuLink(ChAvailable())
#define InterMcuUartSend1(c) InterMcuLink(Transmit(c))
#define InterMcuUartSetBaudrate(_a) InterMcuLink(SetBaudrate(_a))
#define InterMcuUartRunning InterMcuLink(TxRunning)
#define InterMcuUartSendMessage InterMcuLink(SendMessage)
// Use uart interface directly
#define InterMcuBuffer() uart_char_available(&(INTERMCU_LINK))
#define InterMcuUartSend1(c) uart_transmit(&(INTERMCU_LINK), c)
#define InterMcuUartSetBaudrate(_a) uart_periph_set_baudrate(&(INTERMCU_LINK), _a)
#define InterMcuUartSendMessage() {}
#define InterMcuUartGetch() uart_getch(&(INTERMCU_LINK))
//////////////////////////////////////////////////////////////////////////////////////////////
// PROTOCOL
@@ -379,8 +375,8 @@ void link_mcu_event_task(void)
{
/* A message has been received */
if (InterMcuBuffer()) {
while (InterMcuLink(ChAvailable())) {
intermcu_parse(InterMcuLink(Getch()));
while (InterMcuBuffer()) {
intermcu_parse(InterMcuUartGetch());
if (intermcu_data.msg_available) {
parse_mavpilot_msg();
intermcu_data.msg_available = FALSE;

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