diff --git a/src/main/fc/rc_adjustments.c b/src/main/fc/rc_adjustments.c index 04c96c0c2b..8e838b97be 100644 --- a/src/main/fc/rc_adjustments.c +++ b/src/main/fc/rc_adjustments.c @@ -226,6 +226,10 @@ static const adjustmentConfig_t defaultAdjustmentConfigs[ADJUSTMENT_FUNCTION_COU .adjustmentFunction = ADJUSTMENT_LED_PROFILE, .mode = ADJUSTMENT_MODE_SELECT, .data = { .switchPositions = 3 } + }, { + .adjustmentFunction = ADJUSTMENT_LED_DIMMER, + .mode = ADJUSTMENT_MODE_SELECT, + .data = { .switchPositions = 100 } } }; @@ -264,6 +268,8 @@ static const char * const adjustmentLabels[] = { "ROLL F", "YAW F", "OSD PROFILE", + "LED PROFILE", + "LED DIMMER", }; static int adjustmentRangeNameIndex = 0; @@ -641,6 +647,13 @@ static uint8_t applySelectAdjustment(adjustmentFunction_e adjustmentFunction, ui if (getLedProfile() != position) { setLedProfile(position); } +#endif + break; + case ADJUSTMENT_LED_DIMMER: +#ifdef USE_LED_STRIP + if (getLedBrightness() != position) { + setLedBrightness(position); + } #endif break; diff --git a/src/main/fc/rc_adjustments.h b/src/main/fc/rc_adjustments.h index 669205f554..57855ba24e 100644 --- a/src/main/fc/rc_adjustments.h +++ b/src/main/fc/rc_adjustments.h @@ -62,6 +62,7 @@ typedef enum { ADJUSTMENT_YAW_F, ADJUSTMENT_OSD_PROFILE, ADJUSTMENT_LED_PROFILE, + ADJUSTMENT_LED_DIMMER, ADJUSTMENT_FUNCTION_COUNT } adjustmentFunction_e; diff --git a/src/main/io/ledstrip.c b/src/main/io/ledstrip.c index 1f6ec0d45b..03dd8b4bf7 100644 --- a/src/main/io/ledstrip.c +++ b/src/main/io/ledstrip.c @@ -1588,4 +1588,16 @@ void setLedProfile(uint8_t profile) ledStripConfigMutable()->ledstrip_profile = profile; } } + +uint8_t getLedBrightness(void) +{ + return ledStripConfig()->ledstrip_brightness; +} + +void setLedBrightness(uint8_t brightness) +{ + if ( brightness <= 100 ) { + ledStripConfigMutable()->ledstrip_brightness = brightness; + } +} #endif diff --git a/src/main/io/ledstrip.h b/src/main/io/ledstrip.h index fc6d467a6c..8e6aaccf17 100644 --- a/src/main/io/ledstrip.h +++ b/src/main/io/ledstrip.h @@ -239,3 +239,5 @@ void updateRequiredOverlay(void); uint8_t getLedProfile(void); void setLedProfile(uint8_t profile); +uint8_t getLedBrightness(void); +void setLedBrightness(uint8_t brightness); diff --git a/src/test/unit/rc_controls_unittest.cc b/src/test/unit/rc_controls_unittest.cc index 7be5ff2c60..862c43119d 100644 --- a/src/test/unit/rc_controls_unittest.cc +++ b/src/test/unit/rc_controls_unittest.cc @@ -654,6 +654,8 @@ bool isTryingToArm(void) { return false; } void resetTryingToArm(void) {} void setLedProfile(uint8_t profile) { UNUSED(profile); } uint8_t getLedProfile(void) { return 0; } +uint8_t getLedBrightness(void) { return 50; } +void setLedBrightness(uint8_t brightness) { UNUSED(brightness); } void compassStartCalibration(void) {} void pinioBoxTaskControl(void) {} void schedulerIgnoreTaskExecTime(void) {}