aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelene ToyKeeper2020-08-18 07:18:16 -0600
committerSelene ToyKeeper2020-08-18 07:18:16 -0600
commit83be9c4f703790d9581be42487149ac41dada146 (patch)
tree5862dd7f7b691117cde10a747ba8cc565b696237
parentremapped "Off -> 2H" to momentary ceiling (diff)
downloadanduril-83be9c4f703790d9581be42487149ac41dada146.tar.gz
anduril-83be9c4f703790d9581be42487149ac41dada146.tar.bz2
anduril-83be9c4f703790d9581be42487149ac41dada146.zip
shuffled functions around to make 4C lockout and 3C battcheck again
- moved all battcheck to 3C - moved all lockout to 4C - moved all unlock to 4C/4H - moved manual mem from 4C/4H to 10C/10H - moved auto-lock from 5C/5H to 10C/10H - added ramp 4C -> lockout - added ramp 5C -> momentary - added lockout 5C -> ramp ceiling
-rw-r--r--spaghetti-monster/anduril/anduril-manual.txt18
-rw-r--r--spaghetti-monster/anduril/lockout-mode.c23
-rw-r--r--spaghetti-monster/anduril/off-mode.c14
-rw-r--r--spaghetti-monster/anduril/ramp-mode.c47
4 files changed, 62 insertions, 40 deletions
diff --git a/spaghetti-monster/anduril/anduril-manual.txt b/spaghetti-monster/anduril/anduril-manual.txt
index 82a76a9..9f7f295 100644
--- a/spaghetti-monster/anduril/anduril-manual.txt
+++ b/spaghetti-monster/anduril/anduril-manual.txt
@@ -567,9 +567,9 @@ Off Any 1C On (ramp mode, memorized level)
Off Any 1H On (ramp mode, floor level)
Off Any 2C On (ramp mode, ceiling level)
Off Any 2H On (momentary ceiling level)
-Off Any 3C Lockout mode
+Off Any 3C Battcheck mode
Off Full 3H Strobe mode (whichever was used last)
-Off Any 4C Battcheck mode
+Off Any 4C Lockout mode
Off Full 5C Momentary mode
Off Full 7C Aux LEDs: Next pattern
Off Full 7H Aux LEDs: Next color
@@ -586,20 +586,22 @@ Ramp Simple 2C Go to/from ceiling
Ramp Full 2C Go to/from turbo
Ramp Full 3C Change ramp style (smooth / stepped)
Ramp Any 3H Tint ramping (on some lights)
-Ramp Full 4C Enable manual memory at current brightness
-Ramp Full 4H Disable manual memory
+Ramp Any 4C Lockout mode
Ramp Full 5C Momentary mode
Ramp Full 5H Sunset timer on, and add 5 minutes
Ramp Full 7C Ramp config mode
+Ramp Full 10C Enable manual memory at current brightness
+Ramp Full 10H Disable manual memory
Lockout Any 1C/1H Momentary moon (lowest floor)
Lockout Any 2C/2H Momentary moon (highest floor, or manual mem level)
-Lockout Any 3C On (ramp mode, memorized level)
-Lockout Any 3H On (ramp mode, floor level)
-Lockout Full 5C Auto-lock config menu
-Lockout Full 5H Disable Auto-lock
+Lockout Any 4C On (ramp mode, memorized level)
+Lockout Any 4H On (ramp mode, floor level)
+Lockout Any 5C On (ramp mode, ceiling level)
Lockout Full 7C Aux LEDs: Next pattern
Lockout Full 7H Aux LEDs: Next color
+Lockout Full 10C Auto-lock config menu
+Lockout Full 10H Disable Auto-lock
Strobe (any) Full 1C Off
Strobe (any) Full 2C Next strobe mode
diff --git a/spaghetti-monster/anduril/lockout-mode.c b/spaghetti-monster/anduril/lockout-mode.c
index e68998a..0d4de01 100644
--- a/spaghetti-monster/anduril/lockout-mode.c
+++ b/spaghetti-monster/anduril/lockout-mode.c
@@ -87,14 +87,15 @@ uint8_t lockout_state(Event event, uint16_t arg) {
return MISCHIEF_MANAGED;
}
#endif
- // 3 clicks: exit and turn on
- else if (event == EV_3clicks) {
+
+ // 4 clicks: exit and turn on
+ else if (event == EV_4clicks) {
blink_once();
set_state(steady_state, memorized_level);
return MISCHIEF_MANAGED;
}
- // 3 clicks, but hold last: exit and start at floor
- else if (event == EV_click3_hold) {
+ // 4 clicks, but hold last: exit and start at floor
+ else if (event == EV_click4_hold) {
blink_once();
// reset button sequence to avoid activating anything in ramp mode
current_event = 0;
@@ -102,6 +103,12 @@ uint8_t lockout_state(Event event, uint16_t arg) {
set_state(steady_state, 1);
return MISCHIEF_MANAGED;
}
+ // 5 clicks: exit and turn on at ceiling level
+ else if (event == EV_5clicks) {
+ blink_once();
+ set_state(steady_state, MAX_LEVEL);
+ return MISCHIEF_MANAGED;
+ }
////////// Every action below here is blocked in the simple UI //////////
#ifdef USE_SIMPLE_UI
@@ -111,13 +118,13 @@ uint8_t lockout_state(Event event, uint16_t arg) {
#endif
#ifdef USE_AUTOLOCK
- // 5 clicks: configure the autolock option
- else if (event == EV_5clicks) {
+ // 10 clicks: configure the autolock option
+ else if (event == EV_10clicks) {
push_state(autolock_config_state, 0);
return MISCHIEF_MANAGED;
}
- // 5H: turn off autolock
- else if (event == EV_click5_hold) {
+ // 10H: turn off autolock
+ else if (event == EV_click10_hold) {
if (0 == arg) {
autolock_time = 0;
save_config();
diff --git a/spaghetti-monster/anduril/off-mode.c b/spaghetti-monster/anduril/off-mode.c
index 4284b08..9470cfd 100644
--- a/spaghetti-monster/anduril/off-mode.c
+++ b/spaghetti-monster/anduril/off-mode.c
@@ -155,18 +155,18 @@ uint8_t off_state(Event event, uint16_t arg) {
set_level(0);
return MISCHIEF_MANAGED;
}
- #ifdef USE_LOCKOUT_MODE
- // 3 clicks: soft lockout
+ #ifdef USE_BATTCHECK
+ // 3 clicks: battcheck mode / blinky mode group 1
else if (event == EV_3clicks) {
- blink_confirm(2);
- set_state(lockout_state, 0);
+ set_state(battcheck_state, 0);
return MISCHIEF_MANAGED;
}
#endif
- #ifdef USE_BATTCHECK
- // 4 clicks: battcheck mode / blinky mode group 1
+ #ifdef USE_LOCKOUT_MODE
+ // 4 clicks: soft lockout
else if (event == EV_4clicks) {
- set_state(battcheck_state, 0);
+ blink_confirm(2);
+ set_state(lockout_state, 0);
return MISCHIEF_MANAGED;
}
#endif
diff --git a/spaghetti-monster/anduril/ramp-mode.c b/spaghetti-monster/anduril/ramp-mode.c
index e862204..1429cc0 100644
--- a/spaghetti-monster/anduril/ramp-mode.c
+++ b/spaghetti-monster/anduril/ramp-mode.c
@@ -120,6 +120,16 @@ uint8_t steady_state(Event event, uint16_t arg) {
return MISCHIEF_MANAGED;
}
+ #ifdef USE_LOCKOUT_MODE
+ // 4 clicks: shortcut to lockout mode
+ else if (event == EV_4clicks) {
+ set_level(0);
+ blink_once();
+ set_state(lockout_state, 0);
+ return MISCHIEF_MANAGED;
+ }
+ #endif
+
// hold: change brightness (brighter, dimmer)
// click, hold: change brightness (dimmer)
else if ((event == EV_click1_hold) || (event == EV_click2_hold)) {
@@ -250,6 +260,7 @@ uint8_t steady_state(Event event, uint16_t arg) {
#endif // ifdef USE_SET_LEVEL_GRADUALLY
return MISCHIEF_MANAGED;
}
+
#ifdef USE_THERMAL_REGULATION
// overheating: drop by an amount proportional to how far we are above the ceiling
else if (event == EV_temperature_high) {
@@ -335,24 +346,8 @@ uint8_t steady_state(Event event, uint16_t arg) {
return MISCHIEF_MANAGED;
}
- #ifdef USE_MANUAL_MEMORY
- else if (event == EV_4clicks) {
- manual_memory = actual_level;
- save_config();
- blink_once();
- return MISCHIEF_MANAGED;
- }
- else if (event == EV_click4_hold) {
- if (0 == arg) {
- manual_memory = 0;
- save_config();
- blink_once();
- }
- return MISCHIEF_MANAGED;
- }
- #endif
-
#ifdef USE_MOMENTARY_MODE
+ // 5 clicks: shortcut to momentary mode
else if (event == EV_5clicks) {
set_level(0);
set_state(momentary_state, 0);
@@ -367,6 +362,24 @@ uint8_t steady_state(Event event, uint16_t arg) {
return MISCHIEF_MANAGED;
}
#endif
+
+ #ifdef USE_MANUAL_MEMORY
+ else if (event == EV_10clicks) {
+ manual_memory = actual_level;
+ save_config();
+ blink_once();
+ return MISCHIEF_MANAGED;
+ }
+ else if (event == EV_click10_hold) {
+ if (0 == arg) {
+ manual_memory = 0;
+ save_config();
+ blink_once();
+ }
+ return MISCHIEF_MANAGED;
+ }
+ #endif
+
return EVENT_NOT_HANDLED;
}