diff options
| author | Selene ToyKeeper | 2025-07-06 01:44:52 -0600 |
|---|---|---|
| committer | Selene ToyKeeper | 2025-07-06 01:44:52 -0600 |
| commit | de6318629ceda3be38063238639241e7263c7f36 (patch) | |
| tree | 5ba7d4e4f2f2dcbade9b34b47035e207d65cc882 /fsm | |
| parent | lockout mode now only does momentary moon/low on 1st and 2nd presses, (diff) | |
| parent | made new settings apply to all button LEDs on lights bigger than 8K ROM (diff) | |
| download | anduril-de6318629ceda3be38063238639241e7263c7f36.tar.gz anduril-de6318629ceda3be38063238639241e7263c7f36.tar.bz2 anduril-de6318629ceda3be38063238639241e7263c7f36.zip | |
Merge branch 'pr10-SiteRelEnby-rgb-voltage-configurable' into trunk
Added config options to control brightness of button LEDs and post-off
voltage display, based on the ramp level of the main LEDs. Affects all
lights with aux LEDs and more than 8 KiB of ROM.
The new options are in Battcheck -> 7H -> options 3+4, to control the
low and high ramp levels where the button LEDs turn on at low or high
brightness. Set to 0 to disable the button LED during ramping, or 1+ to
set a specific ramp level.
Closes #10: https://github.com/ToyKeeper/anduril/pull/10
* pr10-SiteRelEnby-rgb-voltage-configurable:
made new settings apply to all button LEDs on lights bigger than 8K ROM
Add a feature to make RGB voltage configurable
Diffstat (limited to 'fsm')
| -rw-r--r-- | fsm/ramping.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/fsm/ramping.c b/fsm/ramping.c index 743e619..f8ca4ec 100644 --- a/fsm/ramping.c +++ b/fsm/ramping.c @@ -8,14 +8,20 @@ #ifdef HAS_AUX_LEDS inline void set_level_aux_leds(uint8_t level) { + #ifdef USE_AUX_THRESHOLD_CONFIG + #define AUX_BRIGHTNESS ((level > cfg.button_led_low_ramp_level) \ + << (level > cfg.button_led_high_ramp_level)) + #else + #define AUX_BRIGHTNESS ((level > 0) + (level > DEFAULT_LEVEL)) + #endif #ifdef USE_INDICATOR_LED_WHILE_RAMPING // use side-facing aux LEDs while main LEDs are on if (! go_to_standby) { #ifdef USE_INDICATOR_LED - indicator_led((level > 0) + (level > DEFAULT_LEVEL)); + indicator_led(AUX_BRIGHTNESS); #endif #ifdef USE_BUTTON_LED - button_led_set((level > 0) + (level > DEFAULT_LEVEL)); + button_led_set(AUX_BRIGHTNESS); #endif } #else // turn off front-facing aux LEDs while main LEDs are on @@ -27,12 +33,15 @@ inline void set_level_aux_leds(uint8_t level) { #ifdef USE_AUX_RGB_LEDS rgb_led_set(0); #ifdef USE_BUTTON_LED - button_led_set((level > 0) + (level > DEFAULT_LEVEL)); + button_led_set(AUX_BRIGHTNESS); #endif #endif } #endif #endif + #ifdef AUX_BRIGHTNESS + #undef AUX_BRIGHTNESS + #endif } #endif // ifdef HAS_AUX_LEDS @@ -41,15 +50,28 @@ inline void set_level_aux_leds(uint8_t level) { #include "anduril/aux-leds.h" // for rgb_led_voltage_readout() inline void set_level_aux_rgb_leds(uint8_t level) { if (! go_to_standby) { + #ifdef USE_AUX_THRESHOLD_CONFIG + if (level > cfg.button_led_low_ramp_level) { + rgb_led_voltage_readout(level > cfg.button_led_high_ramp_level); + } + #else if (level > 0) { rgb_led_voltage_readout(level > USE_AUX_RGB_LEDS_WHILE_ON); - } else { + } + #endif + else { rgb_led_set(0); } // some drivers can be wired with RGB or single color to button // ... so support both even though only one is connected #ifdef USE_BUTTON_LED + #ifdef USE_AUX_THRESHOLD_CONFIG + button_led_set( + (level > cfg.button_led_low_ramp_level) + << (level > cfg.button_led_high_ramp_level)); + #else button_led_set((level > 0) + (level > DEFAULT_LEVEL)); + #endif #endif } } |
