* 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
* 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>
Makefile != bourne shell, I think.
At least on my systems, this was causing a raw -j, which meant
that make had no restriction on its parallelism
(i.e. tried to build everything at once).
Instead of calling python use python3.
On a default debian 11 install there is no python binary, only python3.
Given that the uf2conv script is written for python 3 I think this is a
safe change to make
* Put something on screen
* Use the 32bit watch_date_time repr to pass from JS
* Implement periodic callbacks
* Clear display on enabling
* Hook up watch_set_led_color() to SVG (green-only)
* Make debug output full-width
* Remove default Emscripten canvas
* Implement sleep and button clicks
* Fix time zone conversion bug in beats-time app
* Clean up warnings
* Fix pin levels
* Set time zone to browser value (if available)
* Add basic backup data saving
* Silence format specifier warnings in both targets
* Remove unnecessary, copied files
* Use RTC pointer to clear callbacks (if available)
* Use preprocessor define to avoid hardcoding MOVEMENT_NUM_FACES
* Change each face to const preprocessor definition
* Remove Intl.DateTimeFormat usage
* Update shell.html title, header
* Add touch start/end event handlers on SVG buttons
* Update shell.html
* Update folder structure (shared, simulator, hardware under watch-library)
* Tease out shared components from watch_slcd
* Clean up simulator watch_slcd.c inline JS calls
* Fix missing newlines at end of file
* Add simulator warnings (except format, unused-paremter)
* Implement remaining watch_rtc functions
* Fix button bug on mouse down then drag out
* Implement remaining watch_slcd functions
* Link keyboard events to buttons (for keys A, L, M)
* Rewrite event handling (mouse, touch, keyboard) in C
* Set explicit text UTF-8 charset in shell.html
* Address PR comments
* Remove unused directories from include paths