diff --git a/src/main/config/config.c b/src/main/config/config.c index 5afd827e37..37ede806b3 100755 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -35,8 +35,6 @@ #include "drivers/accgyro.h" #include "drivers/compass.h" #include "drivers/system.h" -#include "drivers/io.h" -#include "drivers/gpio.h" #include "drivers/timer.h" #include "drivers/pwm_rx.h" #include "drivers/serial.h" @@ -48,8 +46,8 @@ #include "sensors/compass.h" #include "sensors/acceleration.h" #include "sensors/barometer.h" -#include "sensors/boardalignment.h" #include "sensors/battery.h" +#include "sensors/boardalignment.h" #include "io/beeper.h" #include "io/serial.h" @@ -77,7 +75,6 @@ #include "config/config.h" #include "config/config_eeprom.h" - #include "config/config_profile.h" #include "config/config_master.h" #include "config/feature.h" @@ -93,8 +90,6 @@ #define BRUSHLESS_MOTORS_PWM_RATE 400 #endif -void useRcControlsConfig(modeActivationCondition_t *modeActivationConditions, escAndServoConfig_t *escAndServoConfigToUse, pidProfile_t *pidProfileToUse); -void targetConfiguration(master_t *config); master_t masterConfig; // master config struct with data independent from profiles profile_t *currentProfile; diff --git a/src/main/config/config.h b/src/main/config/config.h index 292fb13af8..d0e85f3612 100644 --- a/src/main/config/config.h +++ b/src/main/config/config.h @@ -83,3 +83,5 @@ void changeControlRateProfile(uint8_t profileIndex); bool canSoftwareSerialBeUsed(void); uint16_t getCurrentMinthrottle(void); +struct master_s; +void targetConfiguration(struct master_s *config); diff --git a/src/main/config/config_master.h b/src/main/config/config_master.h index db3a3364cf..d902906c4d 100644 --- a/src/main/config/config_master.h +++ b/src/main/config/config_master.h @@ -18,7 +18,7 @@ #pragma once // System-wide -typedef struct master_t { +typedef struct master_s { uint8_t version; uint16_t size; uint8_t magic_be; // magic number, should be 0xBE diff --git a/src/main/fc/rc_controls.h b/src/main/fc/rc_controls.h index 27d423e67e..dd25f7fa57 100644 --- a/src/main/fc/rc_controls.h +++ b/src/main/fc/rc_controls.h @@ -262,3 +262,6 @@ bool isUsingSticksForArming(void); int32_t getRcStickDeflection(int32_t axis, uint16_t midrc); bool isModeActivationConditionPresent(modeActivationCondition_t *modeActivationConditions, boxId_e modeId); +struct pidProfile_s; +struct escAndServoConfig_s; +void useRcControlsConfig(modeActivationCondition_t *modeActivationConditions, struct escAndServoConfig_s *escAndServoConfigToUse, struct pidProfile_s *pidProfileToUse); diff --git a/src/main/rx/ibus.c b/src/main/rx/ibus.c index 562999ccf1..51a2a92f63 100755 --- a/src/main/rx/ibus.c +++ b/src/main/rx/ibus.c @@ -52,7 +52,7 @@ static bool ibusFrameDone = false; static uint32_t ibusChannelData[IBUS_MAX_CHANNEL]; static void ibusDataReceive(uint16_t c); -static uint16_t ibusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); +static uint16_t ibusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); bool ibusInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback) { @@ -141,7 +141,7 @@ uint8_t ibusFrameStatus(void) return frameStatus; } -static uint16_t ibusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) +static uint16_t ibusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) { UNUSED(rxRuntimeConfig); return ibusChannelData[chan]; diff --git a/src/main/rx/jetiexbus.c b/src/main/rx/jetiexbus.c index 2c8d2a72ab..3e19702578 100644 --- a/src/main/rx/jetiexbus.c +++ b/src/main/rx/jetiexbus.c @@ -208,7 +208,7 @@ static uint8_t jetiExBusRequestFrame[EXBUS_MAX_REQUEST_FRAME_SIZE]; static uint16_t jetiExBusChannelData[JETIEXBUS_CHANNEL_COUNT]; static void jetiExBusDataReceive(uint16_t c); -static uint16_t jetiExBusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); +static uint16_t jetiExBusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); static void jetiExBusFrameReset(); @@ -416,7 +416,7 @@ uint8_t jetiExBusFrameStatus() } -static uint16_t jetiExBusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) +static uint16_t jetiExBusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) { if (chan >= rxRuntimeConfig->channelCount) return 0; diff --git a/src/main/rx/msp.c b/src/main/rx/msp.c index b850b9cab6..631fa412d6 100644 --- a/src/main/rx/msp.c +++ b/src/main/rx/msp.c @@ -36,7 +36,7 @@ static uint16_t mspFrame[MAX_SUPPORTED_RC_CHANNEL_COUNT]; static bool rxMspFrameDone = false; -static uint16_t rxMspReadRawRC(rxRuntimeConfig_t *rxRuntimeConfigPtr, uint8_t chan) +static uint16_t rxMspReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfigPtr, uint8_t chan) { UNUSED(rxRuntimeConfigPtr); return mspFrame[chan]; diff --git a/src/main/rx/msp.h b/src/main/rx/msp.h index 8b2ee6f7ce..4b004edc31 100644 --- a/src/main/rx/msp.h +++ b/src/main/rx/msp.h @@ -17,5 +17,6 @@ #pragma once +void rxMspInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); bool rxMspFrameComplete(void); void rxMspFrameReceive(uint16_t *frame, int channelCount); diff --git a/src/main/rx/pwm.c b/src/main/rx/pwm.c index e01653e2f5..3ad5277a7b 100644 --- a/src/main/rx/pwm.c +++ b/src/main/rx/pwm.c @@ -37,13 +37,13 @@ #include "rx/rx.h" #include "rx/pwm.h" -static uint16_t pwmReadRawRC(rxRuntimeConfig_t *rxRuntimeConfigPtr, uint8_t channel) +static uint16_t pwmReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfigPtr, uint8_t channel) { UNUSED(rxRuntimeConfigPtr); return pwmRead(channel); } -static uint16_t ppmReadRawRC(rxRuntimeConfig_t *rxRuntimeConfigPtr, uint8_t channel) +static uint16_t ppmReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfigPtr, uint8_t channel) { UNUSED(rxRuntimeConfigPtr); return ppmRead(channel); diff --git a/src/main/rx/pwm.h b/src/main/rx/pwm.h index e563a48c45..dc95576e39 100644 --- a/src/main/rx/pwm.h +++ b/src/main/rx/pwm.h @@ -16,3 +16,4 @@ */ #pragma once +void rxPwmInit(rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); diff --git a/src/main/rx/rx.c b/src/main/rx/rx.c index 1cd27234d8..2b0fa6e1b2 100644 --- a/src/main/rx/rx.c +++ b/src/main/rx/rx.c @@ -58,16 +58,6 @@ //#define DEBUG_RX_SIGNAL_LOSS -void rxPwmInit(rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); - -bool sbusInit(rxConfig_t *initialRxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); -bool spektrumInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); -bool sumdInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); -bool sumhInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); -bool ibusInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); - -void rxMspInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); - const char rcChannelLetters[] = "AERT12345678abcdefgh"; uint16_t rssi = 0; // range: [0;1023] @@ -101,7 +91,7 @@ rxRuntimeConfig_t rxRuntimeConfig; static rxConfig_t *rxConfig; static uint8_t rcSampleIndex = 0; -static uint16_t nullReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t channel) { +static uint16_t nullReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t channel) { UNUSED(rxRuntimeConfig); UNUSED(channel); diff --git a/src/main/rx/rx.h b/src/main/rx/rx.h index eef0aeb973..5e672e18bf 100644 --- a/src/main/rx/rx.h +++ b/src/main/rx/rx.h @@ -146,7 +146,7 @@ typedef struct rxRuntimeConfig_s { extern rxRuntimeConfig_t rxRuntimeConfig; -typedef uint16_t (*rcReadRawDataPtr)(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); // used by receiver driver to return channel data +typedef uint16_t (*rcReadRawDataPtr)(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); // used by receiver driver to return channel data struct modeActivationCondition_s; void rxInit(rxConfig_t *rxConfig, struct modeActivationCondition_s *modeActivationConditions); diff --git a/src/main/rx/sbus.c b/src/main/rx/sbus.c index 742f783406..205d4fd5c1 100644 --- a/src/main/rx/sbus.c +++ b/src/main/rx/sbus.c @@ -80,7 +80,7 @@ static uint16_t sbusStateFlags = 0; static bool sbusFrameDone = false; static void sbusDataReceive(uint16_t c); -static uint16_t sbusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); +static uint16_t sbusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); static uint32_t sbusChannelData[SBUS_MAX_CHANNEL]; @@ -254,7 +254,7 @@ uint8_t sbusFrameStatus(void) return SERIAL_RX_FRAME_COMPLETE; } -static uint16_t sbusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) +static uint16_t sbusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) { UNUSED(rxRuntimeConfig); // Linear fitting values read from OpenTX-ppmus and comparing with values received by X4R diff --git a/src/main/rx/sbus.h b/src/main/rx/sbus.h index b48212de59..a7fd626f92 100644 --- a/src/main/rx/sbus.h +++ b/src/main/rx/sbus.h @@ -18,3 +18,4 @@ #pragma once uint8_t sbusFrameStatus(void); +bool sbusInit(rxConfig_t *initialRxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); diff --git a/src/main/rx/spektrum.c b/src/main/rx/spektrum.c index 16fc166e71..610fc94301 100644 --- a/src/main/rx/spektrum.c +++ b/src/main/rx/spektrum.c @@ -60,7 +60,7 @@ static bool spekHiRes = false; static volatile uint8_t spekFrame[SPEK_FRAME_SIZE]; static void spektrumDataReceive(uint16_t c); -static uint16_t spektrumReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); +static uint16_t spektrumReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); static rxRuntimeConfig_t *rxRuntimeConfigPtr; @@ -163,7 +163,7 @@ uint8_t spektrumFrameStatus(void) return SERIAL_RX_FRAME_COMPLETE; } -static uint16_t spektrumReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) +static uint16_t spektrumReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) { uint16_t data; diff --git a/src/main/rx/spektrum.h b/src/main/rx/spektrum.h index 5481bdebc0..ba2f7eb241 100644 --- a/src/main/rx/spektrum.h +++ b/src/main/rx/spektrum.h @@ -21,6 +21,5 @@ #define SPEKTRUM_SAT_BIND_MAX 10 uint8_t spektrumFrameStatus(void); -struct rxConfig_s; -void spektrumBind(struct rxConfig_s *rxConfig); - +void spektrumBind(rxConfig_t *rxConfig); +bool spektrumInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); diff --git a/src/main/rx/sumd.c b/src/main/rx/sumd.c index 70457d1110..8d7ef4f704 100644 --- a/src/main/rx/sumd.c +++ b/src/main/rx/sumd.c @@ -51,7 +51,7 @@ static uint16_t sumdChannels[SUMD_MAX_CHANNEL]; static uint16_t crc; static void sumdDataReceive(uint16_t c); -static uint16_t sumdReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); +static uint16_t sumdReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); bool sumdInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback) { @@ -186,7 +186,7 @@ uint8_t sumdFrameStatus(void) return frameStatus; } -static uint16_t sumdReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) +static uint16_t sumdReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) { UNUSED(rxRuntimeConfig); return sumdChannels[chan] / 8; diff --git a/src/main/rx/sumd.h b/src/main/rx/sumd.h index 946a242e94..e1bd4f3004 100644 --- a/src/main/rx/sumd.h +++ b/src/main/rx/sumd.h @@ -18,3 +18,4 @@ #pragma once uint8_t sumdFrameStatus(void); +bool sumdInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); diff --git a/src/main/rx/sumh.c b/src/main/rx/sumh.c index 3b608a5d39..8364d53b99 100644 --- a/src/main/rx/sumh.c +++ b/src/main/rx/sumh.c @@ -54,15 +54,11 @@ static bool sumhFrameDone = false; static uint8_t sumhFrame[SUMH_FRAME_SIZE]; static uint32_t sumhChannels[SUMH_MAX_CHANNEL_COUNT]; -static void sumhDataReceive(uint16_t c); -static uint16_t sumhReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); - static serialPort_t *sumhPort; static void sumhDataReceive(uint16_t c); -static uint16_t sumhReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); - +static uint16_t sumhReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); bool sumhInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback) @@ -140,7 +136,7 @@ uint8_t sumhFrameStatus(void) return SERIAL_RX_FRAME_COMPLETE; } -static uint16_t sumhReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) +static uint16_t sumhReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) { UNUSED(rxRuntimeConfig); diff --git a/src/main/rx/sumh.h b/src/main/rx/sumh.h index 42d6720eb3..3fbcf757d5 100644 --- a/src/main/rx/sumh.h +++ b/src/main/rx/sumh.h @@ -18,3 +18,4 @@ #pragma once uint8_t sumhFrameStatus(void); +bool sumhInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback); diff --git a/src/main/rx/xbus.c b/src/main/rx/xbus.c index bbf4848bb7..c337d7056a 100644 --- a/src/main/rx/xbus.c +++ b/src/main/rx/xbus.c @@ -86,7 +86,7 @@ static volatile uint8_t xBusFrame[XBUS_RJ01_FRAME_SIZE]; static uint16_t xBusChannelData[XBUS_RJ01_CHANNEL_COUNT]; static void xBusDataReceive(uint16_t c); -static uint16_t xBusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); +static uint16_t xBusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan); bool xBusInit(rxConfig_t *rxConfig, rxRuntimeConfig_t *rxRuntimeConfig, rcReadRawDataPtr *callback) { @@ -319,7 +319,7 @@ uint8_t xBusFrameStatus(void) return SERIAL_RX_FRAME_COMPLETE; } -static uint16_t xBusReadRawRC(rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) +static uint16_t xBusReadRawRC(const rxRuntimeConfig_t *rxRuntimeConfig, uint8_t chan) { uint16_t data; diff --git a/src/main/telemetry/ltm.h b/src/main/telemetry/ltm.h index 6e4b80cbfa..e5b4790c5a 100644 --- a/src/main/telemetry/ltm.h +++ b/src/main/telemetry/ltm.h @@ -19,7 +19,8 @@ #pragma once -void initLtmTelemetry(telemetryConfig_t *initialTelemetryConfig); +struct telemetryConfig_s; +void initLtmTelemetry(struct telemetryConfig_s *initialTelemetryConfig); void handleLtmTelemetry(void); void checkLtmTelemetryState(void);