[autopilot] merge AP and FBW in normal operation (#2828)

There is no longer a separated FBW in normal operation for fixedwing,
only a single AP task/thread.
The code for main_ap is now factorized for all firmwares.
Dual MCU support (separated AP and FBW) is still possible, based on the
rotorcraft implementation and intermcu pprzlink messages. Relevant code
is also factorized and available in all firmwares.
The recovery mode (in case of hard fault) is still available for
fixedwing with ChibiOS implementation.
Only intermcu_uart is supported at the moment. Other options (spi/can)
might be added back in the future if really used.

Some other evolution are made:
- in the radio_control and actuators modules, now integrated to AP and
using ABI messages
- the message parsing on datalink event (defined in module) that is now
properly filtering the messages based on their class and allowing to
have multiple callbacks for the same message
- cleaning the part of code that were using the old intermcu fixedwing
interface
This commit is contained in:
Gautier Hattenberger
2022-03-10 14:21:04 +01:00
committed by GitHub
parent 05de94932c
commit e436d78c84
190 changed files with 2568 additions and 4875 deletions
+4
View File
@@ -211,6 +211,10 @@
<field name="data" type="uint8_t *">Pointer to an array of bytes, or any structure depending on the sender and the type of data</field> <field name="data" type="uint8_t *">Pointer to an array of bytes, or any structure depending on the sender and the type of data</field>
</message> </message>
<message name="RADIO_CONTROL" id="30">
<field name="rc" type="struct RadioControl *">Pointer to a radio control structure</field>
</message>
</msg_class> </msg_class>
</protocol> </protocol>
+30 -26
View File
@@ -205,8 +205,6 @@
<target name="ap" board="lisa_m_2.0"> <target name="ap" board="lisa_m_2.0">
<define name="LISA_M_LONGITUDINAL_X"/> <define name="LISA_M_LONGITUDINAL_X"/>
<configure name="SEPARATE_FBW" value="1"/>
<configure name="PERIODIC_FREQUENCY" value="120"/> <configure name="PERIODIC_FREQUENCY" value="120"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/> <configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/>
<configure name="AHRS_CORRECT_FREQUENCY" value="100"/> <configure name="AHRS_CORRECT_FREQUENCY" value="100"/>
@@ -227,6 +225,17 @@
</module> </module>
<module name="gps" type="ubx_ucenter"/> <module name="gps" type="ubx_ucenter"/>
<module name="telemetry" type="transparent">
<configure name="MODEM_BAUD" value="$(INTERMCU_BAUD)"/>
<configure name="MODEM_PORT" value="$(INTERMCU_PORT)"/>
<define name="TELEMETRY_DISABLE_RX"/>
</module>
<!--
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART2"/>
</module>
<module name="telemetry" type="intermcu"/>
-->
<module name="control"/> <module name="control"/>
<module name="navigation"/> <module name="navigation"/>
@@ -234,38 +243,43 @@
</target> </target>
<target name="fbw" board="lisa_m_2.0"> <target name="fbw" board="lisa_m_2.0">
<configure name="SEPARATE_FBW" value="1"/>
<configure name="SYS_TIME_LED" value="2"/> <configure name="SYS_TIME_LED" value="2"/>
<define name="RADIO_CONTROL_LED" value="4"/> <define name="RADIO_CONTROL_LED" value="4"/>
<define name="LINK_MCU_LED" value="3"/> <define name="LINK_MCU_LED" value="3"/>
<define name="OUTBACK_CHALLENGE_DANGEROUS_RULE_RC_LOST_NO_AP" value="1"/>
<define name="OUTBACK_CHALLENGE_VERY_DANGEROUS_RULE_AP_CAN_FORCE_FAILSAFE" value="1"/>
<!-- split of ap/fbw specific modules for fbw --> <!-- split of ap/fbw specific modules for fbw -->
<module name="actuators" type="pwm"/> <module name="actuators" type="pwm"/>
<module name="intermcu" type="uart"> <module name="intermcu" type="uart">
<configure name="INTERMCU_PORT" value="UART2"/> <configure name="INTERMCU_PORT" value="UART2"/>
</module> </module>
<!-- Communication -->
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="UART5"/>
</module>
<module name="telemetry" type="intermcu"/>
<!--
<module name="telemetry" type="transparent">
<configure name="MODEM_PORT" value="$(INTERMCU_PORT)"/>
<configure name="MODEM_BAUD" value="$(INTERMCU_BAUD)"/>
<define name="TELEMETRY_DISABLE_RX"/>
</module>
-->
<module name="radio_control" type="spektrum"/>
</target> </target>
<target name="sim" board="pc"> <target name="sim" board="pc">
<module name="control"/> <module name="control"/>
<module name="navigation"/> <module name="navigation"/>
<module name="gps" type="ublox"> <module name="gps" type="ublox"/>
<configure name="GPS_PORT" value="UART1"/>
</module>
<module name="radio_control" type="ppm"/>
<module name="telemetry" type="sim"/>
</target> </target>
<!--
<module name="adc_generic">
<configure name="ADC_CHANNEL_GENERIC1" value="ADC_1" />
<configure name="ADC_CHANNEL_GENERIC2" value="ADC_2" />
</module>
-->
<module name="light"> <module name="light">
<define name="LIGHT_LED_STROBE" value="2"/> <define name="LIGHT_LED_STROBE" value="2"/>
<define name="LIGHT_LED_NAV" value="3"/> <define name="LIGHT_LED_NAV" value="3"/>
@@ -293,16 +307,6 @@
<define name="WIND_INFO_RET"/> <define name="WIND_INFO_RET"/>
<define name="RADIO_CONTROL_AUTO1"/> <define name="RADIO_CONTROL_AUTO1"/>
<module name="radio_control" type="spektrum">
<define name="RADIO_CONTROL_NB_CHANNEL" value="8"/>
</module>
<!-- Communication -->
<module name="telemetry" type="transparent">
<configure name="MODEM_BAUD" value="B9600"/>
<configure name="MODEM_PORT" value="UART2"/>
</module>
<!-- Sensors --> <!-- Sensors -->
<module name="imu" type="aspirin_v2.1"/> <module name="imu" type="aspirin_v2.1"/>
<module name="ahrs" type="float_dcm"/> <module name="ahrs" type="float_dcm"/>
+7 -8
View File
@@ -28,9 +28,8 @@
<dl_setting var="autopilot_mode_auto2" min="2" step="1" max="3" module="autopilot" values="NAV|GUIDED"/> <dl_setting var="autopilot_mode_auto2" min="2" step="1" max="3" module="autopilot" values="NAV|GUIDED"/>
</settings> </settings>
<control_block name="set_actuators"> <control_block name="set_commands">
<call fun="SetRotorcraftCommands(stabilization_cmd, autopilot_in_flight(), autopilot_get_motors_on())"/> <call fun="SetRotorcraftCommands(stabilization_cmd, autopilot_in_flight(), autopilot_get_motors_on())"/>
<call fun="SetActuatorsFromCommands(commands, autopilot_mode)"/>
</control_block> </control_block>
<control_block name="attitude_loop"> <control_block name="attitude_loop">
@@ -66,7 +65,7 @@
<control> <control>
<call_block name="attitude_loop"/> <call_block name="attitude_loop"/>
<call_block name="throttle_direct"/> <call_block name="throttle_direct"/>
<call_block name="set_actuators"/> <call_block name="set_commands"/>
</control> </control>
<exception cond="RCLost()" deroute="FAILSAFE"/> <exception cond="RCLost()" deroute="FAILSAFE"/>
</mode> </mode>
@@ -83,7 +82,7 @@
<control> <control>
<call_block name="attitude_loop"/> <call_block name="attitude_loop"/>
<call_block name="altitude_loop"/> <call_block name="altitude_loop"/>
<call_block name="set_actuators"/> <call_block name="set_commands"/>
</control> </control>
<exception cond="RCLost()" deroute="FAILSAFE"/> <exception cond="RCLost()" deroute="FAILSAFE"/>
</mode> </mode>
@@ -103,7 +102,7 @@
<call fun="guidance_v_thrust_adapt(autopilot_in_flight())"/> <call fun="guidance_v_thrust_adapt(autopilot_in_flight())"/>
<call fun="guidance_v_from_nav(autopilot_in_flight())"/> <call fun="guidance_v_from_nav(autopilot_in_flight())"/>
<call fun="guidance_h_from_nav(autopilot_in_flight())"/> <call fun="guidance_h_from_nav(autopilot_in_flight())"/>
<call_block name="set_actuators"/> <call_block name="set_commands"/>
</control> </control>
<exception cond="GpsIsLost() && autopilot_in_flight()" deroute="FAILSAFE"/> <exception cond="GpsIsLost() && autopilot_in_flight()" deroute="FAILSAFE"/>
</mode> </mode>
@@ -124,7 +123,7 @@
<call fun="guidance_v_thrust_adapt(autopilot_in_flight())"/> <call fun="guidance_v_thrust_adapt(autopilot_in_flight())"/>
<call fun="guidance_v_guided_run(autopilot_in_flight())"/> <call fun="guidance_v_guided_run(autopilot_in_flight())"/>
<call fun="guidance_h_guided_run(autopilot_in_flight())"/> <call fun="guidance_h_guided_run(autopilot_in_flight())"/>
<call_block name="set_actuators"/> <call_block name="set_commands"/>
</control> </control>
<exception cond="GpsIsLost() && autopilot_in_flight()" deroute="FAILSAFE"/> <exception cond="GpsIsLost() && autopilot_in_flight()" deroute="FAILSAFE"/>
</mode> </mode>
@@ -143,7 +142,7 @@
<call fun="guidance_v_thrust_adapt(autopilot_in_flight())"/> <call fun="guidance_v_thrust_adapt(autopilot_in_flight())"/>
<call fun="guidance_v_from_nav(autopilot_in_flight())"/> <call fun="guidance_v_from_nav(autopilot_in_flight())"/>
<call fun="guidance_h_from_nav(autopilot_in_flight())"/> <call fun="guidance_h_from_nav(autopilot_in_flight())"/>
<call_block name="set_actuators"/> <call_block name="set_commands"/>
</control> </control>
<exception cond="GpsIsLost()" deroute="FAILSAFE"/> <exception cond="GpsIsLost()" deroute="FAILSAFE"/>
</mode> </mode>
@@ -160,7 +159,7 @@
<call fun="stabilization_attitude_run(autopilot_in_flight())"/> <call fun="stabilization_attitude_run(autopilot_in_flight())"/>
<call fun="gv_update_ref_from_zd_sp(guidance_v_zd_sp, stateGetPositionNed_i()->z)"/> <call fun="gv_update_ref_from_zd_sp(guidance_v_zd_sp, stateGetPositionNed_i()->z)"/>
<call fun="run_hover_loop(autopilot_in_flight())"/> <call fun="run_hover_loop(autopilot_in_flight())"/>
<call_block name="set_actuators"/> <call_block name="set_commands"/>
</control> </control>
<exception cond="!GpsIsLost()" deroute="$LAST_MODE"/> <exception cond="!GpsIsLost()" deroute="$LAST_MODE"/>
</mode> </mode>
-3
View File
@@ -32,7 +32,6 @@
</control> </control>
<control> <control>
<call fun="SetCommandsFromRC(commands, radio_control.values)"/> <call fun="SetCommandsFromRC(commands, radio_control.values)"/>
<call fun="SetActuatorsFromCommands(commands, autopilot_get_mode())"/>
</control> </control>
<exception cond="RCLost()" deroute="KILL"/> <exception cond="RCLost()" deroute="KILL"/>
</mode> </mode>
@@ -44,7 +43,6 @@
</control> </control>
<control> <control>
<call fun="rover_guidance_periodic()"/> <call fun="rover_guidance_periodic()"/>
<call fun="SetActuatorsFromCommands(commands, autopilot_get_mode())"/>
</control> </control>
<exception cond="GpsIsLost() && autopilot_in_flight()" deroute="KILL"/> <exception cond="GpsIsLost() && autopilot_in_flight()" deroute="KILL"/>
</mode> </mode>
@@ -55,7 +53,6 @@
</control> </control>
<control> <control>
<call fun="rover_guidance_periodic()"/> <call fun="rover_guidance_periodic()"/>
<call fun="SetActuatorsFromCommands(commands, autopilot_get_mode())"/>
</control> </control>
<exception cond="GpsIsLost()" deroute="KILL"/> <exception cond="GpsIsLost()" deroute="KILL"/>
</mode> </mode>
-3
View File
@@ -32,7 +32,6 @@
</control> </control>
<control> <control>
<call fun="SetCommandsFromRC(commands, radio_control.values)"/> <call fun="SetCommandsFromRC(commands, radio_control.values)"/>
<call fun="SetActuatorsFromCommands(commands, autopilot_get_mode())"/>
<call fun="SetAPThrottleFromCommands(commands[COMMAND_SPEED_X], commands[COMMAND_SPEED_Y])"/> <call fun="SetAPThrottleFromCommands(commands[COMMAND_SPEED_X], commands[COMMAND_SPEED_Y])"/>
</control> </control>
<exception cond="RCLost()" deroute="KILL"/> <exception cond="RCLost()" deroute="KILL"/>
@@ -45,7 +44,6 @@
</control> </control>
<control> <control>
<call fun="rover_holo_guidance_periodic()"/> <call fun="rover_holo_guidance_periodic()"/>
<call fun="SetActuatorsFromCommands(commands, autopilot_get_mode())"/>
</control> </control>
<exception cond="GpsIsLost() && autopilot_in_flight()" deroute="KILL"/> <exception cond="GpsIsLost() && autopilot_in_flight()" deroute="KILL"/>
</mode> </mode>
@@ -56,7 +54,6 @@
</control> </control>
<control> <control>
<call fun="rover_holo_guidance_periodic()"/> <call fun="rover_holo_guidance_periodic()"/>
<call fun="SetActuatorsFromCommands(commands, autopilot_get_mode())"/>
</control> </control>
<exception cond="GpsIsLost()" deroute="KILL"/> <exception cond="GpsIsLost()" deroute="KILL"/>
</mode> </mode>
+1 -1
View File
@@ -17,7 +17,7 @@ RTOS=chibios
## FPU on F4 ## FPU on F4
USE_FPU=softfp USE_FPU=softfp
$(TARGET).CFLAGS += -DSTM32F4 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY $(TARGET).CFLAGS += -DSTM32F4 -DPPRZLINK_ENABLE_FD
############################################################################## ##############################################################################
# Architecture or project specific options # Architecture or project specific options
+1 -1
View File
@@ -23,7 +23,7 @@ USE_FPU_OPT= -mfpu=fpv5-d16
USE_LTO ?= yes USE_LTO ?= yes
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY $(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD
############################################################################## ##############################################################################
# Architecture or project specific options # Architecture or project specific options
+1 -1
View File
@@ -18,7 +18,7 @@ ARCH=chibios
## FPU on F4 ## FPU on F4
USE_FPU=softfp USE_FPU=softfp
$(TARGET).CFLAGS += -DSTM32F4 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY $(TARGET).CFLAGS += -DSTM32F4 -DPPRZLINK_ENABLE_FD
############################################################################## ##############################################################################
# Architecture or project specific options # Architecture or project specific options
-1
View File
@@ -24,7 +24,6 @@ USE_FPU_OPT= -mfpu=fpv5-sp-d16 -fsingle-precision-constant
USE_LTO ?= yes USE_LTO ?= yes
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DDSHOT_CHANNEL_FIRST_INDEX=1U $(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DDSHOT_CHANNEL_FIRST_INDEX=1U
#$(TARGET).CFLAGS += -DUSE_HARD_FAULT_RECOVERY
############################################################################## ##############################################################################
# Architecture or project specific options # Architecture or project specific options
+1 -1
View File
@@ -23,7 +23,7 @@ USE_FPU_OPT= -mfpu=fpv5-d16
USE_LTO ?= yes USE_LTO ?= yes
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY -DDSHOT_CHANNEL_FIRST_INDEX=1U $(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DDSHOT_CHANNEL_FIRST_INDEX=1U
############################################################################## ##############################################################################
# Architecture or project specific options # Architecture or project specific options
+1 -1
View File
@@ -23,7 +23,7 @@ USE_FPU_OPT= -mfpu=fpv5-d16
USE_LTO=yes USE_LTO=yes
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY $(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD
############################################################################## ##############################################################################
# Architecture or project specific options # Architecture or project specific options
+1 -1
View File
@@ -22,7 +22,7 @@ USE_FPU_OPT= -mfpu=fpv5-d16
USE_LTO ?= yes USE_LTO ?= yes
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DUSE_HARD_FAULT_RECOVERY -DDSHOT_CHANNEL_FIRST_INDEX=1U $(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD -DDSHOT_CHANNEL_FIRST_INDEX=1U
############################################################################## ##############################################################################
# Architecture or project specific options # Architecture or project specific options
+1
View File
@@ -12,6 +12,7 @@
<file name="actuators.h"/> <file name="actuators.h"/>
</header> </header>
<init fun="actuators_init()"/> <init fun="actuators_init()"/>
<periodic fun="actuators_periodic()"/>
<makefile> <makefile>
<define name="ACTUATORS"/> <define name="ACTUATORS"/>
<file name="actuators.c"/> <file name="actuators.c"/>
+1
View File
@@ -10,6 +10,7 @@
</description> </description>
</doc> </doc>
<dep> <dep>
<!--depends>actuators</depends-->
<provides>actuators</provides> <provides>actuators</provides>
</dep> </dep>
<header/> <header/>
+1 -1
View File
@@ -7,7 +7,7 @@
</description> </description>
</doc> </doc>
<dep> <dep>
<depends>i2c,baro_board_common</depends> <depends>i2c,baro_board_common,hard_fault_recovery</depends>
<provides>baro</provides> <provides>baro</provides>
</dep> </dep>
<makefile target="!sim|nps|fbw"> <makefile target="!sim|nps|fbw">
+1 -1
View File
@@ -7,7 +7,7 @@
</description> </description>
</doc> </doc>
<dep> <dep>
<depends>i2c,baro_board</depends> <depends>i2c,baro_board,hard_fault_recovery</depends>
</dep> </dep>
<makefile target="!sim|nps|fbw"/> <makefile target="!sim|nps|fbw"/>
</module> </module>
+11
View File
@@ -0,0 +1,11 @@
<!DOCTYPE module SYSTEM "../module.dtd">
<module name="crazyflie_2.1" dir="boards">
<doc>
<description>
Specific configuration for Crazyflie 2.1
</description>
</doc>
<makefile target="!sim|nps|fbw"/>
</module>
+14
View File
@@ -0,0 +1,14 @@
<!DOCTYPE module SYSTEM "../module.dtd">
<module name="matek_f765_wing" dir="boards">
<doc>
<description>
Specific configuration for Matek F765 Wing
</description>
</doc>
<dep>
<depends>hard_fault_recovery</depends>
</dep>
<makefile target="!sim|nps|fbw"/>
</module>
+14
View File
@@ -0,0 +1,14 @@
<!DOCTYPE module SYSTEM "../module.dtd">
<module name="nucleo144_f767zi" dir="boards">
<doc>
<description>
Specific configuration for Nucleo144 F767zi dev board
</description>
</doc>
<dep>
<depends>hard_fault_recovery</depends>
</dep>
<makefile target="!sim|nps|fbw"/>
</module>
+14
View File
@@ -0,0 +1,14 @@
<!DOCTYPE module SYSTEM "../module.dtd">
<module name="tawaki_1.0" dir="boards">
<doc>
<description>
Specific configuration for Tawaki 1.0
</description>
</doc>
<dep>
<depends>hard_fault_recovery</depends>
</dep>
<makefile target="!sim|nps|fbw"/>
</module>
+14
View File
@@ -0,0 +1,14 @@
<!DOCTYPE module SYSTEM "../module.dtd">
<module name="tawaki_1.1" dir="boards">
<doc>
<description>
Specific configuration for Tawaki 1.1
</description>
</doc>
<dep>
<depends>hard_fault_recovery</depends>
</dep>
<makefile target="!sim|nps|fbw"/>
</module>
+2
View File
@@ -12,6 +12,8 @@
<file name="downlink.h"/> <file name="downlink.h"/>
</header> </header>
<init fun="downlink_init()"/> <init fun="downlink_init()"/>
<periodic fun="telemetry_reporting_task()"/>
<periodic fun="datalink_periodic()" freq="1"/>
<makefile> <makefile>
<define name="DOWNLINK"/> <define name="DOWNLINK"/>
<define name="PERIODIC_TELEMETRY"/> <define name="PERIODIC_TELEMETRY"/>
@@ -38,7 +38,7 @@
<init fun="dcf_init()"/> <init fun="dcf_init()"/>
<datalink message="DCF_REG_TABLE" fun="parseRegTable(buf)"/> <datalink message="DCF_REG_TABLE" fun="parseRegTable(buf)"/>
<datalink message="DCF_THETA" fun="parseThetaTable(buf)"/> <datalink message="DCF_THETA" fun="parseThetaTable(buf)" class="telemetry"/>
<makefile firmware="fixedwing"> <makefile firmware="fixedwing">
<file name="dcf.c"/> <file name="dcf.c"/>
+3 -20
View File
@@ -21,28 +21,11 @@
<define name="AHRS_CORRECT_FREQUENCY" value="$(AHRS_CORRECT_FREQUENCY)" cond="ifdef AHRS_CORRECT_FREQUENCY"/> <define name="AHRS_CORRECT_FREQUENCY" value="$(AHRS_CORRECT_FREQUENCY)" cond="ifdef AHRS_CORRECT_FREQUENCY"/>
<define name="AHRS_MAG_CORRECT_FREQUENCY" value="$(AHRS_MAG_CORRECT_FREQUENCY)" cond="ifdef AHRS_MAG_CORRECT_FREQUENCY"/> <define name="AHRS_MAG_CORRECT_FREQUENCY" value="$(AHRS_MAG_CORRECT_FREQUENCY)" cond="ifdef AHRS_MAG_CORRECT_FREQUENCY"/>
<include name="$(SRC_FIRMWARE)"/> <include name="$(SRC_FIRMWARE)"/>
<define name="INTER_MCU"/> <file name="main_bare.c" dir="." cond="ifneq ($(RTOS), chibios)"/>
<file name="inter_mcu.c" dir="modules/intermcu"/> <file name="main_chibios.c" dir="." cond="ifeq ($(RTOS), chibios)"/>
</makefile>
<makefile target="ap">
<file name="main.c" dir="$(SRC_FIRMWARE)" cond="ifneq ($(RTOS), chibios)"/>
<file name="main_chibios.c" dir="$(SRC_FIRMWARE)" cond="ifeq ($(RTOS), chibios)"/>
</makefile> </makefile>
<makefile target="!fbw"> <makefile target="!fbw">
<file name="main_ap.c" dir="$(SRC_FIRMWARE)"/> <file name="main_ap.c" dir="."/>
</makefile>
<makefile target="ap|nps|hitl">
<define name="FBW" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))"/>
<file name="main_fbw.c" dir="$(SRC_FIRMWARE)" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))"/>
</makefile>
<makefile target="fbw|sim">
<file name="main.c" dir="$(SRC_FIRMWARE)" cond="ifneq ($(RTOS), chibios)"/>
<file name="main_chibios.c" dir="$(SRC_FIRMWARE)" cond="ifeq ($(RTOS), chibios)"/>
<file name="main_fbw.c" dir="$(SRC_FIRMWARE)"/>
</makefile>
<makefile target="nps|hitl">
<define name="AP"/>
<file name="nps_autopilot_fixedwing.c" dir="nps"/>
</makefile> </makefile>
<makefile target="nps|hitl"> <makefile target="nps|hitl">
<define name="AP"/> <define name="AP"/>
+3 -6
View File
@@ -18,14 +18,11 @@
<define name="AHRS_CORRECT_FREQUENCY" value="$(AHRS_CORRECT_FREQUENCY)" cond="ifdef AHRS_CORRECT_FREQUENCY"/> <define name="AHRS_CORRECT_FREQUENCY" value="$(AHRS_CORRECT_FREQUENCY)" cond="ifdef AHRS_CORRECT_FREQUENCY"/>
<define name="AHRS_MAG_CORRECT_FREQUENCY" value="$(AHRS_MAG_CORRECT_FREQUENCY)" cond="ifdef AHRS_MAG_CORRECT_FREQUENCY"/> <define name="AHRS_MAG_CORRECT_FREQUENCY" value="$(AHRS_MAG_CORRECT_FREQUENCY)" cond="ifdef AHRS_MAG_CORRECT_FREQUENCY"/>
<include name="$(SRC_FIRMWARE)"/> <include name="$(SRC_FIRMWARE)"/>
<file name="main.c" dir="$(SRC_FIRMWARE)" cond="ifneq ($(RTOS), chibios)"/> <file name="main_bare.c" dir="." cond="ifneq ($(RTOS), chibios)"/>
<file name="main_chibios.c" dir="$(SRC_FIRMWARE)" cond="ifeq ($(RTOS), chibios)"/> <file name="main_chibios.c" dir="." cond="ifeq ($(RTOS), chibios)"/>
</makefile> </makefile>
<makefile target="!fbw"> <makefile target="!fbw">
<file name="main_ap.c" dir="$(SRC_FIRMWARE)"/> <file name="main_ap.c" dir="."/>
</makefile>
<makefile target="fbw">
<file name="main_fbw.c" dir="$(SRC_FIRMWARE)"/>
</makefile> </makefile>
<makefile target="nps|hitl"> <makefile target="nps|hitl">
<file name="nps_autopilot_rotorcraft.c" dir="nps"/> <file name="nps_autopilot_rotorcraft.c" dir="nps"/>
+3 -3
View File
@@ -18,9 +18,9 @@
<define name="AHRS_CORRECT_FREQUENCY" value="$(AHRS_CORRECT_FREQUENCY)" cond="ifdef AHRS_CORRECT_FREQUENCY"/> <define name="AHRS_CORRECT_FREQUENCY" value="$(AHRS_CORRECT_FREQUENCY)" cond="ifdef AHRS_CORRECT_FREQUENCY"/>
<define name="AHRS_MAG_CORRECT_FREQUENCY" value="$(AHRS_MAG_CORRECT_FREQUENCY)" cond="ifdef AHRS_MAG_CORRECT_FREQUENCY"/> <define name="AHRS_MAG_CORRECT_FREQUENCY" value="$(AHRS_MAG_CORRECT_FREQUENCY)" cond="ifdef AHRS_MAG_CORRECT_FREQUENCY"/>
<include name="$(SRC_FIRMWARE)"/> <include name="$(SRC_FIRMWARE)"/>
<file name="main.c" dir="$(SRC_FIRMWARE)" cond="ifneq ($(RTOS), chibios)"/> <file name="main_bare.c" dir="." cond="ifneq ($(RTOS), chibios)"/>
<file name="main_chibios.c" dir="$(SRC_FIRMWARE)" cond="ifeq ($(RTOS), chibios)"/> <file name="main_chibios.c" dir="." cond="ifeq ($(RTOS), chibios)"/>
<file name="main_ap.c" dir="$(SRC_FIRMWARE)"/> <file name="main_ap.c" dir="."/>
<raw> <raw>
ifneq ($(USE_GENERATED_AUTOPILOT), TRUE) ifneq ($(USE_GENERATED_AUTOPILOT), TRUE)
$(error "Rover firmware should use generated autopilot") $(error "Rover firmware should use generated autopilot")
+47
View File
@@ -0,0 +1,47 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="gps_intermcu" dir="gps" task="sensors">
<doc>
<description>
Remote GPS via intermcu.
Parses the IMCU_REMOTE_GPS message and publishes it onboard via ABI.
</description>
</doc>
<dep>
<depends>gps,@datalink</depends>
<provides>gps</provides>
</dep>
<autoload name="gps_nps"/>
<autoload name="gps_sim"/>
<header>
<file name="gps.h"/>
</header>
<init fun="gps_intermcu_init()"/>
<periodic fun="gps_intermcu_periodic_check()" freq="1." autorun="TRUE"/>
<datalink message="IMCU_REMOTE_GPS" fun="gps_intermcu_parse_IMCU_REMOTE_GPS(buf)"/>
<makefile target="ap|fbw">
<file name="gps_intermcu.c"/>
<raw>
ifdef SECONDARY_GPS
ifneq (,$(findstring $(SECONDARY_GPS), intermcu))
# this is the secondary GPS
$(TARGET).CFLAGS += -DGPS_SECONDARY_TYPE_H=\"modules/gps/gps_intermcu.h\"
$(TARGET).CFLAGS += -DSECONDARY_GPS=GPS_IMCU
else
$(TARGET).CFLAGS += -DGPS_TYPE_H=\"modules/gps/gps_intermcu.h\"
$(TARGET).CFLAGS += -DPRIMARY_GPS=GPS_IMCU
endif
else
# plain old single GPS usage
$(TARGET).CFLAGS += -DGPS_TYPE_H=\"modules/gps/gps_intermcu.h\"
endif
</raw>
<test firmware="rotorcraft">
<define name="PRIMARY_GPS" value="GPS_IMCU"/>
</test>
</makefile>
<makefile target="fbw">
<define name="USE_GPS"/>
</makefile>
</module>
+31
View File
@@ -0,0 +1,31 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="hard_fault_recovery" task="core">
<doc>
<description>
Minimal autopilot for recovery
Currently, only allow to take a fixedwing plane in manual in case of MCU hard fault
Recommanded modules are: electrical, radio_control and actuators
Init, periodic and event functions are called from main_chibios when activated
</description>
<define name="RECOVERY_DISABLE_ELECTRICAL" value="FALSE|TRUE" description="disable electrical in recovery mode"/>
</doc>
<dep>
<depends>system_core</depends>
<provides>recovery</provides>
</dep>
<makefile target="ap" firmware="fixedwing">
<define name="USE_HARD_FAULT_RECOVERY"/>
<file name="main_recovery.c" dir="firmwares/fixedwing"/>
<test firmware="fixedwing">
<define name="RADIO_CONTROL"/>
<define name="RADIO_MODE" value="0"/>
<define name="DOWNLINK_DEVICE" value="uart1"/>
<define name="DOWNLINK_TRANSPORT" value="pprz_tp"/>
<define name="USE_UART1"/>
</test>
</makefile>
</module>
-31
View File
@@ -1,31 +0,0 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="intermcu_can" dir="intermcu" task="core">
<doc>
<description>
Inter-MCU communication over CAN
To enable this, please set the "SEPARATE_FBW" configure option to TRUE
in your airframe file for both AP and FBW targets
</description>
<configure name="SEPARATE_FBW" value="FALSE|TRUE" description="Enable separation between AP and FBW on separated MCU"/>
</doc>
<dep>
<provides>intermcu,commands,radio_control</provides>
</dep>
<makefile target="ap|fbw" firmware="fixedwing">
<raw>
ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))
$(error Using intermcu via CAN, so dual mcu with separate fbw. Please set option "SEPARATE_FBW" to TRUE.
endif
</raw>
<define name="INTER_MCU"/>
<define name="MCU_CAN_LINK"/>
<file name="link_mcu_can.c"/>
<file name="can.c" dir="mcu_periph"/>
<file name="can_arch.c" dir="$(SRC_ARCH)/mcu_periph"/>
</makefile>
</module>
-45
View File
@@ -1,45 +0,0 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="intermcu_spi" dir="intermcu" task="core">
<doc>
<description>
Inter-MCU communication over SPI
To enable this, please set the "SEPARATE_FBW" configure option to TRUE
in your airframe file for both AP and FBW targets
</description>
<configure name="SEPARATE_FBW" value="FALSE|TRUE" description="Enable separation between AP and FBW on separated MCU"/>
<configure name="INTER_MCU_SPI" value="SPI1" description="SPI used for inter mcu communication"/>
<configure name="INTER_MCU_SLAVE" value="SLAVE0" description="Slave name"/>
</doc>
<dep>
<depends>spi_master</depends>
<provides>intermcu,commands,radio_control</provides>
</dep>
<init fun="intermcu_init()"/>
<makefile target="ap|fbw" firmware="fixedwing">
<raw>
ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))
$(error Using intermcu via SPI, so dual mcu with separate fbw. Please set option "SEPARATE_FBW" to TRUE.
endif
</raw>
<configure name="INTER_MCU_SPI" default="SPI1"/>
<configure name="INTER_MCU_SLAVE" default="SLAVE0"/>
<define name="MCU_SPI_LINK"/>
<file name="link_mcu_spi.c"/>
<file name="spi.c" dir="mcu_periph"/>
<file name="spi_arch.c" dir="$(SRC_ARCH)/mcu_periph"/>
</makefile>
<makefile target="ap" firmware="fixedwing">
<define name="USE_$(INTER_MCU_SPI)"/>
<define name="USE_SPI_$(INTER_MCU_SLAVE)"/>
<define name="SPI_MASTER"/>
<file name="fbw_downlink.c" dir="firmwares/fixedwing"/>
</makefile>
<makefile target="fbw" firmware="fixedwing">
<define name="USE_$(INTER_MCU_SPI)_SLAVE"/>
<define name="SPI_SLAVE"/>
</makefile>
</module>
+32 -55
View File
@@ -4,78 +4,55 @@
<doc> <doc>
<description> <description>
Inter-MCU communication over UART Inter-MCU communication over UART
To enable this, please set the "SEPARATE_FBW" configure option to TRUE
in your airframe file for both AP and FBW targets
</description> </description>
<configure name="SEPARATE_FBW" value="FALSE|TRUE" description="Enable separation between AP and FBW on separated MCU"/>
<configure name="INTERMCU_PORT" value="UARTx" description="UART used for inter mcu communication (default: UART2 for FBW, UART5 for AP)"/> <configure name="INTERMCU_PORT" value="UARTx" description="UART used for inter mcu communication (default: UART2 for FBW, UART5 for AP)"/>
<configure name="INTERMCU_BAUD" value="B57600" description="UART baud rate"/> <configure name="INTERMCU_BAUD" value="B57600" description="UART baud rate"/>
<configure name="FBW_MODE_LED" value="none|num" description="LED number or 'none'"/> <configure name="FBW_MODE_LED" value="none|num" description="LED number or 'none'"/>
</doc> </doc>
<dep> <dep>
<depends>uart</depends> <depends>uart,radio_control_intermcu,datalink_common</depends>
<provides>intermcu,commands,radio_control</provides> <provides>intermcu,commands</provides>
</dep> </dep>
<header> <header>
<file name="intermcu.h" cond="ROTORCRAFT_FIRMWARE"/> <file name="intermcu.h"/>
<file name="inter_mcu.h" cond="FIXEDWING_FIRMWARE"/> <file name="intermcu_ap.h" cond="INTERMCU_AP"/>
<file name="intermcu_fbw.h" cond="INTERMCU_FBW"/>
</header> </header>
<init fun="intermcu_init()"/> <init fun="intermcu_init()"/>
<periodic fun="intermcu_periodic()"/> <periodic fun="intermcu_periodic()"/>
<makefile target="fbw" firmware="fixedwing"> <periodic fun="intermcu_send_status()" freq="10." cond="INTERMCU_FBW"/>
<configure name="INTERMCU_PORT" default="UART2" case="upper|lower"/> <event fun="intermcu_event()"/>
<configure name="FBW_MODE_LED" default="none"/> <datalink message="IMCU_FBW_STATUS" fun="intermcu_parse_IMCU_FBW_STATUS(buf)" class="intermcu" cond="INTERMCU_AP"/>
<define name="FBW_MODE_LED" value="$(FBW_MODE_LED)" cond="ifneq ($(FBW_MODE_LED),none)"/> <datalink message="IMCU_COMMANDS" fun="intermcu_parse_IMCU_COMMANDS(buf)" class="intermcu" cond="INTERMCU_FBW"/>
<define name="INTER_MCU_FBW"/> <datalink message="IMCU_SPEKTRUM_SOFT_BIND" fun="intermcu_parse_IMCU_SPEKTRUM_SOFT_BIND(buf)" class="intermcu" cond="INTERMCU_FBW"/>
</makefile> <datalink message="*" fun="intermcu_forward_uplink(buf)" cond="INTERMCU_FBW"/>
<makefile target="ap" firmware="fixedwing"> <makefile target="ap|fbw">
<configure name="INTERMCU_PORT" default="UART5" case="upper|lower"/>
<define name="INTER_MCU_AP"/>
</makefile>
<makefile target="ap|fbw" firmware="fixedwing">
<raw>
ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))
$(error Using intermcu via UART, so dual mcu with separate fbw. Please set option "SEPARATE_FBW" to TRUE.
endif
</raw>
<configure name="INTERMCU_BAUD" default="B57600"/>
<define name="INTERMCU"/>
<define name="MCU_UART_LINK"/>
<define name="INTERMCU_LINK" value="$(INTERMCU_PORT_LOWER)"/>
<define name="USE_$(INTERMCU_PORT_UPPER)"/>
<define name="$(INTERMCU_PORT_UPPER)_BAUD" value="$(INTERMCU_BAUD)"/>
<file name="link_mcu_usart.c"/>
</makefile>
<makefile target="fbw" firmware="rotorcraft">
<configure name="INTERMCU_PORT" default="UART3" case="upper|lower"/> <configure name="INTERMCU_PORT" default="UART3" case="upper|lower"/>
<configure name="FBW_MODE_LED" default="none"/>
<define name="FBW_MODE_LED" value="$(FBW_MODE_LED)" cond="ifneq ($(FBW_MODE_LED),none)"/>
<define name="INTER_MCU_FBW"/>
<define name="DOWNLINK"/>
<file name="intermcu_fbw.c"/>
</makefile>
<makefile target="ap" firmware="rotorcraft">
<configure name="INTERMCU_PORT" default="UART3" case="upper|lower"/>
<configure name="RADIO_CONTROL_LED" value="none"/>
<define name="INTER_MCU_AP"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/intermcu/intermcu_ap.h" type="string"/>
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="GPS_SECONDARY_TYPE_H" value="modules/intermcu/intermcu_ap.h" type="string" cond="ifneq (,$(findstring $(SECONDARY_GPS), imcu))"/>
<define name="SECONDARY_GPS" value="GPS_IMCU" cond="ifneq (,$(findstring $(SECONDARY_GPS), imcu))"/>
<define name="IMCU_GPS" cond="ifneq (,$(findstring $(SECONDARY_GPS), imcu))"/>
<file name="intermcu_ap.c"/>
<file name="radio_control.c" dir="modules/radio_control"/>
</makefile>
<makefile target="ap|fbw" firmware="rotorcraft">
<configure name="INTERMCU_BAUD" default="B230400"/> <configure name="INTERMCU_BAUD" default="B230400"/>
<define name="INTERMCU_LINK" value="$(INTERMCU_PORT_LOWER)"/> <define name="INTERMCU_LINK" value="$(INTERMCU_PORT_LOWER)"/>
<define name="USE_$(INTERMCU_PORT_UPPER)"/> <define name="USE_$(INTERMCU_PORT_UPPER)"/>
<define name="$(INTERMCU_PORT_UPPER)_BAUD" value="$(INTERMCU_BAUD)"/> <define name="$(INTERMCU_PORT_UPPER)_BAUD" value="$(INTERMCU_BAUD)"/>
<define name="DOWNLINK_DEVICE" value="$(INTERMCU_LINK)" cond="ifndef MODEM_PORT"/>
<define name="DOWNLINK_TRANSPORT" value="intermcu.transport" cond="ifndef MODEM_PORT"/>
<file name="pprz_transport.c" dir="pprzlink/src"/> <file name="pprz_transport.c" dir="pprzlink/src"/>
</makefile> </makefile>
<makefile target="fbw">
<configure name="FBW_MODE_LED" default="none"/>
<define name="FBW_MODE_LED" value="$(FBW_MODE_LED)" cond="ifneq ($(FBW_MODE_LED),none)"/>
<define name="INTERMCU_FBW"/>
<file name="intermcu_fbw.c"/>
<test firmware="fixedwing">
<define name="INTERMCU_LINK" value="uart1"/>
<define name="USE_UART1"/>
</test>
</makefile>
<makefile target="ap">
<define name="INTERMCU_AP"/>
<file name="intermcu_ap.c"/>
<test firmware="fixedwing">
<define name="INTERMCU_LINK" value="uart1"/>
<define name="USE_UART1"/>
</test>
</makefile>
</module> </module>
-6
View File
@@ -4,7 +4,6 @@
<doc> <doc>
<description> <description>
Automatic initialization module for all MCU peripherals Automatic initialization module for all MCU peripherals
Also includes GPIO and LED drivers
</description> </description>
</doc> </doc>
<dep> <dep>
@@ -21,14 +20,9 @@
<file name="mcu.c" dir="."/> <file name="mcu.c" dir="."/>
<file_arch name="mcu_arch.c" dir="."/> <file_arch name="mcu_arch.c" dir="."/>
<file_arch name="gpio_arch.c" dir="mcu_periph" cond="ifneq ($(BOARD), ardrone)"/> <file_arch name="gpio_arch.c" dir="mcu_periph" cond="ifneq ($(BOARD), ardrone)"/>
<file_arch name="led_hw.c" dir="." cond="ifeq ($(ARCH), stm32)"/>
<file_arch name="led_hw.c" dir="." cond="ifeq ($(TARGET), sim)"/>
<test> <test>
<define name="PERIPHERALS_AUTO_INIT"/> <define name="PERIPHERALS_AUTO_INIT"/>
</test> </test>
</makefile> </makefile>
<makefile target="!nps|sim">
<define name="USE_LED"/>
</makefile>
</module> </module>
+1 -1
View File
@@ -20,7 +20,7 @@
<init fun="init_mf_daq()"/> <init fun="init_mf_daq()"/>
<periodic fun="mf_daq_send_state()" freq="10."/> <periodic fun="mf_daq_send_state()" freq="10."/>
<periodic fun="mf_daq_send_report()" freq="1." autorun="TRUE"/> <periodic fun="mf_daq_send_report()" freq="1." autorun="TRUE"/>
<datalink message="PAYLOAD_FLOAT" fun="parse_mf_daq_msg(buf)"/> <datalink message="PAYLOAD_FLOAT" fun="parse_mf_daq_msg(buf)" class="telemetry"/>
<makefile target="ap"> <makefile target="ap">
<file name="meteo_france_DAQ.c"/> <file name="meteo_france_DAQ.c"/>
</makefile> </makefile>
+3 -1
View File
@@ -63,7 +63,9 @@ cond CDATA #IMPLIED>
<!ATTLIST datalink <!ATTLIST datalink
message CDATA #REQUIRED message CDATA #REQUIRED
fun CDATA #REQUIRED> fun CDATA #REQUIRED
class CDATA #IMPLIED
cond CDATA #IMPLIED>
<!ATTLIST makefile <!ATTLIST makefile
target CDATA #IMPLIED target CDATA #IMPLIED
+3 -6
View File
@@ -36,7 +36,7 @@
</dl_settings> </dl_settings>
</settings> </settings>
<dep> <dep>
<depends>spi_master</depends> <depends>spi_master,radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
@@ -44,19 +44,17 @@
<file name="cc2500_frsky/cc2500_paparazzi.h"/> <file name="cc2500_frsky/cc2500_paparazzi.h"/>
<file name="cc2500_frsky/cc2500_settings.h"/> <file name="cc2500_frsky/cc2500_settings.h"/>
</header> </header>
<init fun="cc2500_init()"/> <init fun="radio_control_cc2500_init()"/>
<event fun="radio_control_cc2500_event()"/>
<makefile target="ap|fbw|sim|nps"> <makefile target="ap|fbw|sim|nps">
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/cc2500_frsky/cc2500_paparazzi.h" type="string"/>
<configure name="CC2500_SPI_DEV" default="SPI3" case="upper|lower"/> <configure name="CC2500_SPI_DEV" default="SPI3" case="upper|lower"/>
<configure name="CC2500_SPI_SLAVE_IDX" default="2"/> <configure name="CC2500_SPI_SLAVE_IDX" default="2"/>
</makefile> </makefile>
<makefile target="ap|fbw"> <makefile target="ap|fbw">
<define name="RADIO_CONTROL"/>
<define name="USE_$(CC2500_SPI_DEV)"/> <define name="USE_$(CC2500_SPI_DEV)"/>
<define name="USE_SPI_SLAVE$(CC2500_SPI_SLAVE_IDX)"/> <define name="USE_SPI_SLAVE$(CC2500_SPI_SLAVE_IDX)"/>
<define name="CC2500_SPI_DEV" value="$(CC2500_SPI_DEV_LOWER)"/> <define name="CC2500_SPI_DEV" value="$(CC2500_SPI_DEV_LOWER)"/>
<define name="CC2500_SPI_SLAVE_IDX" value="$(CC2500_SPI_SLAVE_IDX)"/> <define name="CC2500_SPI_SLAVE_IDX" value="$(CC2500_SPI_SLAVE_IDX)"/>
<file name="radio_control.c"/>
<file name="cc2500.c" dir="peripherals"/> <file name="cc2500.c" dir="peripherals"/>
<file name="cc2500_frsky/cc2500_paparazzi.c"/> <file name="cc2500_frsky/cc2500_paparazzi.c"/>
<file name="cc2500_frsky/cc2500_settings.c"/> <file name="cc2500_frsky/cc2500_settings.c"/>
@@ -70,7 +68,6 @@
<file name="cc2500_frsky/cc2500_smartport.c"/> <file name="cc2500_frsky/cc2500_smartport.c"/>
<test> <test>
<define name="RADIO_CONTROL"/> <define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/cc2500_frsky/cc2500_paparazzi.h" type="string"/>
<define name="CC2500_SPI_DEV" value="spi1"/> <define name="CC2500_SPI_DEV" value="spi1"/>
<define name="CC2500_SPI_SLAVE_IDX" value="2"/> <define name="CC2500_SPI_SLAVE_IDX" value="2"/>
<define name="USE_SPI1"/> <define name="USE_SPI1"/>
+25
View File
@@ -0,0 +1,25 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="radio_control_common" dir="radio_control" task="radio_control">
<doc>
<description>
Radio control common
</description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
</doc>
<header>
<file name="radio_control.h"/>
</header>
<init fun="radio_control_init()"/>
<periodic fun="radio_control_periodic_task()"/>
<makefile>
<configure name="RADIO_CONTROL_LED" default="none"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="RADIO_CONTROL"/>
<file name="radio_control.c"/>
<test>
<define name="RADIO_CONTROL"/>
</test>
</makefile>
</module>
+3 -15
View File
@@ -5,37 +5,25 @@
<description> <description>
Radio control over datalink Radio control over datalink
</description> </description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
<configure name="RADIO_CONTROL_DATALINK_LED" value="none|num" description="LED number or 'none' to disable"/> <configure name="RADIO_CONTROL_DATALINK_LED" value="none|num" description="LED number or 'none' to disable"/>
</doc> </doc>
<dep> <dep>
<depends>radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
<file name="rc_datalink.h"/> <file name="rc_datalink.h"/>
</header> </header>
<init fun="rc_datalink_init()"/>
<event fun="rc_datalink_event()"/>
<makefile target="ap|fbw|sim|nps"> <makefile target="ap|fbw|sim|nps">
<configure name="RADIO_CONTROL_LED" default="none"/>
<configure name="RADIO_CONTROL_DATALINK_LED" default="none"/> <configure name="RADIO_CONTROL_DATALINK_LED" default="none"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="RADIO_CONTROL_DATALINK_LED" value="$(RADIO_CONTROL_DATALINK_LED)" cond="ifneq ($(RADIO_CONTROL_DATALINK_LED),none)"/> <define name="RADIO_CONTROL_DATALINK_LED" value="$(RADIO_CONTROL_DATALINK_LED)" cond="ifneq ($(RADIO_CONTROL_DATALINK_LED),none)"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/rc_datalink.h" type="string"/>
</makefile>
<makefile target="fbw|sim|nps">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_DATALINK"/> <define name="RADIO_CONTROL_TYPE_DATALINK"/>
<file name="radio_control.c"/>
<file name="rc_datalink.c"/>
</makefile>
<makefile target="ap" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_DATALINK"/>
<file name="radio_control.c"/>
<file name="rc_datalink.c"/> <file name="rc_datalink.c"/>
<test> <test>
<define name="RADIO_CONTROL"/> <define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_DATALINK"/> <define name="RADIO_CONTROL_TYPE_DATALINK"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/rc_datalink.h" type="string"/>
</test> </test>
</makefile> </makefile>
</module> </module>
+3 -21
View File
@@ -5,45 +5,27 @@
<description> <description>
Radio control based on Graupner HOTT SUMD Radio control based on Graupner HOTT SUMD
</description> </description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
<configure name="HOTT_PORT" value="UARTX" description="UART name where HOTT receiver is plugged"/> <configure name="HOTT_PORT" value="UARTX" description="UART name where HOTT receiver is plugged"/>
</doc> </doc>
<dep> <dep>
<depends>uart</depends> <depends>uart,radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
<file name="hott.h"/> <file name="hott.h"/>
</header> </header>
<init fun="hott_init()"/>
<event fun="hott_event()"/>
<makefile target="ap|fbw"> <makefile target="ap|fbw">
<configure name="RADIO_CONTROL_LED" default="none"/>
<configure name="HOTT_UART" value="$(HOTT_PORT)" case="upper|lower"/> <configure name="HOTT_UART" value="$(HOTT_PORT)" case="upper|lower"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/hott.h" type="string"/>
</makefile>
<makefile target="fbw">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_HOTT"/> <define name="RADIO_CONTROL_TYPE_HOTT"/>
<define name="USE_$(HOTT_UART_UPPER)"/> <define name="USE_$(HOTT_UART_UPPER)"/>
<define name="$(HOTT_UART_UPPER)_BAUD" value="B115200"/> <define name="$(HOTT_UART_UPPER)_BAUD" value="B115200"/>
<define name="HOTT_UART_DEV" value="$(HOTT_UART_LOWER)"/> <define name="HOTT_UART_DEV" value="$(HOTT_UART_LOWER)"/>
<file name="radio_control.c"/>
<file name="hott.c"/>
<file name="hott_common.c"/>
</makefile>
<makefile target="ap" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_HOTT"/>
<define name="USE_$(HOTT_UART_UPPER)"/>
<define name="$(HOTT_UART_UPPER)_BAUD" value="B115200"/>
<define name="HOTT_UART_DEV" value="$(HOTT_UART_LOWER)"/>
<file name="radio_control.c"/>
<file name="hott.c"/> <file name="hott.c"/>
<file name="hott_common.c"/> <file name="hott_common.c"/>
<test> <test>
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_HOTT"/> <define name="RADIO_CONTROL_TYPE_HOTT"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/hott.h" type="string"/>
<define name="HOTT_UART_DEV" value="uart5"/> <define name="HOTT_UART_DEV" value="uart5"/>
<define name="USE_UART5"/> <define name="USE_UART5"/>
</test> </test>
+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="radio_control_intermcu" dir="radio_control" task="radio_control">
<doc>
<description>
Radio control over intermcu
</description>
</doc>
<dep>
<depends>radio_control_common</depends>
<provides>radio_control</provides>
</dep>
<header>
<file name="rc_intermcu.h"/>
</header>
<init fun="rc_intermcu_init()"/>
<datalink message="IMCU_RADIO_COMMANDS" fun="rc_intermcu_parse_msg(buf)" class="intermcu"/>
<datalink message="IMCU_FBW_STATUS" fun="rc_intermcu_parse_fbw_status(buf)" class="intermcu"/>
<makefile target="ap">
<define name="RADIO_CONTROL_TYPE_INTERMCU"/>
<file name="rc_intermcu.c"/>
<test>
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_INTERMCU"/>
</test>
</makefile>
</module>
+3 -17
View File
@@ -10,38 +10,24 @@
If they set the PPM_CONFIG makefile variable, add it to the target. If they set the PPM_CONFIG makefile variable, add it to the target.
The PPM_CONFIG define is then used in the _board_.h file to set the configuration. The PPM_CONFIG define is then used in the _board_.h file to set the configuration.
</description> </description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
<configure name="PPM_CONFIG" value="num" description="Select PPM config, as some boards can used different mapping for the ppm input pin"/> <configure name="PPM_CONFIG" value="num" description="Select PPM config, as some boards can used different mapping for the ppm input pin"/>
</doc> </doc>
<dep> <dep>
<depends>radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
<file name="ppm.h"/> <file name="ppm.h"/>
</header> </header>
<init fun="ppm_init()"/>
<event fun="ppm_event()"/>
<makefile target="ap|fbw|sim|nps|hitl"> <makefile target="ap|fbw|sim|nps|hitl">
<configure name="RADIO_CONTROL_LED" default="none"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/ppm.h" type="string"/>
<define name="PPM_CONFIG" value="$(PPM_CONFIG)" cond="ifdef PPM_CONFIG"/> <define name="PPM_CONFIG" value="$(PPM_CONFIG)" cond="ifdef PPM_CONFIG"/>
</makefile>
<makefile target="fbw|sim|nps|hitl">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_PPM"/> <define name="RADIO_CONTROL_TYPE_PPM"/>
<file name="radio_control.c"/>
<file name="ppm.c"/>
<file_arch name="ppm_arch.c"/>
</makefile>
<makefile target="ap" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_PPM"/>
<file name="radio_control.c"/>
<file name="ppm.c"/> <file name="ppm.c"/>
<file_arch name="ppm_arch.c"/> <file_arch name="ppm_arch.c"/>
<test> <test>
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_PPM"/> <define name="RADIO_CONTROL_TYPE_PPM"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/ppm.h" type="string"/>
</test> </test>
</makefile> </makefile>
</module> </module>
+3 -22
View File
@@ -5,47 +5,28 @@
<description> <description>
Radio control based on Futaba SBUS Radio control based on Futaba SBUS
</description> </description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
<configure name="SBUS_PORT" value="UARTX" description="UART name where SBUS receiver is plugged"/> <configure name="SBUS_PORT" value="UARTX" description="UART name where SBUS receiver is plugged"/>
</doc> </doc>
<dep> <dep>
<depends>uart</depends> <depends>uart,radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
<file name="sbus.h"/> <file name="sbus.h"/>
</header> </header>
<init fun="sbus_init()"/>
<event fun="sbus_event()"/>
<makefile target="ap|fbw"> <makefile target="ap|fbw">
<configure name="RADIO_CONTROL_LED" default="none"/>
<configure name="SBUS_UART" value="$(SBUS_PORT)" case="upper|lower"/> <configure name="SBUS_UART" value="$(SBUS_PORT)" case="upper|lower"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/sbus.h" type="string"/>
</makefile>
<makefile target="fbw">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SBUS"/> <define name="RADIO_CONTROL_TYPE_SBUS"/>
<define name="USE_$(SBUS_UART_UPPER)"/> <define name="USE_$(SBUS_UART_UPPER)"/>
<define name="USE_$(SBUS_UART_UPPER)_TX" value="FALSE"/> <define name="USE_$(SBUS_UART_UPPER)_TX" value="FALSE"/>
<define name="$(SBUS_UART_UPPER)_BAUD" value="B100000"/> <define name="$(SBUS_UART_UPPER)_BAUD" value="B100000"/>
<define name="SBUS_UART_DEV" value="$(SBUS_UART_LOWER)"/> <define name="SBUS_UART_DEV" value="$(SBUS_UART_LOWER)"/>
<file name="radio_control.c"/>
<file name="sbus.c"/>
<file name="sbus_common.c"/>
</makefile>
<makefile target="ap" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SBUS"/>
<define name="USE_$(SBUS_UART_UPPER)"/>
<define name="USE_$(SBUS_UART_UPPER)_TX" value="FALSE"/>
<define name="$(SBUS_UART_UPPER)_BAUD" value="B100000"/>
<define name="SBUS_UART_DEV" value="$(SBUS_UART_LOWER)"/>
<file name="radio_control.c"/>
<file name="sbus.c"/> <file name="sbus.c"/>
<file name="sbus_common.c"/> <file name="sbus_common.c"/>
<test> <test>
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SBUS"/> <define name="RADIO_CONTROL_TYPE_SBUS"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/sbus.h" type="string"/>
<define name="SBUS_UART_DEV" value="uart4"/> <define name="SBUS_UART_DEV" value="uart4"/>
<define name="USE_UART4"/> <define name="USE_UART4"/>
</test> </test>
+3 -23
View File
@@ -5,26 +5,21 @@
<description> <description>
Radio control using two Futaba SBUS receivers Radio control using two Futaba SBUS receivers
</description> </description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
<configure name="SBUS1_PORT" value="UARTX" description="UART name where first SBUS receiver is plugged"/> <configure name="SBUS1_PORT" value="UARTX" description="UART name where first SBUS receiver is plugged"/>
<configure name="SBUS2_PORT" value="UARTX" description="UART name where second SBUS receiver is plugged"/> <configure name="SBUS2_PORT" value="UARTX" description="UART name where second SBUS receiver is plugged"/>
</doc> </doc>
<dep> <dep>
<depends>uart</depends> <depends>uart,radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
<file name="sbus_dual.h"/> <file name="sbus_dual.h"/>
</header> </header>
<init fun="sbus_dual_init()"/>
<event fun="sbus_dual_event()"/>
<makefile target="ap|fbw"> <makefile target="ap|fbw">
<configure name="RADIO_CONTROL_LED" default="none"/>
<configure name="SBUS1_UART" value="$(SBUS1_PORT)" case="upper|lower"/> <configure name="SBUS1_UART" value="$(SBUS1_PORT)" case="upper|lower"/>
<configure name="SBUS2_UART" value="$(SBUS2_PORT)" case="upper|lower"/> <configure name="SBUS2_UART" value="$(SBUS2_PORT)" case="upper|lower"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/sbus_dual.h" type="string"/>
</makefile>
<makefile target="fbw">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SBUS"/> <define name="RADIO_CONTROL_TYPE_SBUS"/>
<define name="USE_$(SBUS1_UART_UPPER)"/> <define name="USE_$(SBUS1_UART_UPPER)"/>
<define name="USE_$(SBUS2_UART_UPPER)"/> <define name="USE_$(SBUS2_UART_UPPER)"/>
@@ -32,26 +27,11 @@
<define name="$(SBUS2_UART_UPPER)_BAUD" value="B100000"/> <define name="$(SBUS2_UART_UPPER)_BAUD" value="B100000"/>
<define name="SBUS1_UART_DEV" value="$(SBUS1_UART_LOWER)"/> <define name="SBUS1_UART_DEV" value="$(SBUS1_UART_LOWER)"/>
<define name="SBUS2_UART_DEV" value="$(SBUS2_UART_LOWER)"/> <define name="SBUS2_UART_DEV" value="$(SBUS2_UART_LOWER)"/>
<file name="radio_control.c"/>
<file name="sbus_dual.c"/>
<file name="sbus_common.c"/>
</makefile>
<makefile target="ap" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SBUS"/>
<define name="USE_$(SBUS1_UART_UPPER)"/>
<define name="USE_$(SBUS2_UART_UPPER)"/>
<define name="$(SBUS1_UART_UPPER)_BAUD" value="B100000"/>
<define name="$(SBUS2_UART_UPPER)_BAUD" value="B100000"/>
<define name="SBUS1_UART_DEV" value="$(SBUS1_UART_LOWER)"/>
<define name="SBUS2_UART_DEV" value="$(SBUS2_UART_LOWER)"/>
<file name="radio_control.c"/>
<file name="sbus_dual.c"/> <file name="sbus_dual.c"/>
<file name="sbus_common.c"/> <file name="sbus_common.c"/>
<test> <test>
<define name="RADIO_CONTROL"/> <define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SBUS"/> <define name="RADIO_CONTROL_TYPE_SBUS"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/sbus_dual.h" type="string"/>
<define name="SBUS1_UART_DEV" value="uart4"/> <define name="SBUS1_UART_DEV" value="uart4"/>
<define name="SBUS2_UART_DEV" value="uart5"/> <define name="SBUS2_UART_DEV" value="uart5"/>
<define name="USE_UART4"/> <define name="USE_UART4"/>
+4 -40
View File
@@ -7,7 +7,6 @@
Define USE_DSMX on STM32 microcontrollers to bind in DSMX instead of DSM2 Define USE_DSMX on STM32 microcontrollers to bind in DSMX instead of DSM2
</description> </description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
<configure name="RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT" value="uartX" description="UART for primary spektrum receiver"/> <configure name="RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT" value="uartX" description="UART for primary spektrum receiver"/>
<configure name="RADIO_CONTROL_SPEKTRUM_SECONDARY_PORT" value="uartX" description="UART for optional secondary spektrum receiver"/> <configure name="RADIO_CONTROL_SPEKTRUM_SECONDARY_PORT" value="uartX" description="UART for optional secondary spektrum receiver"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="0|1" description="enable secondary receiver (default: disabled)"/> <configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" value="0|1" description="enable secondary receiver (default: disabled)"/>
@@ -15,19 +14,15 @@
<define name="SPEKTRUM_SYS_TYPE" value="0" description="force system type (default: 0 for auto detect)"/> <define name="SPEKTRUM_SYS_TYPE" value="0" description="force system type (default: 0 for auto detect)"/>
</doc> </doc>
<dep> <dep>
<depends>uart</depends> <depends>uart,radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
<file name="spektrum.h"/> <file name="spektrum.h"/>
</header> </header>
<makefile target="ap|fbw|sim|nps|test_radio_control"> <init fun="spektrum_init()"/>
<configure name="RADIO_CONTROL_LED" default="none"/> <event fun="spektrum_event()"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/> <makefile target="ap|fbw|test_radio_control">
</makefile>
<makefile target="fbw|test_radio_control">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/spektrum.h" type="string"/>
<define name="RADIO_CONTROL_BIND_IMPL_FUNC" value="spektrum_try_bind"/> <define name="RADIO_CONTROL_BIND_IMPL_FUNC" value="spektrum_try_bind"/>
<configure name="SPEKTRUM_PRIMARY_UART" value="$(RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT)" case="upper|lower"/> <configure name="SPEKTRUM_PRIMARY_UART" value="$(RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT)" case="upper|lower"/>
@@ -45,36 +40,9 @@
<define name="$(SPEKTRUM_SECONDARY_UART_UPPER)_BAUD" value="B115200" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/> <define name="$(SPEKTRUM_SECONDARY_UART_UPPER)_BAUD" value="B115200" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/>
<define name="USE_$(SPEKTRUM_SECONDARY_UART_UPPER)_TX" value="FALSE" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/> <define name="USE_$(SPEKTRUM_SECONDARY_UART_UPPER)_TX" value="FALSE" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/>
<file name="radio_control.c"/>
<file name="spektrum.c"/>
</makefile>
<makefile target="ap">
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/spektrum.h" type="string"/>
</makefile>
<makefile target="ap" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_BIND_IMPL_FUNC" value="spektrum_try_bind"/>
<configure name="SPEKTRUM_PRIMARY_UART" value="$(RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT)" case="upper|lower"/>
<define name="USE_$(SPEKTRUM_PRIMARY_UART_UPPER)"/>
<define name="SPEKTRUM_PRIMARY_UART" value="$(SPEKTRUM_PRIMARY_UART_LOWER)"/>
<define name="SPEKTRUM_PRIMARY_UART_UPPER" value="$(SPEKTRUM_PRIMARY_UART_UPPER)_GPIO"/>
<define name="$(SPEKTRUM_PRIMARY_UART_UPPER)_BAUD" value="B115200"/>
<define name="USE_$(SPEKTRUM_PRIMARY_UART_UPPER)_TX" value="FALSE"/>
<configure name="SPEKTRUM_SECONDARY_UART" value="$(RADIO_CONTROL_SPEKTRUM_SECONDARY_PORT)" case="upper|lower"/>
<configure name="USE_SECONDARY_SPEKTRUM_RECEIVER" default="0"/>
<define name="USE_$(SPEKTRUM_SECONDARY_UART_UPPER)" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/>
<define name="SPEKTRUM_SECONDARY_UART" value="$(SPEKTRUM_SECONDARY_UART_LOWER)" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/>
<define name="SPEKTRUM_SECONDARY_UART_UPPER" value="$(SPEKTRUM_SECONDARY_UART_UPPER)_GPIO" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/>
<define name="$(SPEKTRUM_SECONDARY_UART_UPPER)_BAUD" value="B115200" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/>
<define name="USE_$(SPEKTRUM_SECONDARY_UART_UPPER)_TX" value="FALSE" cond="ifneq ($(USE_SECONDARY_SPEKTRUM_RECEIVER),0)"/>
<file name="radio_control.c"/>
<file name="spektrum.c"/> <file name="spektrum.c"/>
<test> <test>
<define name="RADIO_CONTROL"/> <define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/spektrum.h" type="string"/>
<define name="SPEKTRUM_PRIMARY_UART" value="uart2"/> <define name="SPEKTRUM_PRIMARY_UART" value="uart2"/>
<define name="SPEKTRUM_SECONDARY_UART" value="uart3"/> <define name="SPEKTRUM_SECONDARY_UART" value="uart3"/>
<define name="USE_UART2"/> <define name="USE_UART2"/>
@@ -86,13 +54,9 @@
</test> </test>
</makefile> </makefile>
<makefile target="sim|nps|hitl"> <makefile target="sim|nps|hitl">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/spektrum_arch.h" type="string"/>
<file name="radio_control.c"/>
<file_arch name="spektrum_arch.c" dir="modules/radio_control"/> <file_arch name="spektrum_arch.c" dir="modules/radio_control"/>
<test> <test>
<define name="RADIO_CONTROL"/> <define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/spektrum.h" type="string"/>
</test> </test>
</makefile> </makefile>
</module> </module>
+4 -19
View File
@@ -5,7 +5,6 @@
<description> <description>
Radio control based on the SuperbitRF chip Radio control based on the SuperbitRF chip
</description> </description>
<configure name="RADIO_CONTROL_LED" value="none|num" description="LED number or 'none' to disable"/>
<configure name="SUPERBITRF_SPI_DEV" value="SPI2" description="SPI used for SuperbitRF"/> <configure name="SUPERBITRF_SPI_DEV" value="SPI2" description="SPI used for SuperbitRF"/>
<configure name="SUPERBITRF_SPI_SLAVE_IDX" value="2" description="SPI slave number for SuperbitRF"/> <configure name="SUPERBITRF_SPI_SLAVE_IDX" value="2" description="SPI slave number for SuperbitRF"/>
</doc> </doc>
@@ -20,37 +19,24 @@
</dl_settings> </dl_settings>
</settings> </settings>
<dep> <dep>
<depends>spi_master</depends> <depends>spi_master,radio_control_common</depends>
<provides>radio_control</provides> <provides>radio_control</provides>
</dep> </dep>
<header> <header>
<file name="superbitrf_rc.h"/> <file name="superbitrf_rc.h"/>
</header> </header>
<init fun="superbitrf_rc_init()"/>
<event fun="superbitrf_rc_event()"/>
<makefile target="ap|fbw|sim|nps"> <makefile target="ap|fbw|sim|nps">
<configure name="RADIO_CONTROL_LED" default="none"/>
<configure name="SUPERBITRF_SPI_DEV" default="SPI2"/> <configure name="SUPERBITRF_SPI_DEV" default="SPI2"/>
<configure name="SUPERBITRF_SPI_SLAVE_IDX" default="2"/> <configure name="SUPERBITRF_SPI_SLAVE_IDX" default="2"/>
<define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/> <define name="RADIO_CONTROL_LED" value="$(RADIO_CONTROL_LED)" cond="ifneq ($(RADIO_CONTROL_LED),none)"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/superbitrf_rc.h" type="string"/>
</makefile> </makefile>
<makefile target="fbw"> <makefile target="ap|fbw">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SUPERBITRF"/> <define name="RADIO_CONTROL_TYPE_SUPERBITRF"/>
<define name="USE_SUPERBITRF"/> <define name="USE_SUPERBITRF"/>
<define name="USE_$(SUPERBITRF_SPI_DEV)"/> <define name="USE_$(SUPERBITRF_SPI_DEV)"/>
<define name="USE_SPI_SLAVE$(SUPERBITRF_SPI_SLAVE_IDX)"/> <define name="USE_SPI_SLAVE$(SUPERBITRF_SPI_SLAVE_IDX)"/>
<file name="radio_control.c"/>
<file name="superbitrf_rc.c"/>
<file name="superbitrf.c" dir="modules/datalink"/>
<file name="cyrf6936.c" dir="peripherals"/>
</makefile>
<makefile target="ap" cond="ifeq (,$(findstring $(SEPARATE_FBW),1 TRUE))">
<define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SUPERBITRF"/>
<define name="USE_SUPERBITRF"/>
<define name="USE_$(SUPERBITRF_SPI_DEV)"/>
<define name="USE_SPI_SLAVE$(SUPERBITRF_SPI_SLAVE_IDX)"/>
<file name="radio_control.c"/>
<file name="superbitrf_rc.c"/> <file name="superbitrf_rc.c"/>
<file name="superbitrf.c" dir="modules/datalink"/> <file name="superbitrf.c" dir="modules/datalink"/>
<file name="cyrf6936.c" dir="peripherals"/> <file name="cyrf6936.c" dir="peripherals"/>
@@ -58,7 +44,6 @@
<define name="RADIO_CONTROL"/> <define name="RADIO_CONTROL"/>
<define name="RADIO_CONTROL_TYPE_SUPERBITRF"/> <define name="RADIO_CONTROL_TYPE_SUPERBITRF"/>
<define name="USE_SUPERBITRF"/> <define name="USE_SUPERBITRF"/>
<define name="RADIO_CONTROL_TYPE_H" value="modules/radio_control/superbitrf_rc.h" type="string"/>
<define name="SUPERBITRF_SPI_DEV" value="spi2"/> <define name="SUPERBITRF_SPI_DEV" value="spi2"/>
<define name="USE_SPI2"/> <define name="USE_SPI2"/>
<define name="SPI_MASTER"/> <define name="SPI_MASTER"/>
+1 -1
View File
@@ -11,7 +11,7 @@
<file name="rssi.h"/> <file name="rssi.h"/>
</header> </header>
<init fun="rssi_init()"/> <init fun="rssi_init()"/>
<datalink message="RSSI" fun="parse_rssi_dl(buf)"/> <datalink message="RSSI" fun="parse_rssi_dl(buf)" class="telemetry"/>
<makefile> <makefile>
<file name="rssi.c"/> <file name="rssi.c"/>
</makefile> </makefile>
+3 -3
View File
@@ -33,9 +33,9 @@
<dl_settings> <dl_settings>
<dl_settings NAME="control horiz"> <dl_settings NAME="control horiz">
<dl_settings NAME="trim"> <dl_settings NAME="trim">
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_roll_trim" shortname="roll_trim" module="modules/intermcu/inter_mcu" param="COMMAND_ROLL_TRIM"/> <dl_setting MAX="960" MIN="-960" STEP="1" VAR="command_roll_trim" shortname="roll_trim" module="modules/core/commands" param="COMMAND_ROLL_TRIM"/>
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_pitch_trim" shortname="pitch_trim" param="COMMAND_PITCH_TRIM"/> <dl_setting MAX="960" MIN="-960" STEP="1" VAR="command_pitch_trim" shortname="pitch_trim" param="COMMAND_PITCH_TRIM"/>
<dl_setting MAX="9000" MIN="-9000" STEP="1" VAR="ap_state->command_yaw_trim" shortname="yaw_trim" param="COMMAND_YAW_TRIM"/> <dl_setting MAX="9000" MIN="-9000" STEP="1" VAR="command_yaw_trim" shortname="yaw_trim" param="COMMAND_YAW_TRIM"/>
</dl_settings> </dl_settings>
<dl_settings NAME="attitude"> <dl_settings NAME="attitude">
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/> <dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/>
+3 -3
View File
@@ -23,9 +23,9 @@
<dl_settings> <dl_settings>
<dl_settings NAME="control horiz"> <dl_settings NAME="control horiz">
<dl_settings NAME="trim"> <dl_settings NAME="trim">
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_roll_trim" shortname="roll_trim" module="modules/intermcu/inter_mcu" param="COMMAND_ROLL_TRIM"/> <dl_setting MAX="960" MIN="-960" STEP="1" VAR="command_roll_trim" shortname="roll_trim" module="modules/core/commands" param="COMMAND_ROLL_TRIM"/>
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="ap_state->command_pitch_trim" shortname="pitch_trim" param="COMMAND_PITCH_TRIM"/> <dl_setting MAX="960" MIN="-960" STEP="1" VAR="command_pitch_trim" shortname="pitch_trim" param="COMMAND_PITCH_TRIM"/>
<dl_setting MAX="9000" MIN="-9000" STEP="1" VAR="ap_state->command_yaw_trim" shortname="yaw_trim" param="COMMAND_YAW_TRIM"/> <dl_setting MAX="9000" MIN="-9000" STEP="1" VAR="command_yaw_trim" shortname="yaw_trim" param="COMMAND_YAW_TRIM"/>
</dl_settings> </dl_settings>
<dl_settings NAME="attitude"> <dl_settings NAME="attitude">
<dl_setting MAX="25000" MIN="000" STEP="250" VAR="h_ctl_roll_pgain" shortname="roll_pgain" module="stabilization/stabilization_attitude"/> <dl_setting MAX="25000" MIN="000" STEP="250" VAR="h_ctl_roll_pgain" shortname="roll_pgain" module="stabilization/stabilization_attitude"/>
+12 -12
View File
@@ -5,13 +5,19 @@
<description> <description>
Core system components meta module Core system components meta module
Includes: sys_time, commands interfaces Includes: sys_time, commands, LED interfaces
</description> </description>
</doc> </doc>
<dep> <dep>
<depends>mcu,math,state_interface,@actuators|@intermcu,settings|@no_settings</depends> <depends>mcu,math,state_interface,@actuators|@intermcu,settings|@no_settings</depends>
<provides>core</provides> <provides>core</provides>
</dep> </dep>
<header>
<file name="commands.h"/>
<file name="led.h" dir="."/>
</header>
<init fun="commands_init()"/>
<periodic fun="LED_PERIODIC()" freq="50"/>
<makefile> <makefile>
<configure name="SRC_BOARD" value="boards/$(BOARD)"/> <configure name="SRC_BOARD" value="boards/$(BOARD)"/>
<configure name="SRC_MODULES" value="modules"/> <configure name="SRC_MODULES" value="modules"/>
@@ -21,7 +27,10 @@
<include name="$(SRC_BOARD)"/> <include name="$(SRC_BOARD)"/>
<include name="$(SRC_MODULES)"/> <include name="$(SRC_MODULES)"/>
<file name="sys_time.c" dir="mcu_periph"/> <file name="sys_time.c" dir="mcu_periph"/>
<file name="commands.c"/>
<file_arch name="sys_time_arch.c" dir="mcu_periph"/> <file_arch name="sys_time_arch.c" dir="mcu_periph"/>
<file_arch name="led_hw.c" dir="." cond="ifeq ($(ARCH), stm32)"/>
<file_arch name="led_hw.c" dir="." cond="ifeq ($(TARGET), sim)"/>
<flag name="LDFLAGS" value="lrt" cond="ifeq ($(ARCH), linux)"/> <flag name="LDFLAGS" value="lrt" cond="ifeq ($(ARCH), linux)"/>
<raw> <raw>
VPATH += $(PAPARAZZI_HOME)/var/share VPATH += $(PAPARAZZI_HOME)/var/share
@@ -30,17 +39,8 @@ $(TARGET).ARCHDIR = $(ARCH)
</raw> </raw>
<test/> <test/>
</makefile> </makefile>
<makefile target="fbw" firmware="fixedwing"> <makefile target="!nps|sim">
<file name="commands.c"/> <define name="USE_LED"/>
</makefile>
<makefile target="ap|sim|nps|hitl" firmware="fixedwing" cond="ifeq (,$(findstring $(SEPARATE_FBW),0 FALSE))">
<file name="commands.c"/>
</makefile>
<makefile firmware="rotorcraft">
<file name="commands.c"/>
</makefile>
<makefile firmware="rover">
<file name="commands.c"/>
</makefile> </makefile>
</module> </module>
+6 -1
View File
@@ -5,11 +5,16 @@
<description>FBW target specific module</description> <description>FBW target specific module</description>
</doc> </doc>
<dep> <dep>
<depends>electrical</depends> <depends>electrical,@intermcu</depends>
<provides>no_settings</provides> <provides>no_settings</provides>
</dep> </dep>
<header>
<file name="main_fbw.h" dir="."/>
</header>
<datalink message="EMERGENCY_CMD" fun="main_fbw_parse_EMERGENCY_CMD(buf)"/>
<makefile target="fbw"> <makefile target="fbw">
<define name="FBW"/> <define name="FBW"/>
<file name="main_fbw.c" dir="."/>
</makefile> </makefile>
</module> </module>
+1
View File
@@ -15,6 +15,7 @@
<configure name="INS_BAUD" default="B921600"/> <configure name="INS_BAUD" default="B921600"/>
<configure name="AP_DEV" default="/dev/ttyUSB2"/> <configure name="AP_DEV" default="/dev/ttyUSB2"/>
<configure name="AP_BAUD" default="B921600"/> <configure name="AP_BAUD" default="B921600"/>
<define name="AP"/>
<define name="AP_DEV" value="$(AP_DEV)"/> <define name="AP_DEV" value="$(AP_DEV)"/>
<define name="AP_BAUD" value="$(AP_BAUD)"/> <define name="AP_BAUD" value="$(AP_BAUD)"/>
<define name="INS_DEV" value="$(INS_DEV)"/> <define name="INS_DEV" value="$(INS_DEV)"/>

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