aboutsummaryrefslogtreecommitdiff
path: root/fsm
diff options
context:
space:
mode:
authorSelene ToyKeeper2025-07-06 01:44:52 -0600
committerSelene ToyKeeper2025-07-06 01:44:52 -0600
commitde6318629ceda3be38063238639241e7263c7f36 (patch)
tree5ba7d4e4f2f2dcbade9b34b47035e207d65cc882 /fsm
parentlockout mode now only does momentary moon/low on 1st and 2nd presses, (diff)
parentmade new settings apply to all button LEDs on lights bigger than 8K ROM (diff)
downloadanduril-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 '')
-rw-r--r--fsm/ramping.c30
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
}
}