aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/ramping-ui.c
diff options
context:
space:
mode:
authorSelene ToyKeeper2017-08-24 19:22:10 -0600
committerSelene ToyKeeper2017-08-24 19:22:10 -0600
commit5184aad41fdb501f05ff7b0d7131011657ed8275 (patch)
tree9de56f14972a79b86a0291ab0ab0fc81ae7469d2 /spaghetti-monster/ramping-ui.c
parentAdded loop() to API, executes constantly. (diff)
downloadanduril-5184aad41fdb501f05ff7b0d7131011657ed8275.tar.gz
anduril-5184aad41fdb501f05ff7b0d7131011657ed8275.tar.bz2
anduril-5184aad41fdb501f05ff7b0d7131011657ed8275.zip
Started on some documentation, spaghetti-monster.txt.
Added #defines for State return values: EVENT_HANDLED, EVENT_NOT_HANDLED Improved handling of delay includes. Managed mischief.
Diffstat (limited to 'spaghetti-monster/ramping-ui.c')
-rw-r--r--spaghetti-monster/ramping-ui.c60
1 files changed, 30 insertions, 30 deletions
diff --git a/spaghetti-monster/ramping-ui.c b/spaghetti-monster/ramping-ui.c
index 256c4cf..562cd1b 100644
--- a/spaghetti-monster/ramping-ui.c
+++ b/spaghetti-monster/ramping-ui.c
@@ -21,8 +21,8 @@
#define USE_LVP
#define USE_THERMAL_REGULATION
#define DEFAULT_THERM_CEIL 32
-#define USE_DEBUG_BLINK
#define USE_DELAY_MS
+#define USE_DELAY_4MS
#define USE_DELAY_ZERO
#define USE_RAMPING
#define RAMP_LENGTH 150
@@ -55,32 +55,32 @@ uint8_t off_state(EventPtr event, uint16_t arg) {
// sleep while off (lower power use)
//empty_event_sequence(); // just in case (but shouldn't be needed)
standby_mode();
- return 0;
+ return MISCHIEF_MANAGED;
}
// hold (initially): go to lowest level, but allow abort for regular click
else if (event == EV_click1_press) {
set_level(1);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 1 click (before timeout): go to memorized level, but allow abort for double click
else if (event == EV_click1_release) {
set_level(memorized_level);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 1 click: regular mode
else if (event == EV_1click) {
set_state(steady_state, memorized_level);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 2 clicks: highest mode
else if (event == EV_2clicks) {
set_state(steady_state, MAX_LEVEL);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 3 clicks: strobe mode
else if (event == EV_3clicks) {
set_state(strobe_state, 0);
- return 0;
+ return MISCHIEF_MANAGED;
}
// hold: go to lowest level
else if (event == EV_click1_hold) {
@@ -88,19 +88,19 @@ uint8_t off_state(EventPtr event, uint16_t arg) {
// give the user time to release at moon level
if (arg >= HOLD_TIMEOUT)
set_state(steady_state, 1);
- return 0;
+ return MISCHIEF_MANAGED;
}
// hold, release quickly: go to lowest level
else if (event == EV_click1_hold_release) {
set_state(steady_state, 1);
- return 0;
+ return MISCHIEF_MANAGED;
}
// click, hold: go to highest level (for ramping down)
else if (event == EV_click2_hold) {
set_state(steady_state, MAX_LEVEL);
- return 0;
+ return MISCHIEF_MANAGED;
}
- return 1;
+ return EVENT_NOT_HANDLED;
}
@@ -115,12 +115,12 @@ uint8_t steady_state(EventPtr event, uint16_t arg) {
target_level = arg;
#endif
set_level(arg);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 1 click: off
else if (event == EV_1click) {
set_state(off_state, 0);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 2 clicks: go to/from highest level
else if (event == EV_2clicks) {
@@ -137,12 +137,12 @@ uint8_t steady_state(EventPtr event, uint16_t arg) {
#endif
set_level(memorized_level);
}
- return 0;
+ return MISCHIEF_MANAGED;
}
// 3 clicks: go to strobe modes
else if (event == EV_3clicks) {
set_state(strobe_state, 0);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 4 clicks: toggle smooth vs discrete ramping
else if (event == EV_4clicks) {
@@ -151,13 +151,13 @@ uint8_t steady_state(EventPtr event, uint16_t arg) {
set_level(0);
delay_ms(20);
set_level(memorized_level);
- return 0;
+ return MISCHIEF_MANAGED;
}
// hold: change brightness (brighter)
else if (event == EV_click1_hold) {
// ramp slower in discrete mode
if (arg % ramp_step_size != 0) {
- return 0;
+ return MISCHIEF_MANAGED;
}
// FIXME: make it ramp down instead, if already at max
if (actual_level + ramp_step_size < MAX_LEVEL)
@@ -174,13 +174,13 @@ uint8_t steady_state(EventPtr event, uint16_t arg) {
delay_ms(7);
}
set_level(memorized_level);
- return 0;
+ return MISCHIEF_MANAGED;
}
// click, hold: change brightness (dimmer)
else if (event == EV_click2_hold) {
// ramp slower in discrete mode
if (arg % ramp_step_size != 0) {
- return 0;
+ return MISCHIEF_MANAGED;
}
// FIXME: make it ramp up instead, if already at min
if (actual_level > ramp_step_size)
@@ -198,7 +198,7 @@ uint8_t steady_state(EventPtr event, uint16_t arg) {
delay_ms(7);
}
set_level(memorized_level);
- return 0;
+ return MISCHIEF_MANAGED;
}
#ifdef USE_THERMAL_REGULATION
// TODO: test this on a real light
@@ -209,7 +209,7 @@ uint8_t steady_state(EventPtr event, uint16_t arg) {
if (stepdown < MAX_LEVEL/4) stepdown = MAX_LEVEL/4;
set_level(stepdown);
}
- return 0;
+ return MISCHIEF_MANAGED;
}
// underheating: increase slowly if we're lower than the target
// (proportional to how low we are)
@@ -219,47 +219,47 @@ uint8_t steady_state(EventPtr event, uint16_t arg) {
if (stepup > target_level) stepup = target_level;
set_level(stepup);
}
- return 0;
+ return MISCHIEF_MANAGED;
}
#endif
- return 1;
+ return EVENT_NOT_HANDLED;
}
uint8_t strobe_state(EventPtr event, uint16_t arg) {
if (event == EV_enter_state) {
- return 0;
+ return MISCHIEF_MANAGED;
}
// 1 click: off
else if (event == EV_1click) {
set_state(off_state, 0);
- return 0;
+ return MISCHIEF_MANAGED;
}
// 2 clicks: toggle party strobe vs tactical strobe
else if (event == EV_2clicks) {
strobe_type ^= 1;
- return 0;
+ return MISCHIEF_MANAGED;
}
// 3 clicks: go back to regular modes
else if (event == EV_3clicks) {
set_state(steady_state, memorized_level);
- return 0;
+ return MISCHIEF_MANAGED;
}
// hold: change speed (go faster)
else if (event == EV_click1_hold) {
if ((arg & 1) == 0) {
if (strobe_delay > 8) strobe_delay --;
}
- return 0;
+ return MISCHIEF_MANAGED;
}
// click, hold: change speed (go slower)
else if (event == EV_click2_hold) {
if ((arg & 1) == 0) {
if (strobe_delay < 255) strobe_delay ++;
}
- return 0;
+ return MISCHIEF_MANAGED;
}
- return 1;
+ return EVENT_NOT_HANDLED;
}