diff --git a/src/main/cms/cms_menu_ledstrip.c b/src/main/cms/cms_menu_ledstrip.c index 99d505ebf..e1cf9e850 100644 --- a/src/main/cms/cms_menu_ledstrip.c +++ b/src/main/cms/cms_menu_ledstrip.c @@ -85,11 +85,11 @@ static const void *cmsx_Ledstrip_OnExit(const OSD_Entry *self) UNUSED(self); if (cmsx_FeatureLedstrip) { - featureEnable(FEATURE_LED_STRIP); + featureEnableImmediate(FEATURE_LED_STRIP); ledStripEnable(); } else { ledStripDisable(); - featureDisable(FEATURE_LED_STRIP); + featureDisableImmediate(FEATURE_LED_STRIP); } setLedProfile(cmsx_ledProfile); diff --git a/src/main/config/config.c b/src/main/config/config.c index eb546f805..5f3d6d8a4 100644 --- a/src/main/config/config.c +++ b/src/main/config/config.c @@ -219,7 +219,7 @@ static void validateAndFixConfig(void) gpsConfig()->provider != GPS_MSP && !gpsSerial && #endif true) { - featureDisable(FEATURE_GPS); + featureDisableImmediate(FEATURE_GPS); } for (unsigned i = 0; i < PID_PROFILE_COUNT; i++) { @@ -259,7 +259,7 @@ static void validateAndFixConfig(void) } if (motorConfig()->dev.motorPwmProtocol == PWM_TYPE_BRUSHED) { - featureDisable(FEATURE_3D); + featureDisableImmediate(FEATURE_3D); if (motorConfig()->mincommand < 1000) { motorConfigMutable()->mincommand = 1000; @@ -289,29 +289,29 @@ static void validateAndFixConfig(void) #endif // USE_ACC if (!(featureIsConfigured(FEATURE_RX_PARALLEL_PWM) || featureIsConfigured(FEATURE_RX_PPM) || featureIsConfigured(FEATURE_RX_SERIAL) || featureIsConfigured(FEATURE_RX_MSP) || featureIsConfigured(FEATURE_RX_SPI))) { - featureEnable(DEFAULT_RX_FEATURE); + featureEnableImmediate(DEFAULT_RX_FEATURE); } if (featureIsConfigured(FEATURE_RX_PPM)) { - featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_SPI); + featureDisableImmediate(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_SPI); } if (featureIsConfigured(FEATURE_RX_MSP)) { - featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_SPI); + featureDisableImmediate(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_SPI); } if (featureIsConfigured(FEATURE_RX_SERIAL)) { - featureDisable(FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI); + featureDisableImmediate(FEATURE_RX_PARALLEL_PWM | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI); } #ifdef USE_RX_SPI if (featureIsConfigured(FEATURE_RX_SPI)) { - featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_MSP); + featureDisableImmediate(FEATURE_RX_SERIAL | FEATURE_RX_PARALLEL_PWM | FEATURE_RX_PPM | FEATURE_RX_MSP); } #endif // USE_RX_SPI if (featureIsConfigured(FEATURE_RX_PARALLEL_PWM)) { - featureDisable(FEATURE_RX_SERIAL | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI); + featureDisableImmediate(FEATURE_RX_SERIAL | FEATURE_RX_MSP | FEATURE_RX_PPM | FEATURE_RX_SPI); } #if defined(USE_ADC) @@ -375,7 +375,7 @@ static void validateAndFixConfig(void) #if defined(USE_ESC_SENSOR) if (!findSerialPortConfig(FUNCTION_ESC_SENSOR)) { - featureDisable(FEATURE_ESC_SENSOR); + featureDisableImmediate(FEATURE_ESC_SENSOR); } #endif @@ -412,67 +412,67 @@ static void validateAndFixConfig(void) // I have kept them all here in one place, some could be moved to sections of code above. #ifndef USE_PPM - featureDisable(FEATURE_RX_PPM); + featureDisableImmediate(FEATURE_RX_PPM); #endif #ifndef USE_SERIAL_RX - featureDisable(FEATURE_RX_SERIAL); + featureDisableImmediate(FEATURE_RX_SERIAL); #endif #if !defined(USE_SOFTSERIAL1) && !defined(USE_SOFTSERIAL2) - featureDisable(FEATURE_SOFTSERIAL); + featureDisableImmediate(FEATURE_SOFTSERIAL); #endif #ifndef USE_RANGEFINDER - featureDisable(FEATURE_RANGEFINDER); + featureDisableImmediate(FEATURE_RANGEFINDER); #endif #ifndef USE_TELEMETRY - featureDisable(FEATURE_TELEMETRY); + featureDisableImmediate(FEATURE_TELEMETRY); #endif #ifndef USE_PWM - featureDisable(FEATURE_RX_PARALLEL_PWM); + featureDisableImmediate(FEATURE_RX_PARALLEL_PWM); #endif #ifndef USE_RX_MSP - featureDisable(FEATURE_RX_MSP); + featureDisableImmediate(FEATURE_RX_MSP); #endif #ifndef USE_LED_STRIP - featureDisable(FEATURE_LED_STRIP); + featureDisableImmediate(FEATURE_LED_STRIP); #endif #ifndef USE_DASHBOARD - featureDisable(FEATURE_DASHBOARD); + featureDisableImmediate(FEATURE_DASHBOARD); #endif #ifndef USE_OSD - featureDisable(FEATURE_OSD); + featureDisableImmediate(FEATURE_OSD); #endif #ifndef USE_SERVOS - featureDisable(FEATURE_SERVO_TILT | FEATURE_CHANNEL_FORWARDING); + featureDisableImmediate(FEATURE_SERVO_TILT | FEATURE_CHANNEL_FORWARDING); #endif #ifndef USE_TRANSPONDER - featureDisable(FEATURE_TRANSPONDER); + featureDisableImmediate(FEATURE_TRANSPONDER); #endif #ifndef USE_RX_SPI - featureDisable(FEATURE_RX_SPI); + featureDisableImmediate(FEATURE_RX_SPI); #endif #ifndef USE_ESC_SENSOR - featureDisable(FEATURE_ESC_SENSOR); + featureDisableImmediate(FEATURE_ESC_SENSOR); #endif #ifndef USE_GYRO_DATA_ANALYSE - featureDisable(FEATURE_DYNAMIC_FILTER); + featureDisableImmediate(FEATURE_DYNAMIC_FILTER); #endif #if !defined(USE_ADC) - featureDisable(FEATURE_RSSI_ADC); + featureDisableImmediate(FEATURE_RSSI_ADC); #endif #if defined(USE_BEEPER) @@ -562,7 +562,7 @@ void validateAndFixGyroConfig(void) #ifdef USE_GYRO_DATA_ANALYSE // Disable dynamic filter if gyro loop is less than 2KHz if (gyro.targetLooptime > DYNAMIC_FILTER_MAX_SUPPORTED_LOOP_TIME) { - featureDisable(FEATURE_DYNAMIC_FILTER); + featureDisableImmediate(FEATURE_DYNAMIC_FILTER); } #endif diff --git a/src/main/config/feature.c b/src/main/config/feature.c index 1ebadc557..5b988bbb4 100644 --- a/src/main/config/feature.c +++ b/src/main/config/feature.c @@ -70,7 +70,7 @@ bool featureIsConfigured(const uint32_t mask) // Updates the configuration *AND* runtime state of a feature. // Used *ONLY* by the config check process that runs at startup and EEPROM save. -void featureEnable(const uint32_t mask) +void featureEnableImmediate(const uint32_t mask) { featureSet(mask, &featureConfigMutable()->enabledFeatures); featureSet(mask, &runtimeFeatureMask); @@ -78,7 +78,7 @@ void featureEnable(const uint32_t mask) // Updates the configuration *AND* runtime state of a feature. // Used *ONLY* by the config check process that runs at startup and EEPROM save. -void featureDisable(const uint32_t mask) +void featureDisableImmediate(const uint32_t mask) { featureClear(mask, &featureConfigMutable()->enabledFeatures); featureClear(mask, &runtimeFeatureMask); diff --git a/src/main/config/feature.h b/src/main/config/feature.h index 92c580a06..b62533d5e 100644 --- a/src/main/config/feature.h +++ b/src/main/config/feature.h @@ -65,8 +65,8 @@ PG_DECLARE(featureConfig_t, featureConfig); void featureInit(void); bool featureIsEnabled(const uint32_t mask); bool featureIsConfigured(const uint32_t mask); -void featureEnable(const uint32_t mask); -void featureDisable(const uint32_t mask); +void featureEnableImmediate(const uint32_t mask); +void featureDisableImmediate(const uint32_t mask); void featureConfigSet(const uint32_t mask); void featureConfigClear(const uint32_t mask); void featureConfigReplace(const uint32_t mask); diff --git a/src/main/target/ALIENFLIGHTF3/config.c b/src/main/target/ALIENFLIGHTF3/config.c index f0cec24cc..1a949c085 100644 --- a/src/main/target/ALIENFLIGHTF3/config.c +++ b/src/main/target/ALIENFLIGHTF3/config.c @@ -104,7 +104,7 @@ void targetConfiguration(void) rxConfigMutable()->serialrx_inverted = true; serialConfigMutable()->portConfigs[findSerialPortIndexByIdentifier(SERIALRX_UART)].functionMask = FUNCTION_TELEMETRY_FRSKY_HUB | FUNCTION_RX_SERIAL; telemetryConfigMutable()->telemetry_inverted = false; - featureEnable(FEATURE_TELEMETRY); + featureConfigSet(FEATURE_TELEMETRY); beeperDevConfigMutable()->isOpenDrain = false; beeperDevConfigMutable()->isInverted = true; parseRcChannels("AETR1234", rxConfigMutable()); diff --git a/src/main/target/ALIENFLIGHTF4/config.c b/src/main/target/ALIENFLIGHTF4/config.c index 04c84398c..53b4d48e1 100644 --- a/src/main/target/ALIENFLIGHTF4/config.c +++ b/src/main/target/ALIENFLIGHTF4/config.c @@ -74,7 +74,7 @@ void targetConfiguration(void) telemetryConfigMutable()->telemetry_inverted = false; batteryConfigMutable()->voltageMeterSource = VOLTAGE_METER_ADC; batteryConfigMutable()->currentMeterSource = CURRENT_METER_ADC; - featureEnable(FEATURE_TELEMETRY); + featureConfigSet(FEATURE_TELEMETRY); } for (uint8_t pidProfileIndex = 0; pidProfileIndex < PID_PROFILE_COUNT; pidProfileIndex++) { diff --git a/src/main/target/ALIENFLIGHTNGF7/config.c b/src/main/target/ALIENFLIGHTNGF7/config.c index c45f604f6..a865b43fe 100644 --- a/src/main/target/ALIENFLIGHTNGF7/config.c +++ b/src/main/target/ALIENFLIGHTNGF7/config.c @@ -73,7 +73,7 @@ void targetConfiguration(void) telemetryConfigMutable()->telemetry_inverted = false; batteryConfigMutable()->voltageMeterSource = VOLTAGE_METER_ADC; batteryConfigMutable()->currentMeterSource = CURRENT_METER_ADC; - featureEnable(FEATURE_TELEMETRY); + featureConfigSet(FEATURE_TELEMETRY); } for (uint8_t pidProfileIndex = 0; pidProfileIndex < PID_PROFILE_COUNT; pidProfileIndex++) { diff --git a/src/main/target/ALIENWHOOP/config.c b/src/main/target/ALIENWHOOP/config.c index 18d651b99..bcb853a49 100644 --- a/src/main/target/ALIENWHOOP/config.c +++ b/src/main/target/ALIENWHOOP/config.c @@ -105,7 +105,7 @@ void targetConfiguration(void) pidConfigMutable()->runaway_takeoff_prevention = false; - featureEnable((FEATURE_DYNAMIC_FILTER | FEATURE_AIRMODE | FEATURE_ANTI_GRAVITY) ^ FEATURE_RX_PARALLEL_PWM); + featureConfigSet((FEATURE_DYNAMIC_FILTER | FEATURE_AIRMODE | FEATURE_ANTI_GRAVITY) ^ FEATURE_RX_PARALLEL_PWM); /* AlienWhoop PIDs tested with 6mm and 7mm motors on most frames */ for (uint8_t pidProfileIndex = 0; pidProfileIndex < PID_PROFILE_COUNT; pidProfileIndex++) { diff --git a/src/main/target/FF_FORTINIF4/config.c b/src/main/target/FF_FORTINIF4/config.c index deb22164f..e6870503e 100644 --- a/src/main/target/FF_FORTINIF4/config.c +++ b/src/main/target/FF_FORTINIF4/config.c @@ -35,7 +35,7 @@ void targetConfiguration(void) { if (hardwareRevision >= FORTINIF4_REV_2) { - featureEnable(FEATURE_OSD); + featureConfigSet(FEATURE_OSD); } telemetryConfigMutable()->halfDuplex = false; diff --git a/src/main/target/FF_PIKOBLX/config.c b/src/main/target/FF_PIKOBLX/config.c index 94b8f88dc..2f945a73d 100644 --- a/src/main/target/FF_PIKOBLX/config.c +++ b/src/main/target/FF_PIKOBLX/config.c @@ -65,7 +65,7 @@ void targetConfiguration(void) #else serialConfigMutable()->portConfigs[findSerialPortIndexByIdentifier(SERIAL_PORT_USART2)].functionMask = FUNCTION_TELEMETRY_FRSKY_HUB; rxConfigMutable()->serialrx_inverted = true; - featureEnable(FEATURE_TELEMETRY); + featureConfigSet(FEATURE_TELEMETRY); #endif parseRcChannels("TAER1234", rxConfigMutable()); diff --git a/src/main/target/XILOF4/config.c b/src/main/target/XILOF4/config.c index aceaf85d5..2c1d41280 100644 --- a/src/main/target/XILOF4/config.c +++ b/src/main/target/XILOF4/config.c @@ -54,8 +54,8 @@ void targetConfiguration(void) motorConfigMutable()->dev.motorPwmProtocol = PWM_TYPE_DSHOT600; pidConfigMutable()->pid_process_denom = 1; currentSensorADCConfigMutable()->scale = CURRENT_SCALE; - featureDisable(FEATURE_SOFTSERIAL); - featureEnable(FEATURE_ESC_SENSOR); + featureConfigClear(FEATURE_SOFTSERIAL); + featureConfigSet(FEATURE_ESC_SENSOR); targetSerialPortFunctionConfig(targetSerialPortFunction, ARRAYLEN(targetSerialPortFunction)); } diff --git a/src/test/unit/link_quality_unittest.cc b/src/test/unit/link_quality_unittest.cc index 119c2ac0c..3c13a7da1 100644 --- a/src/test/unit/link_quality_unittest.cc +++ b/src/test/unit/link_quality_unittest.cc @@ -447,7 +447,7 @@ extern "C" { void persistentObjectWrite(persistentObjectId_e, uint32_t) {} void failsafeOnRxSuspend(uint32_t ) {} void failsafeOnRxResume(void) {} - void featureDisable(uint32_t) { } + void featureDisableImmediate(uint32_t) { } bool rxMspFrameComplete(void) { return false; } bool isPPMDataBeingReceived(void) { return false; } bool isPWMDataBeingReceived(void) { return false; } diff --git a/src/test/unit/rx_ranges_unittest.cc b/src/test/unit/rx_ranges_unittest.cc index 3cfdc2372..fe13f3646 100644 --- a/src/test/unit/rx_ranges_unittest.cc +++ b/src/test/unit/rx_ranges_unittest.cc @@ -193,7 +193,7 @@ bool featureIsEnabled(uint32_t) { return false; } -void featureDisable(uint32_t) { +void featureDisableImmediate(uint32_t) { } bool rxMspFrameComplete(void)