You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Timer count up, ending options - maybe separate chrono and timer à la Timex?
4
-
* Different setting option for pushbutton (à la Timex) vs. rotary (à la microwave ovens) - external file?
3
+
* Persistent storage for EEPROM stuff on SAMD
4
+
* Network/NTP
5
+
* Why does the page sometimes drop?
6
+
* Persistent storage for wi-fi credentials
7
+
* wi-fi credential save fails if keys are part of the string?
8
+
* DST calc may behave unpredictably between 1–2am on fallback day
9
+
* Redo NTP on startup if it failed (networkStartWifi())
10
+
* Handle 2038+ epochs
11
+
* Notice when a leap second is coming and handle it
12
+
* When setting page is used to set day counter and date, and the month changes, set date max. For 2/29 it should just do 3/1 probably.
13
+
* When day counter is set to count up from 12/31, override to display 365/366 on that date
14
+
* Bitmask to enable/disable features
5
15
* Option to display weekdays as Sun=0 or Sun=1 (per Portuguese!)
6
-
* When setting times of day, make 1439 (minutes) roll over to 0 and vice versa
7
-
* Implement options for full date every 5 minutes
8
16
* Is it possible to trip the chime *after* determining if we're in night shutoff or not
9
-
* Reenable rotary encoder with libraries with workable licenses
10
17
* In display code, consider using `delayMicroseconds()` which, with its tighter resolution, may give better control over fades and dim levels
11
-
* in `checkInputs()`, can all this if/else business be defined at load instead of evaluated every sample? OR is it compiled that way? maybe use `#ifdef`
12
18
* in `ctrlEvt()`, could we do release/shorthold on mainSel so we can exit without making changes?
13
-
* Should functions be modular in the code, and have a reserved memory location / 100 per each?
14
-
* Should functions have their own options menu?
15
-
* I2C display to help with setting?
16
-
* I2C multicolor LED to indicate which function we're in?
17
-
* Metronome function
18
-
* Alarm option should be beeping patterns, including a slow wake which defeats the 2 minute delay
19
-
* Signalstart should create a situation where there's time on the counter, but doesn't make sound since the rtc can do that. Other beepable actions would probably cancel that counter anyway
19
+
* I2C multicolor LED to indicate which function we're in? - possibly as part of display
20
+
* Metronome function?
21
+
* Signalstart should create a situation where there's time on the counter, but doesn't make sound since the rtc can do that. Other beepable actions would probably cancel that counter anyway (is this still applicable?)
20
22
* Why does the display flicker sometimes? are we doubling up on a display cycle call?
else { client.print(F(" over 24 hours ago")); }//TODO is there a display indication of this
397
+
else { client.print(F(" over 24 hours ago")); }
402
398
} else {
403
399
if(ntpStartLast) client.print(F("No sync since time was set manually"));
404
400
else client.print(F("Never synced"));
405
401
}
406
-
client.print(F("<br/></span><a id='syncnow' value='' href='#' onclick='document.getElementById(\"lastsync\").innerHTML=\"\"; save(this); return false;'>Sync now</a><br/></span><span class='explain'>Requires Wi-Fi. If using this, be sure to set your <a href='#utcoffset'>UTC offset</a> and <a href='#autodst'>auto DST</a> below.</span></li>"));//TODO sync now results in "OK!" even if it isn't necessarily ok. Get feedback to the client by making it synchronous in that case only? Also e.g. "Please wait" instead of "Saving"
402
+
client.print(F("<br/></span><a id='syncnow' value='' href='#' onclick='document.getElementById(\"lastsync\").innerHTML=\"\"; save(this); return false;'>Sync now</a><br/></span><span class='explain'>Requires Wi-Fi. If using this, be sure to set your <a href='#utcoffset'>UTC offset</a> and <a href='#autodst'>auto DST</a> below.</span></li>"));
client.print(F(";'><span></span><label for='b5'>Month </label><input type='number' id='b5' onchange='promptsave(\"b5\")' onkeyup='promptsave(\"b5\")' onblur='unpromptsave(\"b5\"); save(this)' min='1' max='12' step='1' value='")); client.print(readEEPROM(5,false),DEC); client.print(F("' />")); client.print(F(" <a id='b5save' href='#' onclick='return false' style='display: none;'>save</a>")); //Extra span is there to prevent "first" styling on the month label
446
-
client.print(F("<br/><label for='b6'>Date </label><input type='number' id='b6' onchange='promptsave(\"b6\")' onkeyup='promptsave(\"b6\")' onblur='unpromptsave(\"b6\"); save(this)' min='1' max='31' step='1' value='")); client.print(readEEPROM(6,false),DEC); client.print(F("' />")); client.print(F(" <a id='b6save' href='#' onclick='return false' style='display: none;'>save</a><br/></span><span class='explain'>Appears after date. Repeats annually.</span></li>"));//TODO tip count day of year and program override to display 0 as 366 //TODO when month changes, set date max, or can you? what about 2/29? it should just do 3/1 in those cases
0 commit comments