From d4c2bfaa042a2ee2e922990aad62327bffd77336 Mon Sep 17 00:00:00 2001 From: atomiclama Date: Fri, 25 Aug 2017 11:51:15 +0100 Subject: [PATCH] Validate Features and clear if not supported. As a follow on from #3945 this PR now validates the rest of the features. Some features are not always supported so will be missing from the validation. --- src/main/fc/config.c | 69 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/src/main/fc/config.c b/src/main/fc/config.c index 009114c48e..c12025c7fc 100755 --- a/src/main/fc/config.c +++ b/src/main/fc/config.c @@ -372,9 +372,11 @@ void validateAndFixConfig(void) featureClear(FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI); } +#ifdef USE_RX_SPI if (featureConfigured(FEATURE_RX_SPI)) { featureClear(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_MSP); } +#endif if (featureConfigured(FEATURE_RX_PARALLEL_PWM)) { featureClear(FEATURE_RX_SERIAL | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI); @@ -418,6 +420,73 @@ void validateAndFixConfig(void) pgResetFn_serialConfig(serialConfigMutable()); } +// clear features that are not supported. +// I have kept them all here in one place, some could be moved to sections of code above. + +#ifndef USE_PPM + featureClear(FEATURE_RX_PPM); +#endif + +#ifndef SERIAL_RX + featureClear(FEATURE_RX_SERIAL); +#endif + +#if !defined(USE_SOFTSERIAL1) && !defined(USE_SOFTSERIAL2) + featureClear(FEATURE_SOFTSERIAL); +#endif + +#ifndef GPS + featureClear(FEATURE_GPS); +#endif + +#ifndef SONAR + featureClear(FEATURE_SONAR); +#endif + +#ifndef TELEMETRY + featureClear(FEATURE_TELEMETRY); +#endif + +#ifndef USE_PWM + featureClear(FEATURE_RX_PARALLEL_PWM); +#endif + +#ifndef USE_RX_MSP + featureClear(FEATURE_RX_MSP); +#endif + +#ifndef LED_STRIP + featureClear(FEATURE_LED_STRIP); +#endif + +#ifndef USE_DASHBOARD + featureClear(FEATURE_DASHBOARD); +#endif + +#ifndef OSD + featureClear(FEATURE_OSD); +#endif + +#ifndef USE_SERVOS + featureClear(FEATURE_SERVO_TILT | FEATURE_CHANNEL_FORWARDING); +#endif + +#ifndef TRANSPONDER + featureClear(FEATURE_TRANSPONDER); +#endif + +#ifndef USE_RX_SPI + featureClear(FEATURE_RX_SPI); +#endif + +#ifndef USE_SOFTSPI + featureClear(FEATURE_SOFTSPI); +#endif + +#ifndef USE_ESC_SENSOR + featureClear(FEATURE_ESC_SENSOR); +#endif + #ifndef USE_GYRO_DATA_ANALYSE featureClear(FEATURE_DYNAMIC_FILTER); #endif