From 041bfb22c607b9d292cdd554648e27f50333a9d3 Mon Sep 17 00:00:00 2001 From: jflyper Date: Fri, 25 May 2018 11:01:49 +0900 Subject: [PATCH] Create a pg for rxConfig --- src/main/blackbox/blackbox.c | 1 + src/main/cms/cms.c | 1 + src/main/cms/cms_menu_misc.c | 1 + src/main/drivers/rx/rx_cc2500.c | 2 + src/main/drivers/rx/rx_nrf24l01.c | 2 + src/main/drivers/rx/rx_xn297.c | 4 ++ src/main/fc/config.c | 1 + src/main/fc/fc_core.c | 1 + src/main/fc/fc_init.c | 1 + src/main/fc/fc_rc.c | 2 + src/main/fc/fc_tasks.c | 2 + src/main/fc/rc_adjustments.c | 3 +- src/main/fc/rc_controls.c | 1 + src/main/fc/rc_modes.c | 1 + src/main/flight/failsafe.c | 1 + src/main/flight/mixer.c | 1 + src/main/flight/servos.c | 1 + src/main/interface/cli.c | 1 + src/main/interface/msp.c | 1 + src/main/interface/settings.c | 1 + src/main/io/dashboard.c | 1 + src/main/io/ledstrip.c | 1 + src/main/io/osd.c | 1 + src/main/io/rcdevice_cam.c | 4 ++ src/main/io/spektrum_rssi.c | 2 + src/main/pg/rx.c | 72 ++++++++++++++++++++ src/main/pg/rx.h | 58 ++++++++++++++++ src/main/rx/cc2500_frsky_d.c | 2 + src/main/rx/cc2500_frsky_shared.c | 1 + src/main/rx/cc2500_frsky_x.c | 2 + src/main/rx/crsf.c | 2 + src/main/rx/flysky.c | 7 +- src/main/rx/fport.c | 2 + src/main/rx/ibus.c | 2 + src/main/rx/jetiexbus.c | 2 + src/main/rx/msp.c | 2 + src/main/rx/nrf24_cx10.c | 2 + src/main/rx/nrf24_h8_3d.c | 2 + src/main/rx/nrf24_inav.c | 2 + src/main/rx/nrf24_syma.c | 2 + src/main/rx/nrf24_v202.c | 2 + src/main/rx/pwm.c | 2 + src/main/rx/rx.c | 56 +-------------- src/main/rx/rx.h | 39 +---------- src/main/rx/rx_spi.c | 1 + src/main/rx/rx_spi.h | 1 + src/main/rx/sbus.c | 2 + src/main/rx/sbus_channels.c | 2 + src/main/rx/spektrum.c | 2 + src/main/rx/sumd.c | 2 + src/main/rx/sumh.c | 2 + src/main/rx/xbus.c | 2 + src/main/target/ALIENFLIGHTF1/config.c | 2 + src/main/target/ALIENFLIGHTF3/config.c | 1 + src/main/target/ALIENFLIGHTF4/config.c | 2 + src/main/target/ALIENFLIGHTNGF7/config.c | 2 + src/main/target/ALIENWHOOP/config.c | 1 + src/main/target/BEEBRAIN_V2F/config.c | 1 + src/main/target/COLIBRI/config.c | 2 + src/main/target/COLIBRI_RACE/i2c_bst.c | 2 + src/main/target/CRAZYFLIE2/serialrx.c | 2 + src/main/target/FF_PIKOBLX/config.c | 2 + src/main/target/FRSKYF3/config.c | 1 + src/main/target/FRSKYF4/config.c | 1 + src/main/target/KISSFCV2F7/config.c | 1 + src/main/target/MULTIFLITEPICO/config.c | 2 + src/main/target/NAZE/config.c | 2 + src/main/target/RACEBASE/config.c | 2 + src/main/target/REVOLT/config.c | 1 + src/main/target/SITL/target.c | 2 + src/main/target/SPRACINGF3NEO/config.c | 2 + src/main/target/SPRACINGF4EVO/config.c | 2 + src/main/target/SPRACINGF7DUAL/config.c | 2 + src/main/target/TINYFISH/config.c | 2 + src/main/target/common_defaults_post.h | 23 +++++++ src/main/telemetry/frsky_hub.c | 1 + src/main/telemetry/jetiexbus.c | 2 + src/main/telemetry/ltm.c | 2 + src/main/telemetry/mavlink.c | 1 + src/main/telemetry/smartport.c | 1 + src/main/telemetry/srxl.c | 2 + src/main/telemetry/telemetry.c | 1 + src/test/Makefile | 7 +- src/test/unit/arming_prevention_unittest.cc | 1 + src/test/unit/blackbox_unittest.cc | 1 + src/test/unit/cli_unittest.cc | 3 +- src/test/unit/flight_failsafe_unittest.cc | 5 +- src/test/unit/flight_imu_unittest.cc | 3 + src/test/unit/ledstrip_unittest.cc | 3 + src/test/unit/osd_unittest.cc | 2 + src/test/unit/platform.h | 3 + src/test/unit/rc_controls_unittest.cc | 3 +- src/test/unit/rcdevice_unittest.cc | 1 + src/test/unit/rx_crsf_unittest.cc | 2 + src/test/unit/rx_ibus_unittest.cc | 1 + src/test/unit/rx_ranges_unittest.cc | 2 + src/test/unit/rx_rx_unittest.cc | 1 + src/test/unit/telemetry_crsf_msp_unittest.cc | 1 + src/test/unit/telemetry_crsf_unittest.cc | 1 + 99 files changed, 320 insertions(+), 101 deletions(-) create mode 100644 src/main/pg/rx.c create mode 100644 src/main/pg/rx.h diff --git a/src/main/blackbox/blackbox.c b/src/main/blackbox/blackbox.c index 97451f8f7..812fbc571 100644 --- a/src/main/blackbox/blackbox.c +++ b/src/main/blackbox/blackbox.c @@ -45,6 +45,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/compass/compass.h" #include "drivers/sensor.h" diff --git a/src/main/cms/cms.c b/src/main/cms/cms.c index d7f86e388..3fcfe78e2 100644 --- a/src/main/cms/cms.c +++ b/src/main/cms/cms.c @@ -54,6 +54,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" // For 'ARM' related #include "fc/config.h" diff --git a/src/main/cms/cms_menu_misc.c b/src/main/cms/cms_menu_misc.c index 27cfd2b0a..ca8c27718 100644 --- a/src/main/cms/cms_menu_misc.c +++ b/src/main/cms/cms_menu_misc.c @@ -41,6 +41,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "fc/config.h" #include "fc/rc_controls.h" diff --git a/src/main/drivers/rx/rx_cc2500.c b/src/main/drivers/rx/rx_cc2500.c index b9848354e..33df3e90b 100644 --- a/src/main/drivers/rx/rx_cc2500.c +++ b/src/main/drivers/rx/rx_cc2500.c @@ -31,6 +31,8 @@ #include "build/build_config.h" +#include "pg/rx.h" + #include "drivers/io.h" #include "drivers/rx/rx_spi.h" #include "drivers/system.h" diff --git a/src/main/drivers/rx/rx_nrf24l01.c b/src/main/drivers/rx/rx_nrf24l01.c index 4902e6723..8c5d3b9c7 100644 --- a/src/main/drivers/rx/rx_nrf24l01.c +++ b/src/main/drivers/rx/rx_nrf24l01.c @@ -31,6 +31,8 @@ #include "build/build_config.h" +#include "pg/rx.h" + #include "drivers/bus_spi.h" #include "drivers/io.h" #include "drivers/io_impl.h" diff --git a/src/main/drivers/rx/rx_xn297.c b/src/main/drivers/rx/rx_xn297.c index 1ecd753a0..782413ba9 100644 --- a/src/main/drivers/rx/rx_xn297.c +++ b/src/main/drivers/rx/rx_xn297.c @@ -24,8 +24,12 @@ #include #include +#include "platform.h" + #include "common/crc.h" +#include "pg/rx.h" + #include "drivers/rx/rx_nrf24l01.h" #include "drivers/rx/rx_spi.h" diff --git a/src/main/fc/config.c b/src/main/fc/config.c index 121dcc647..ffe2535f7 100644 --- a/src/main/fc/config.c +++ b/src/main/fc/config.c @@ -51,6 +51,7 @@ #include "pg/beeper.h" #include "pg/beeper_dev.h" +#include "pg/rx.h" #include "pg/pg.h" #include "pg/pg_ids.h" diff --git a/src/main/fc/fc_core.c b/src/main/fc/fc_core.c index 447f089a0..bd665d403 100644 --- a/src/main/fc/fc_core.c +++ b/src/main/fc/fc_core.c @@ -37,6 +37,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/light_led.h" #include "drivers/serial_usb_vcp.h" diff --git a/src/main/fc/fc_init.c b/src/main/fc/fc_init.c index 67e7eba7b..25635a000 100644 --- a/src/main/fc/fc_init.c +++ b/src/main/fc/fc_init.c @@ -97,6 +97,7 @@ #include "pg/pinio.h" #include "pg/piniobox.h" #include "pg/pg.h" +#include "pg/rx.h" #include "pg/rx_pwm.h" #include "pg/sdcard.h" #include "pg/vcd.h" diff --git a/src/main/fc/fc_rc.c b/src/main/fc/fc_rc.c index d4f1e8ae9..3e78dd103 100644 --- a/src/main/fc/fc_rc.c +++ b/src/main/fc/fc_rc.c @@ -44,8 +44,10 @@ #include "flight/imu.h" #include "flight/gps_rescue.h" #include "flight/pid.h" +#include "pg/rx.h" #include "rx/rx.h" + #include "sensors/battery.h" typedef float (applyRatesFn)(const int axis, float rcCommandf, const float rcCommandfAbs); diff --git a/src/main/fc/fc_tasks.c b/src/main/fc/fc_tasks.c index d50b74c56..3c9efbfe7 100644 --- a/src/main/fc/fc_tasks.c +++ b/src/main/fc/fc_tasks.c @@ -73,6 +73,8 @@ #include "msp/msp_serial.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "sensors/acceleration.h" diff --git a/src/main/fc/rc_adjustments.c b/src/main/fc/rc_adjustments.c index 261c4eb23..b8e1a0d89 100644 --- a/src/main/fc/rc_adjustments.c +++ b/src/main/fc/rc_adjustments.c @@ -37,9 +37,10 @@ #include "drivers/time.h" +#include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" -#include "config/feature.h" +#include "pg/rx.h" #include "flight/pid.h" diff --git a/src/main/fc/rc_controls.c b/src/main/fc/rc_controls.c index fefc8db39..f16b4dc3a 100644 --- a/src/main/fc/rc_controls.c +++ b/src/main/fc/rc_controls.c @@ -36,6 +36,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "cms/cms.h" diff --git a/src/main/fc/rc_modes.c b/src/main/fc/rc_modes.c index dde865ed2..8293488e7 100644 --- a/src/main/fc/rc_modes.c +++ b/src/main/fc/rc_modes.c @@ -32,6 +32,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "fc/config.h" #include "fc/rc_controls.h" diff --git a/src/main/flight/failsafe.c b/src/main/flight/failsafe.c index 0c16f7cc4..9ee097815 100644 --- a/src/main/flight/failsafe.c +++ b/src/main/flight/failsafe.c @@ -29,6 +29,7 @@ #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/time.h" diff --git a/src/main/flight/mixer.c b/src/main/flight/mixer.c index b8baec601..21f187167 100644 --- a/src/main/flight/mixer.c +++ b/src/main/flight/mixer.c @@ -35,6 +35,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/pwm_output.h" #include "drivers/pwm_esc_detect.h" diff --git a/src/main/flight/servos.c b/src/main/flight/servos.c index 411a25189..d1e75d0b1 100644 --- a/src/main/flight/servos.c +++ b/src/main/flight/servos.c @@ -36,6 +36,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/pwm_output.h" diff --git a/src/main/interface/cli.c b/src/main/interface/cli.c index 0d4285ef8..ffb8275a2 100644 --- a/src/main/interface/cli.c +++ b/src/main/interface/cli.c @@ -126,6 +126,7 @@ extern uint8_t __config_end; #include "pg/pinio.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "pg/rx_pwm.h" #include "pg/timerio.h" #include "pg/usb.h" diff --git a/src/main/interface/msp.c b/src/main/interface/msp.c index 13fa3a216..463cbc35e 100644 --- a/src/main/interface/msp.c +++ b/src/main/interface/msp.c @@ -44,6 +44,7 @@ #include "pg/pg.h" #include "pg/pg_ids.h" #include "pg/beeper.h" +#include "pg/rx.h" #include "drivers/accgyro/accgyro.h" #include "drivers/bus_i2c.h" diff --git a/src/main/interface/settings.c b/src/main/interface/settings.c index f1167865a..6dd0078a2 100644 --- a/src/main/interface/settings.c +++ b/src/main/interface/settings.c @@ -75,6 +75,7 @@ #include "pg/pg_ids.h" #include "pg/pinio.h" #include "pg/piniobox.h" +#include "pg/rx.h" #include "pg/rx_pwm.h" #include "pg/sdcard.h" #include "pg/vcd.h" diff --git a/src/main/io/dashboard.c b/src/main/io/dashboard.c index 0ff1270d6..20abe2a8e 100644 --- a/src/main/io/dashboard.c +++ b/src/main/io/dashboard.c @@ -50,6 +50,7 @@ #include "pg/pg.h" #include "pg/pg_ids.h" #include "pg/dashboard.h" +#include "pg/rx.h" #include "fc/config.h" #include "fc/controlrate_profile.h" diff --git a/src/main/io/ledstrip.c b/src/main/io/ledstrip.c index 56e10a930..ec190d516 100644 --- a/src/main/io/ledstrip.c +++ b/src/main/io/ledstrip.c @@ -40,6 +40,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/light_ws2811strip.h" #include "drivers/serial.h" diff --git a/src/main/io/osd.c b/src/main/io/osd.c index b8b4fd5b2..81b1c353e 100644 --- a/src/main/io/osd.c +++ b/src/main/io/osd.c @@ -82,6 +82,7 @@ #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "rx/rx.h" diff --git a/src/main/io/rcdevice_cam.c b/src/main/io/rcdevice_cam.c index 4e02610c6..faf197873 100644 --- a/src/main/io/rcdevice_cam.c +++ b/src/main/io/rcdevice_cam.c @@ -21,6 +21,10 @@ #include #include +#include "platform.h" + +#include "pg/rx.h" + #include "drivers/time.h" #include "cms/cms.h" diff --git a/src/main/io/spektrum_rssi.c b/src/main/io/spektrum_rssi.c index a7213a78e..68405bb69 100644 --- a/src/main/io/spektrum_rssi.c +++ b/src/main/io/spektrum_rssi.c @@ -29,6 +29,8 @@ #include "drivers/system.h" #include "drivers/time.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/spektrum.h" #include "io/spektrum_rssi.h" diff --git a/src/main/pg/rx.c b/src/main/pg/rx.c new file mode 100644 index 000000000..317c234b1 --- /dev/null +++ b/src/main/pg/rx.c @@ -0,0 +1,72 @@ +/* + * This file is part of Cleanflight and Betaflight. + * + * Cleanflight and Betaflight are free software. You can redistribute + * this software and/or modify this software under the terms of the + * GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) + * any later version. + * + * Cleanflight and Betaflight are distributed in the hope that they + * will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software. + * + * If not, see . + */ + +#include "platform.h" + +#if defined(USE_PWM) || defined(USE_PPM) || defined(USE_SERIAL_RX) || defined(USE_RX_MSP) + +#include "pg/pg.h" +#include "pg/pg_ids.h" +#include "rx.h" + +#include "config/config_reset.h" + +#include "drivers/io.h" +#include "fc/rc_controls.h" +#include "rx/rx.h" +#include "rx/rx_spi.h" + +PG_REGISTER_WITH_RESET_FN(rxConfig_t, rxConfig, PG_RX_CONFIG, 2); +void pgResetFn_rxConfig(rxConfig_t *rxConfig) +{ + RESET_CONFIG_2(rxConfig_t, rxConfig, + .halfDuplex = 0, + .serialrx_provider = SERIALRX_PROVIDER, + .rx_spi_protocol = RX_SPI_DEFAULT_PROTOCOL, + .serialrx_inverted = 0, + .spektrum_bind_pin_override_ioTag = IO_TAG(SPEKTRUM_BIND_PIN), + .spektrum_bind_plug_ioTag = IO_TAG(BINDPLUG_PIN), + .spektrum_sat_bind = 0, + .spektrum_sat_bind_autoreset = 1, + .midrc = RX_MID_USEC, + .mincheck = 1050, + .maxcheck = 1900, + .rx_min_usec = RX_MIN_USEC, // any of first 4 channels below this value will trigger rx loss detection + .rx_max_usec = RX_MAX_USEC, // any of first 4 channels above this value will trigger rx loss detection + .rssi_src_frame_errors = false, + .rssi_channel = 0, + .rssi_scale = RSSI_SCALE_DEFAULT, + .rssi_invert = 0, + .rcInterpolation = RC_SMOOTHING_AUTO, + .rcInterpolationChannels = 0, + .rcInterpolationInterval = 19, + .fpvCamAngleDegrees = 0, + .airModeActivateThreshold = 32, + .max_aux_channel = DEFAULT_AUX_CHANNEL_COUNT + ); + +#ifdef RX_CHANNELS_TAER + parseRcChannels("TAER1234", rxConfig); +#else + parseRcChannels("AETR1234", rxConfig); +#endif +} + +#endif diff --git a/src/main/pg/rx.h b/src/main/pg/rx.h new file mode 100644 index 000000000..9a76a4fb9 --- /dev/null +++ b/src/main/pg/rx.h @@ -0,0 +1,58 @@ +/* + * This file is part of Cleanflight and Betaflight. + * + * Cleanflight and Betaflight are free software. You can redistribute + * this software and/or modify this software under the terms of the + * GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) + * any later version. + * + * Cleanflight and Betaflight are distributed in the hope that they + * will be useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software. + * + * If not, see . + */ + +#pragma once + +#include "drivers/io_types.h" + +#include "pg/pg.h" + +typedef struct rxConfig_s { + uint8_t rcmap[RX_MAPPABLE_CHANNEL_COUNT]; // mapping of radio channels to internal RPYTA+ order + uint8_t serialrx_provider; // type of UART-based receiver (0 = spek 10, 1 = spek 11, 2 = sbus). Must be enabled by FEATURE_RX_SERIAL first. + uint8_t serialrx_inverted; // invert the serial RX protocol compared to it's default setting + uint8_t halfDuplex; // allow rx to operate in half duplex mode on F4, ignored for F1 and F3. + uint8_t rx_spi_protocol; // type of SPI RX protocol + // nrf24: 0 = v202 250kbps. (Must be enabled by FEATURE_RX_NRF24 first.) + uint32_t rx_spi_id; + uint8_t rx_spi_rf_channel_count; + ioTag_t spektrum_bind_pin_override_ioTag; + ioTag_t spektrum_bind_plug_ioTag; + uint8_t spektrum_sat_bind; // number of bind pulses for Spektrum satellite receivers + uint8_t spektrum_sat_bind_autoreset; // whenever we will reset (exit) binding mode after hard reboot + uint8_t rssi_channel; + uint8_t rssi_scale; + uint8_t rssi_invert; + uint16_t midrc; // Some radios have not a neutral point centered on 1500. can be changed here + uint16_t mincheck; // minimum rc end + uint16_t maxcheck; // maximum rc end + uint8_t rcInterpolation; + uint8_t rcInterpolationChannels; + uint8_t rcInterpolationInterval; + uint8_t fpvCamAngleDegrees; // Camera angle to be scaled into rc commands + uint8_t airModeActivateThreshold; // Throttle setpoint percent where airmode gets activated + + uint16_t rx_min_usec; + uint16_t rx_max_usec; + uint8_t max_aux_channel; + uint8_t rssi_src_frame_errors; // true to use frame drop flags in the rx protocol +} rxConfig_t; + +PG_DECLARE(rxConfig_t, rxConfig); diff --git a/src/main/rx/cc2500_frsky_d.c b/src/main/rx/cc2500_frsky_d.c index d95e42f39..cde912078 100644 --- a/src/main/rx/cc2500_frsky_d.c +++ b/src/main/rx/cc2500_frsky_d.c @@ -30,6 +30,8 @@ #include "build/build_config.h" #include "build/debug.h" +#include "pg/rx.h" + #include "common/maths.h" #include "common/utils.h" diff --git a/src/main/rx/cc2500_frsky_shared.c b/src/main/rx/cc2500_frsky_shared.c index c1eb21dcd..bc4783ca1 100644 --- a/src/main/rx/cc2500_frsky_shared.c +++ b/src/main/rx/cc2500_frsky_shared.c @@ -34,6 +34,7 @@ #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "rx/rx.h" #include "rx/rx_spi.h" diff --git a/src/main/rx/cc2500_frsky_x.c b/src/main/rx/cc2500_frsky_x.c index 55a26e97f..e50d219db 100644 --- a/src/main/rx/cc2500_frsky_x.c +++ b/src/main/rx/cc2500_frsky_x.c @@ -28,6 +28,8 @@ #include "build/build_config.h" #include "build/debug.h" +#include "pg/rx.h" + #include "common/maths.h" #include "common/utils.h" diff --git a/src/main/rx/crsf.c b/src/main/rx/crsf.c index cda5237c5..2f3753cb1 100644 --- a/src/main/rx/crsf.c +++ b/src/main/rx/crsf.c @@ -34,6 +34,8 @@ #include "common/maths.h" #include "common/utils.h" +#include "pg/rx.h" + #include "drivers/serial.h" #include "drivers/serial_uart.h" #include "drivers/system.h" diff --git a/src/main/rx/flysky.c b/src/main/rx/flysky.c index 3ea80827c..664a11d90 100644 --- a/src/main/rx/flysky.c +++ b/src/main/rx/flysky.c @@ -36,13 +36,14 @@ #include "fc/config.h" +#include "pg/pg.h" +#include "pg/pg_ids.h" +#include "pg/rx.h" + #include "rx/flysky_defs.h" #include "rx/rx.h" #include "rx/rx_spi.h" -#include "pg/pg.h" -#include "pg/pg_ids.h" - #include "sensors/battery.h" #include "flysky.h" diff --git a/src/main/rx/fport.c b/src/main/rx/fport.c index a86949146..1abc4c6c4 100644 --- a/src/main/rx/fport.c +++ b/src/main/rx/fport.c @@ -41,6 +41,8 @@ #include "telemetry/smartport.h" #endif +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/sbus_channels.h" #include "rx/fport.h" diff --git a/src/main/rx/ibus.c b/src/main/rx/ibus.c index b9b56d747..dd9bca21f 100644 --- a/src/main/rx/ibus.c +++ b/src/main/rx/ibus.c @@ -33,6 +33,8 @@ #ifdef USE_SERIAL_RX +#include "pg/rx.h" + #include "common/utils.h" #include "drivers/serial.h" diff --git a/src/main/rx/jetiexbus.c b/src/main/rx/jetiexbus.c index 2ce081f0f..07667c715 100644 --- a/src/main/rx/jetiexbus.c +++ b/src/main/rx/jetiexbus.c @@ -49,6 +49,8 @@ #include "build/build_config.h" #include "build/debug.h" +#include "pg/rx.h" + #include "common/utils.h" #include "drivers/time.h" diff --git a/src/main/rx/msp.c b/src/main/rx/msp.c index 836cbc808..1fb56b7b1 100644 --- a/src/main/rx/msp.c +++ b/src/main/rx/msp.c @@ -28,9 +28,11 @@ #include "common/utils.h" #include "drivers/io.h" +#include "pg/rx.h" #include "rx/rx.h" #include "rx/msp.h" + static uint16_t mspFrame[MAX_SUPPORTED_RC_CHANNEL_COUNT]; static bool rxMspFrameDone = false; diff --git a/src/main/rx/nrf24_cx10.c b/src/main/rx/nrf24_cx10.c index 8920ea6ce..3f1c6cfc2 100644 --- a/src/main/rx/nrf24_cx10.c +++ b/src/main/rx/nrf24_cx10.c @@ -31,6 +31,8 @@ #include "build/build_config.h" +#include "pg/rx.h" + #include "drivers/io.h" #include "drivers/rx/rx_nrf24l01.h" #include "drivers/rx/rx_xn297.h" diff --git a/src/main/rx/nrf24_h8_3d.c b/src/main/rx/nrf24_h8_3d.c index 481ccbdc7..c6c1418b2 100644 --- a/src/main/rx/nrf24_h8_3d.c +++ b/src/main/rx/nrf24_h8_3d.c @@ -33,6 +33,8 @@ #include "common/utils.h" +#include "pg/rx.h" + #include "drivers/io.h" #include "drivers/rx/rx_nrf24l01.h" #include "drivers/rx/rx_xn297.h" diff --git a/src/main/rx/nrf24_inav.c b/src/main/rx/nrf24_inav.c index e883b149e..e084e5eb1 100644 --- a/src/main/rx/nrf24_inav.c +++ b/src/main/rx/nrf24_inav.c @@ -31,6 +31,8 @@ #include "common/utils.h" +#include "pg/rx.h" + #include "drivers/io.h" #include "drivers/rx/rx_nrf24l01.h" #include "drivers/time.h" diff --git a/src/main/rx/nrf24_syma.c b/src/main/rx/nrf24_syma.c index aa999748a..d9a2a7558 100644 --- a/src/main/rx/nrf24_syma.c +++ b/src/main/rx/nrf24_syma.c @@ -31,6 +31,8 @@ #include "build/build_config.h" +#include "pg/rx.h" + #include "drivers/io.h" #include "drivers/rx/rx_nrf24l01.h" #include "drivers/time.h" diff --git a/src/main/rx/nrf24_v202.c b/src/main/rx/nrf24_v202.c index e236b672c..b04781713 100644 --- a/src/main/rx/nrf24_v202.c +++ b/src/main/rx/nrf24_v202.c @@ -33,6 +33,8 @@ #include "common/utils.h" +#include "pg/rx.h" + #include "drivers/io.h" #include "drivers/rx/rx_nrf24l01.h" #include "drivers/time.h" diff --git a/src/main/rx/pwm.c b/src/main/rx/pwm.c index 684080cd4..356752797 100644 --- a/src/main/rx/pwm.c +++ b/src/main/rx/pwm.c @@ -32,6 +32,8 @@ #include "config/feature.h" +#include "pg/rx.h" + #include "drivers/rx/rx_pwm.h" #include "fc/config.h" diff --git a/src/main/rx/rx.c b/src/main/rx/rx.c index 81851357e..9c8f6909f 100644 --- a/src/main/rx/rx.c +++ b/src/main/rx/rx.c @@ -50,6 +50,7 @@ #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "rx/rx.h" #include "rx/pwm.h" @@ -108,61 +109,6 @@ uint32_t rcInvalidPulsPeriod[MAX_SUPPORTED_RC_CHANNEL_COUNT]; rxRuntimeConfig_t rxRuntimeConfig; static uint8_t rcSampleIndex = 0; -#ifndef RX_SPI_DEFAULT_PROTOCOL -#define RX_SPI_DEFAULT_PROTOCOL 0 -#endif -#ifndef SERIALRX_PROVIDER -#define SERIALRX_PROVIDER 0 -#endif - -#define RX_MIN_USEC 885 -#define RX_MAX_USEC 2115 -#define RX_MID_USEC 1500 - -#ifndef SPEKTRUM_BIND_PIN -#define SPEKTRUM_BIND_PIN NONE -#endif - -#ifndef BINDPLUG_PIN -#define BINDPLUG_PIN NONE -#endif - -PG_REGISTER_WITH_RESET_FN(rxConfig_t, rxConfig, PG_RX_CONFIG, 2); -void pgResetFn_rxConfig(rxConfig_t *rxConfig) -{ - RESET_CONFIG_2(rxConfig_t, rxConfig, - .halfDuplex = 0, - .serialrx_provider = SERIALRX_PROVIDER, - .rx_spi_protocol = RX_SPI_DEFAULT_PROTOCOL, - .serialrx_inverted = 0, - .spektrum_bind_pin_override_ioTag = IO_TAG(SPEKTRUM_BIND_PIN), - .spektrum_bind_plug_ioTag = IO_TAG(BINDPLUG_PIN), - .spektrum_sat_bind = 0, - .spektrum_sat_bind_autoreset = 1, - .midrc = RX_MID_USEC, - .mincheck = 1050, - .maxcheck = 1900, - .rx_min_usec = RX_MIN_USEC, // any of first 4 channels below this value will trigger rx loss detection - .rx_max_usec = RX_MAX_USEC, // any of first 4 channels above this value will trigger rx loss detection - .rssi_src_frame_errors = false, - .rssi_channel = 0, - .rssi_scale = RSSI_SCALE_DEFAULT, - .rssi_invert = 0, - .rcInterpolation = RC_SMOOTHING_AUTO, - .rcInterpolationChannels = 0, - .rcInterpolationInterval = 19, - .fpvCamAngleDegrees = 0, - .airModeActivateThreshold = 32, - .max_aux_channel = DEFAULT_AUX_CHANNEL_COUNT - ); - -#ifdef RX_CHANNELS_TAER - parseRcChannels("TAER1234", rxConfig); -#else - parseRcChannels("AETR1234", rxConfig); -#endif -} - PG_REGISTER_ARRAY_WITH_RESET_FN(rxChannelRangeConfig_t, NON_AUX_CHANNEL_COUNT, rxChannelRangeConfigs, PG_RX_CHANNEL_RANGE_CONFIG, 0); void pgResetFn_rxChannelRangeConfigs(rxChannelRangeConfig_t *rxChannelRangeConfigs) { diff --git a/src/main/rx/rx.h b/src/main/rx/rx.h index 3b7872263..3bc27662d 100644 --- a/src/main/rx/rx.h +++ b/src/main/rx/rx.h @@ -84,8 +84,6 @@ extern const char rcChannelLetters[]; extern int16_t rcData[MAX_SUPPORTED_RC_CHANNEL_COUNT]; // interval [1000;2000] -#define RX_MAPPABLE_CHANNEL_COUNT 8 - #define RSSI_SCALE_MIN 1 #define RSSI_SCALE_MAX 255 #define RSSI_SCALE_DEFAULT (4095.0f / 100.0f + 0.5f) // 100% @ 4095 @@ -120,39 +118,6 @@ typedef struct rxChannelRangeConfig_s { PG_DECLARE_ARRAY(rxChannelRangeConfig_t, NON_AUX_CHANNEL_COUNT, rxChannelRangeConfigs); -typedef struct rxConfig_s { - uint8_t rcmap[RX_MAPPABLE_CHANNEL_COUNT]; // mapping of radio channels to internal RPYTA+ order - uint8_t serialrx_provider; // type of UART-based receiver (0 = spek 10, 1 = spek 11, 2 = sbus). Must be enabled by FEATURE_RX_SERIAL first. - uint8_t serialrx_inverted; // invert the serial RX protocol compared to it's default setting - uint8_t halfDuplex; // allow rx to operate in half duplex mode on F4, ignored for F1 and F3. - uint8_t rx_spi_protocol; // type of SPI RX protocol - // nrf24: 0 = v202 250kbps. (Must be enabled by FEATURE_RX_NRF24 first.) - uint32_t rx_spi_id; - uint8_t rx_spi_rf_channel_count; - ioTag_t spektrum_bind_pin_override_ioTag; - ioTag_t spektrum_bind_plug_ioTag; - uint8_t spektrum_sat_bind; // number of bind pulses for Spektrum satellite receivers - uint8_t spektrum_sat_bind_autoreset; // whenever we will reset (exit) binding mode after hard reboot - uint8_t rssi_channel; - uint8_t rssi_scale; - uint8_t rssi_invert; - uint16_t midrc; // Some radios have not a neutral point centered on 1500. can be changed here - uint16_t mincheck; // minimum rc end - uint16_t maxcheck; // maximum rc end - uint8_t rcInterpolation; - uint8_t rcInterpolationChannels; - uint8_t rcInterpolationInterval; - uint8_t fpvCamAngleDegrees; // Camera angle to be scaled into rc commands - uint8_t airModeActivateThreshold; // Throttle setpoint percent where airmode gets activated - - uint16_t rx_min_usec; - uint16_t rx_max_usec; - uint8_t max_aux_channel; - uint8_t rssi_src_frame_errors; // true to use frame drop flags in the rx protocol -} rxConfig_t; - -PG_DECLARE(rxConfig_t, rxConfig); - struct rxRuntimeConfig_s; typedef uint16_t (*rcReadRawDataFnPtr)(const struct rxRuntimeConfig_s *rxRuntimeConfig, uint8_t chan); // used by receiver driver to return channel data typedef uint8_t (*rcFrameStatusFnPtr)(struct rxRuntimeConfig_s *rxRuntimeConfig); @@ -187,7 +152,9 @@ bool rxIsReceivingSignal(void); bool rxAreFlightChannelsValid(void); bool calculateRxChannelsAndUpdateFailsafe(timeUs_t currentTimeUs); -void parseRcChannels(const char *input, rxConfig_t *rxConfig); +struct rxConfig_s; + +void parseRcChannels(const char *input, struct rxConfig_s *rxConfig); #define RSSI_MAX_VALUE 1023 diff --git a/src/main/rx/rx_spi.c b/src/main/rx/rx_spi.c index e60a378d1..f2d421ebb 100644 --- a/src/main/rx/rx_spi.c +++ b/src/main/rx/rx_spi.c @@ -30,6 +30,7 @@ #include "common/utils.h" #include "config/feature.h" +#include "pg/rx.h" #include "drivers/rx/rx_spi.h" #include "drivers/rx/rx_nrf24l01.h" diff --git a/src/main/rx/rx_spi.h b/src/main/rx/rx_spi.h index 094b854a5..c5d2cf9d5 100644 --- a/src/main/rx/rx_spi.h +++ b/src/main/rx/rx_spi.h @@ -20,6 +20,7 @@ #pragma once +#include "pg/rx.h" #include "rx/rx.h" // Used in MSP. Append at end. diff --git a/src/main/rx/sbus.c b/src/main/rx/sbus.c index 463ad3f03..c5fb0787d 100644 --- a/src/main/rx/sbus.c +++ b/src/main/rx/sbus.c @@ -38,6 +38,8 @@ #include "telemetry/telemetry.h" #endif +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/sbus.h" #include "rx/sbus_channels.h" diff --git a/src/main/rx/sbus_channels.c b/src/main/rx/sbus_channels.c index 32fa43977..a709427e2 100644 --- a/src/main/rx/sbus_channels.c +++ b/src/main/rx/sbus_channels.c @@ -28,6 +28,8 @@ #include "common/utils.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/sbus_channels.h" diff --git a/src/main/rx/spektrum.c b/src/main/rx/spektrum.c index 0dcbf14e5..9045b6863 100644 --- a/src/main/rx/spektrum.c +++ b/src/main/rx/spektrum.c @@ -44,6 +44,8 @@ #include "telemetry/telemetry.h" #include "telemetry/srxl.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/spektrum.h" diff --git a/src/main/rx/sumd.c b/src/main/rx/sumd.c index c4c2c8ee8..7d4140df8 100644 --- a/src/main/rx/sumd.c +++ b/src/main/rx/sumd.c @@ -37,6 +37,8 @@ #include "telemetry/telemetry.h" #endif +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/sumd.h" diff --git a/src/main/rx/sumh.c b/src/main/rx/sumh.c index dd83bdbae..c23f30e6a 100644 --- a/src/main/rx/sumh.c +++ b/src/main/rx/sumh.c @@ -42,6 +42,8 @@ #include "telemetry/telemetry.h" #endif +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/sumh.h" diff --git a/src/main/rx/xbus.c b/src/main/rx/xbus.c index 006ce4d6f..748f70b0f 100644 --- a/src/main/rx/xbus.c +++ b/src/main/rx/xbus.c @@ -36,6 +36,8 @@ #include "telemetry/telemetry.h" #endif +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/xbus.h" diff --git a/src/main/target/ALIENFLIGHTF1/config.c b/src/main/target/ALIENFLIGHTF1/config.c index 8e5aa1d91..9a7648539 100644 --- a/src/main/target/ALIENFLIGHTF1/config.c +++ b/src/main/target/ALIENFLIGHTF1/config.c @@ -34,6 +34,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #ifdef BRUSHED_MOTORS_PWM_RATE diff --git a/src/main/target/ALIENFLIGHTF3/config.c b/src/main/target/ALIENFLIGHTF3/config.c index 19b1ba5a0..0e63f9557 100644 --- a/src/main/target/ALIENFLIGHTF3/config.c +++ b/src/main/target/ALIENFLIGHTF3/config.c @@ -37,6 +37,7 @@ #include "flight/pid.h" #include "pg/beeper_dev.h" +#include "pg/rx.h" #include "rx/rx.h" diff --git a/src/main/target/ALIENFLIGHTF4/config.c b/src/main/target/ALIENFLIGHTF4/config.c index 8d299c19b..94ac50e09 100644 --- a/src/main/target/ALIENFLIGHTF4/config.c +++ b/src/main/target/ALIENFLIGHTF4/config.c @@ -36,6 +36,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "io/serial.h" diff --git a/src/main/target/ALIENFLIGHTNGF7/config.c b/src/main/target/ALIENFLIGHTNGF7/config.c index 857602599..acd7a9ad9 100644 --- a/src/main/target/ALIENFLIGHTNGF7/config.c +++ b/src/main/target/ALIENFLIGHTNGF7/config.c @@ -35,6 +35,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "io/serial.h" diff --git a/src/main/target/ALIENWHOOP/config.c b/src/main/target/ALIENWHOOP/config.c index 637e89bef..39334e902 100644 --- a/src/main/target/ALIENWHOOP/config.c +++ b/src/main/target/ALIENWHOOP/config.c @@ -52,6 +52,7 @@ #include "flight/pid.h" #include "io/beeper.h" #include "io/serial.h" +#include "pg/rx.h" #include "rx/rx.h" #include "sensors/barometer.h" #include "sensors/boardalignment.h" diff --git a/src/main/target/BEEBRAIN_V2F/config.c b/src/main/target/BEEBRAIN_V2F/config.c index 2dec4bb3f..70def8007 100644 --- a/src/main/target/BEEBRAIN_V2F/config.c +++ b/src/main/target/BEEBRAIN_V2F/config.c @@ -43,6 +43,7 @@ #include "flight/pid.h" #include "pg/vcd.h" +#include "pg/rx.h" #include "rx/rx.h" diff --git a/src/main/target/COLIBRI/config.c b/src/main/target/COLIBRI/config.c index b3395c7e7..3d0cf1e71 100644 --- a/src/main/target/COLIBRI/config.c +++ b/src/main/target/COLIBRI/config.c @@ -37,6 +37,8 @@ #include "io/serial.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "sensors/boardalignment.h" diff --git a/src/main/target/COLIBRI_RACE/i2c_bst.c b/src/main/target/COLIBRI_RACE/i2c_bst.c index 51c1824ee..f74f84d62 100644 --- a/src/main/target/COLIBRI_RACE/i2c_bst.c +++ b/src/main/target/COLIBRI_RACE/i2c_bst.c @@ -41,6 +41,8 @@ #include "io/flashfs.h" #include "io/beeper.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/msp.h" diff --git a/src/main/target/CRAZYFLIE2/serialrx.c b/src/main/target/CRAZYFLIE2/serialrx.c index 91daa2633..ef9822417 100644 --- a/src/main/target/CRAZYFLIE2/serialrx.c +++ b/src/main/target/CRAZYFLIE2/serialrx.c @@ -47,6 +47,8 @@ #include "io/serial.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/targetcustomserial.h" #include "syslink.h" diff --git a/src/main/target/FF_PIKOBLX/config.c b/src/main/target/FF_PIKOBLX/config.c index 983a17ca9..073fdbbda 100644 --- a/src/main/target/FF_PIKOBLX/config.c +++ b/src/main/target/FF_PIKOBLX/config.c @@ -36,6 +36,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "io/serial.h" diff --git a/src/main/target/FRSKYF3/config.c b/src/main/target/FRSKYF3/config.c index 0c63079ae..0ecf9f2b3 100644 --- a/src/main/target/FRSKYF3/config.c +++ b/src/main/target/FRSKYF3/config.c @@ -23,6 +23,7 @@ #ifdef USE_TARGET_CONFIG #include "drivers/io.h" +#include "pg/rx.h" #include "rx/rx.h" #include "io/serial.h" diff --git a/src/main/target/FRSKYF4/config.c b/src/main/target/FRSKYF4/config.c index 6d35988db..2d96b1c94 100644 --- a/src/main/target/FRSKYF4/config.c +++ b/src/main/target/FRSKYF4/config.c @@ -23,6 +23,7 @@ #ifdef USE_TARGET_CONFIG #include "drivers/io.h" +#include "pg/rx.h" #include "rx/rx.h" #include "io/serial.h" diff --git a/src/main/target/KISSFCV2F7/config.c b/src/main/target/KISSFCV2F7/config.c index 2c321ead8..5d103add0 100644 --- a/src/main/target/KISSFCV2F7/config.c +++ b/src/main/target/KISSFCV2F7/config.c @@ -24,6 +24,7 @@ #include "platform.h" #include "drivers/serial.h" +#include "pg/rx.h" #include "rx/rx.h" #include "telemetry/telemetry.h" diff --git a/src/main/target/MULTIFLITEPICO/config.c b/src/main/target/MULTIFLITEPICO/config.c index 66950c636..ca3b444f9 100644 --- a/src/main/target/MULTIFLITEPICO/config.c +++ b/src/main/target/MULTIFLITEPICO/config.c @@ -37,6 +37,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "sensors/battery.h" diff --git a/src/main/target/NAZE/config.c b/src/main/target/NAZE/config.c index 4c71ee4f8..9ee4aa179 100644 --- a/src/main/target/NAZE/config.c +++ b/src/main/target/NAZE/config.c @@ -38,6 +38,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "sensors/acceleration.h" diff --git a/src/main/target/RACEBASE/config.c b/src/main/target/RACEBASE/config.c index bd2ad0ed6..8719bd52e 100644 --- a/src/main/target/RACEBASE/config.c +++ b/src/main/target/RACEBASE/config.c @@ -27,6 +27,8 @@ #include "fc/config.h" +#include "pg/rx.h" + #include "rx/rx.h" void targetConfiguration(void) diff --git a/src/main/target/REVOLT/config.c b/src/main/target/REVOLT/config.c index d12f678f8..135160113 100644 --- a/src/main/target/REVOLT/config.c +++ b/src/main/target/REVOLT/config.c @@ -24,6 +24,7 @@ #include "platform.h" #include "drivers/serial.h" +#include "pg/rx.h" #include "rx/rx.h" #include "telemetry/telemetry.h" diff --git a/src/main/target/SITL/target.c b/src/main/target/SITL/target.c index bc62dcb43..6b39529f9 100644 --- a/src/main/target/SITL/target.c +++ b/src/main/target/SITL/target.c @@ -48,6 +48,8 @@ const timerHardware_t timerHardware[1]; // unused #include "fc/config.h" #include "scheduler/scheduler.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "dyad.h" diff --git a/src/main/target/SPRACINGF3NEO/config.c b/src/main/target/SPRACINGF3NEO/config.c index c385eed94..75b6d4371 100644 --- a/src/main/target/SPRACINGF3NEO/config.c +++ b/src/main/target/SPRACINGF3NEO/config.c @@ -35,6 +35,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "io/serial.h" diff --git a/src/main/target/SPRACINGF4EVO/config.c b/src/main/target/SPRACINGF4EVO/config.c index f3cc490f1..008ac1883 100644 --- a/src/main/target/SPRACINGF4EVO/config.c +++ b/src/main/target/SPRACINGF4EVO/config.c @@ -27,6 +27,8 @@ #include "io/serial.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "sensors/barometer.h" diff --git a/src/main/target/SPRACINGF7DUAL/config.c b/src/main/target/SPRACINGF7DUAL/config.c index cb4d7a851..61200984c 100644 --- a/src/main/target/SPRACINGF7DUAL/config.c +++ b/src/main/target/SPRACINGF7DUAL/config.c @@ -35,6 +35,8 @@ #include "flight/mixer.h" #include "flight/pid.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "io/serial.h" diff --git a/src/main/target/TINYFISH/config.c b/src/main/target/TINYFISH/config.c index 84a872ae1..f2c31e504 100644 --- a/src/main/target/TINYFISH/config.c +++ b/src/main/target/TINYFISH/config.c @@ -33,6 +33,8 @@ #include "io/serial.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "sensors/battery.h" diff --git a/src/main/target/common_defaults_post.h b/src/main/target/common_defaults_post.h index 119f98061..ce187dc5a 100644 --- a/src/main/target/common_defaults_post.h +++ b/src/main/target/common_defaults_post.h @@ -201,3 +201,26 @@ #define SPI3_MOSI_PIN PB5 #endif #endif + +// Extracted from rx/rx.c and rx/rx.h + +#define RX_MAPPABLE_CHANNEL_COUNT 8 + +#ifndef RX_SPI_DEFAULT_PROTOCOL +#define RX_SPI_DEFAULT_PROTOCOL 0 +#endif +#ifndef SERIALRX_PROVIDER +#define SERIALRX_PROVIDER 0 +#endif + +#define RX_MIN_USEC 885 +#define RX_MAX_USEC 2115 +#define RX_MID_USEC 1500 + +#ifndef SPEKTRUM_BIND_PIN +#define SPEKTRUM_BIND_PIN NONE +#endif + +#ifndef BINDPLUG_PIN +#define BINDPLUG_PIN NONE +#endif diff --git a/src/main/telemetry/frsky_hub.c b/src/main/telemetry/frsky_hub.c index e0d28e44d..37f8ca3ef 100644 --- a/src/main/telemetry/frsky_hub.c +++ b/src/main/telemetry/frsky_hub.c @@ -38,6 +38,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/accgyro/accgyro.h" #include "drivers/sensor.h" diff --git a/src/main/telemetry/jetiexbus.c b/src/main/telemetry/jetiexbus.c index 731fe6fe1..3f14cfe7b 100644 --- a/src/main/telemetry/jetiexbus.c +++ b/src/main/telemetry/jetiexbus.c @@ -41,6 +41,8 @@ #include "flight/position.h" #include "flight/imu.h" +#include "pg/rx.h" + #include "io/serial.h" #include "rx/rx.h" #include "rx/jetiexbus.h" diff --git a/src/main/telemetry/ltm.c b/src/main/telemetry/ltm.c index ee4920ebc..3e2d7f596 100644 --- a/src/main/telemetry/ltm.c +++ b/src/main/telemetry/ltm.c @@ -66,6 +66,8 @@ #include "io/ledstrip.h" #include "io/beeper.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "flight/mixer.h" diff --git a/src/main/telemetry/mavlink.c b/src/main/telemetry/mavlink.c index 6f1722d3e..dd03138dc 100644 --- a/src/main/telemetry/mavlink.c +++ b/src/main/telemetry/mavlink.c @@ -38,6 +38,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/accgyro/accgyro.h" #include "drivers/sensor.h" diff --git a/src/main/telemetry/smartport.c b/src/main/telemetry/smartport.c index aca287780..f3f5c7839 100644 --- a/src/main/telemetry/smartport.c +++ b/src/main/telemetry/smartport.c @@ -40,6 +40,7 @@ #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/accgyro/accgyro.h" #include "drivers/compass/compass.h" diff --git a/src/main/telemetry/srxl.c b/src/main/telemetry/srxl.c index 680351e51..5e60b3fbd 100644 --- a/src/main/telemetry/srxl.c +++ b/src/main/telemetry/srxl.c @@ -48,6 +48,8 @@ #include "io/gps.h" +#include "pg/rx.h" + #include "rx/rx.h" #include "rx/spektrum.h" #include "io/spektrum_vtx_control.h" diff --git a/src/main/telemetry/telemetry.c b/src/main/telemetry/telemetry.c index 36e163834..b6f8a84b5 100644 --- a/src/main/telemetry/telemetry.c +++ b/src/main/telemetry/telemetry.c @@ -30,6 +30,7 @@ #include "pg/pg.h" #include "pg/pg_ids.h" +#include "pg/rx.h" #include "drivers/timer.h" #include "drivers/serial.h" diff --git a/src/test/Makefile b/src/test/Makefile index 17b4828b1..f7f89443b 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -190,7 +190,9 @@ rx_ranges_unittest_SRC := \ $(USER_DIR)/common/bitarray.c \ $(USER_DIR)/common/maths.c \ $(USER_DIR)/fc/rc_modes.c \ - $(USER_DIR)/rx/rx.c + $(USER_DIR)/rx/rx.c \ + $(USER_DIR)/pg/pg.c \ + $(USER_DIR)/pg/rx.c rx_rx_unittest_SRC := \ @@ -198,7 +200,8 @@ rx_rx_unittest_SRC := \ $(USER_DIR)/fc/rc_modes.c \ $(USER_DIR)/common/bitarray.c \ $(USER_DIR)/common/maths.c \ - $(USER_DIR)/config/feature.c + $(USER_DIR)/config/feature.c \ + $(USER_DIR)/pg/rx.c scheduler_unittest_SRC := \ diff --git a/src/test/unit/arming_prevention_unittest.cc b/src/test/unit/arming_prevention_unittest.cc index 25d499741..86e1ea2aa 100644 --- a/src/test/unit/arming_prevention_unittest.cc +++ b/src/test/unit/arming_prevention_unittest.cc @@ -24,6 +24,7 @@ extern "C" { #include "config/feature.h" #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "fc/config.h" #include "fc/controlrate_profile.h" #include "fc/fc_core.h" diff --git a/src/test/unit/blackbox_unittest.cc b/src/test/unit/blackbox_unittest.cc index c0b17e643..771631491 100644 --- a/src/test/unit/blackbox_unittest.cc +++ b/src/test/unit/blackbox_unittest.cc @@ -25,6 +25,7 @@ extern "C" { #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "drivers/accgyro/accgyro.h" #include "drivers/accgyro/gyro_sync.h" diff --git a/src/test/unit/cli_unittest.cc b/src/test/unit/cli_unittest.cc index 24eef922e..1ed0612e2 100644 --- a/src/test/unit/cli_unittest.cc +++ b/src/test/unit/cli_unittest.cc @@ -27,9 +27,10 @@ extern "C" { #include "platform.h" #include "target.h" #include "build/version.h" - #include "pg/pg.h" #include "config/feature.h" + #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "drivers/buf_writer.h" #include "drivers/vtx_common.h" #include "fc/config.h" diff --git a/src/test/unit/flight_failsafe_unittest.cc b/src/test/unit/flight_failsafe_unittest.cc index 96bc03abf..4f708a48e 100644 --- a/src/test/unit/flight_failsafe_unittest.cc +++ b/src/test/unit/flight_failsafe_unittest.cc @@ -21,11 +21,12 @@ #include extern "C" { + #include "platform.h" #include "build/debug.h" + #include "pg/pg.h" #include "pg/pg_ids.h" - - #include "platform.h" + #include "pg/rx.h" #include "common/axis.h" #include "common/maths.h" diff --git a/src/test/unit/flight_imu_unittest.cc b/src/test/unit/flight_imu_unittest.cc index 5c041b28b..c3975cbf2 100644 --- a/src/test/unit/flight_imu_unittest.cc +++ b/src/test/unit/flight_imu_unittest.cc @@ -21,13 +21,16 @@ #include extern "C" { + #include "platform.h" #include "build/debug.h" #include "common/axis.h" #include "common/maths.h" #include "config/feature.h" + #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "drivers/accgyro/accgyro.h" #include "drivers/compass/compass.h" diff --git a/src/test/unit/ledstrip_unittest.cc b/src/test/unit/ledstrip_unittest.cc index 9cc96d95d..90b892271 100644 --- a/src/test/unit/ledstrip_unittest.cc +++ b/src/test/unit/ledstrip_unittest.cc @@ -22,12 +22,15 @@ //#define DEBUG_LEDSTRIP extern "C" { + #include "platform.h" #include "build/build_config.h" #include "common/axis.h" #include "common/color.h" + #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "drivers/io.h" #include "drivers/light_ws2811strip.h" diff --git a/src/test/unit/osd_unittest.cc b/src/test/unit/osd_unittest.cc index b903c4b38..b2868d9b3 100644 --- a/src/test/unit/osd_unittest.cc +++ b/src/test/unit/osd_unittest.cc @@ -27,7 +27,9 @@ extern "C" { #include "blackbox/blackbox.h" + #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "common/time.h" diff --git a/src/test/unit/platform.h b/src/test/unit/platform.h index 45070ca9c..b38073e4a 100644 --- a/src/test/unit/platform.h +++ b/src/test/unit/platform.h @@ -18,6 +18,7 @@ #pragma once #include +#include #define USE_PARAMETER_GROUPS @@ -108,3 +109,5 @@ typedef struct #define NVIC_PriorityGroup_2 0x500 #include "target.h" + +#include "target/common_defaults_post.h" diff --git a/src/test/unit/rc_controls_unittest.cc b/src/test/unit/rc_controls_unittest.cc index 3efcb7bbb..13992d02e 100644 --- a/src/test/unit/rc_controls_unittest.cc +++ b/src/test/unit/rc_controls_unittest.cc @@ -29,6 +29,7 @@ extern "C" { #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "blackbox/blackbox.h" #include "blackbox/blackbox_fielddefs.h" @@ -735,4 +736,4 @@ timeDelta_t getTaskDeltaTime(cfTaskId_e) { return 20000; } } armingDisableFlags_e getArmingDisableFlags(void) { return (armingDisableFlags_e) 0; -} \ No newline at end of file +} diff --git a/src/test/unit/rcdevice_unittest.cc b/src/test/unit/rcdevice_unittest.cc index 7239f4c48..fb67d99ff 100644 --- a/src/test/unit/rcdevice_unittest.cc +++ b/src/test/unit/rcdevice_unittest.cc @@ -47,6 +47,7 @@ extern "C" { #include "pg/pg.h" #include "pg/pg_ids.h" #include "pg/vcd.h" + #include "pg/rx.h" #include "rx/rx.h" diff --git a/src/test/unit/rx_crsf_unittest.cc b/src/test/unit/rx_crsf_unittest.cc index bea799d09..785f2cad9 100644 --- a/src/test/unit/rx_crsf_unittest.cc +++ b/src/test/unit/rx_crsf_unittest.cc @@ -28,6 +28,8 @@ extern "C" { #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" + #include "common/crc.h" #include "common/utils.h" diff --git a/src/test/unit/rx_ibus_unittest.cc b/src/test/unit/rx_ibus_unittest.cc index 94c00b6e0..5f1ca6571 100644 --- a/src/test/unit/rx_ibus_unittest.cc +++ b/src/test/unit/rx_ibus_unittest.cc @@ -20,6 +20,7 @@ extern "C" { #include "platform.h" #include "pg/pg.h" +#include "pg/rx.h" #include "drivers/serial.h" #include "drivers/time.h" #include "io/serial.h" diff --git a/src/test/unit/rx_ranges_unittest.cc b/src/test/unit/rx_ranges_unittest.cc index b2ab9df10..e0935dda0 100644 --- a/src/test/unit/rx_ranges_unittest.cc +++ b/src/test/unit/rx_ranges_unittest.cc @@ -25,7 +25,9 @@ extern "C" { #include "drivers/io.h" #include "common/maths.h" + #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "fc/rc_controls.h" #include "fc/rc_modes.h" #include "rx/rx.h" diff --git a/src/test/unit/rx_rx_unittest.cc b/src/test/unit/rx_rx_unittest.cc index bc46cdd27..61c73a582 100644 --- a/src/test/unit/rx_rx_unittest.cc +++ b/src/test/unit/rx_rx_unittest.cc @@ -23,6 +23,7 @@ extern "C" { #include "platform.h" + #include "pg/rx.h" #include "drivers/io.h" #include "rx/rx.h" #include "fc/rc_modes.h" diff --git a/src/test/unit/telemetry_crsf_msp_unittest.cc b/src/test/unit/telemetry_crsf_msp_unittest.cc index a7dd43646..40374e620 100644 --- a/src/test/unit/telemetry_crsf_msp_unittest.cc +++ b/src/test/unit/telemetry_crsf_msp_unittest.cc @@ -37,6 +37,7 @@ extern "C" { #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "drivers/nvic.h" #include "drivers/serial.h" diff --git a/src/test/unit/telemetry_crsf_unittest.cc b/src/test/unit/telemetry_crsf_unittest.cc index ed6ae7692..23d73d1df 100644 --- a/src/test/unit/telemetry_crsf_unittest.cc +++ b/src/test/unit/telemetry_crsf_unittest.cc @@ -36,6 +36,7 @@ extern "C" { #include "pg/pg.h" #include "pg/pg_ids.h" + #include "pg/rx.h" #include "drivers/serial.h" #include "drivers/system.h"