Completely refactors the simple clock face
and lays the foundations for new features.
Also adds a compile time 24 hour mode only feature.
Tested-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Tested-on-hardware-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
Signed-off-by: Matheus Afonso Martins Moreira <matheus.a.m.moreira@gmail.com>
GitHub-Pull-Request: https://github.com/joeycastillo/Sensor-Watch/pull/373
* Introduce shell module for basic serial shell with argument parsing
* Introduce shell_cmd_list module for basic compile-time command
registration
* Harden USB handling to hang less and drop fewer inputs
- Service tud_task() with periodic TC0 timer interrupt
- Service cdc_task() with periodic TC1 timer interrupt
- Handle shell servicing in main app loop
- Add a circular buffering layer for reads/writes
* Change newline prints to also send carriage return
* Refactor filesystem commands for shell subsystem
* Introduce new shell commands:
- 'help' command
- 'flash' command to reset into bootloader
- 'stress' command to stress CDC writes
Testing:
* Shell validated on Sensor Watch Blue w/ Linux host
* Shell validated in emscripten emulator
* Tuned by spamming inputs during `stress` cmd until stack didn't crash
* Update movement_faces.h
adding decimal_time_face.h to build
* Decimal Time, a new clock face
This face presents the current time as hours and hundredths of an hour.
* add decimal time to Makefile
* initial wyoscan commit
* initial attempt at animation
* kinda working
* visually working but running out of memory
* slower
* little fixes
* add hardware watch blink function
* refine number animation
* remove movement from config for merging
* silence warnings
---------
Co-authored-by: Willy Hardy <whardy@redhat.com>
* initial commit, added opt3001 light meter test app
* tested working light meter board, i2c communication still has issues
* fixed i2c; rudimentary lightmeter works!
* added aperture priority ui
* added aperture priority ui
* added README
* adjusted cal
* fixed bugs (HI shutter speed, lux mode toggle)
* made it possible to advance to the next face
* initialized lux variable
* lowered tolerance for HI and LO
* Changed EV display from always showing EV100 to showing EV[iso setting]
* dont display old ev when ISO changes
* changed mode and light behavior
* updated readme
* fixed indentation
* made lightmeter display logic more consistent
* made lightmeter display logic more consistent
* reverted rules.mk (for merge into upstream)
* reverted rules.mk (for merge into upstream)
* removed OPT3001 PCB model
* made lux mode default, corrected timeout behavior
---------
Co-authored-by: Christian Chapman <user@debian>
* time left face: initial commit, fully functional
* time left face: typos
* time left face: correct even more typos in documentation
---------
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
* Implementation of alternative world clock.
* Fixed two minor bugs
- Only start in settings mode on first activation
- Fixed typo in time zone names
---------
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
* invaders face: Initial commit, fully functional so far
* invaders face: silence compiler warning
* invaders face: prevent involuntary restarts when the game is over and save some bytes on flags
---------
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
* chirpy demo face; activity face stub
* activity face WIP: can log, pause and clear
* activity face and chirpy demo: ready to flash to watch
* activity face tweaks
* hour display for hours < 10
* fix: added rogue paused seconds when stopping activity
* LE mode; lower power with 1Hz tick
* fix: midnight is 12
* Documentation in code comments
* fixes from code review by @neutralinsomniac
* chirpy_demo_face option to chirp out nanosec.ini + auto-format
* UI tweaks
* remove erroneously added file (content revoked)
* UI tweaks: return from LE mode; time display vs LAP
* add default loop handler (will enable long-mode-to-first-face)
* reset watch faces to match main branch
* timer face: initial commit, fully functional
* timer face: show slot number in normal mode
---------
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
* discgolf_face initial commit
* Comment on wrong line
* updated drawing method and added beeps
* Put description in appropriate file, added license
* fixed for loops that didn't cover whole array, long mode press snaps back to default face
---------
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
* totp : rework and add SHA256/512
* totp : comment code
* totp : fix SHA224/SHA384 and examples
* totp : fix bug in totp_face_lfs
* totp : init_totp_record to SHA1
* totp : move TOTP-MCU to TOTP, update README and example
* totp : SHAX, use size_t n instead of harcoded 8
* clarify what to put in TOTP face
Co-authored-by: Emilien <Emilien>
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>
* buzzer sequences: first draft, does not work on hardware yet (but in simulator)
* buzzer sequences: add changes to movement.c
* buzzer sequences: add demo face to Makefile
* buzzer sequences: fix problem of interrupted sounds. Add logic for repeating sub sequences. Tidy up (move logic to watch_buzzer files, remove buzzer_demo_face)
* buzzer sequences: tidy up even more
* buzzer sequences: disable registering a 32 Hz tick callback for watch faces, so it will be used exclusively by the buzzer sequences functionality
* buzzer sequences: add callback slot functionality to watch_rtc and make watch_buzzer use it. Switch internal buzzer sequences tick frequency to 64 Hz. Revert changes to movement.c
* interval face: add initial version
* interval face: fix theoretical problem in helper function
* buzzer sequences: fix parameter sanity check in watch_rtc code
* buzzer sequences/watch_rtc: optimize calling tick callbacks in RTC_Handler
* buzzer sequences/watch_rtc: fix error in calling callback functions
* buzzer sequences: revert changes to watch_rtc logic. Instead, use TC3 as the source for timing the sound sequences.
* buzzer sequences: fix frequency of callback
* buzzer sequences: integrate changes from PR #162 (set both CCBUF and PERFBUF for correct buzzer tone)
Co-authored-by: joeycastillo <joeycastillo@utexas.edu>