Repository navigation
Let rings and progress lines follow the minute, hour and second - #82
Open
freethinkel wants to merge 1 commit into
Open
freethinkel wants to merge 1 commit into
freethinkel wants to merge 1 commit into
Conversation
The format has no expression language, but the stock faces bind both widget kinds to time ids: Time_Finder, Flux and Dual_phase carry rings on hour/minute/second with the gauge in the source's own units, and Progress_Day draws its dots with 60-frame minute pickers. A ring switched onto a time source now takes that stock range (and meta max 100000), and the add menu offers minute and hour progress lines built like those pickers. Seconds stay ring-only: no stock face pickers a second id. Refs #63 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133XEoqqJ6bDBvzQTMXzFD4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #63
What the firmware can draw
The
.binformat has no expression language. A widget reads one data-source id, and the watch does the rest. So there is no way to write Facer's#Dm#-style formulas. What the stock faces do show is that time ids can drive a fill. I checked all 100 stock faces:Digital__337__Time_Finderhas three image-backed0x80/0x5arings: hour (0x0a, gauge 0..3600), minute (0x0b, 0..60) and second (0x0f, 0..60).Creative__332__Fluxhas a0x81/0x5bring on second (0x0f, 0..60).Digital__353__Dual_phasehas one on hour 24h (0x04, 0..24). Every one of them has meta max 100000. The fill is(value - min) / (max - min)in the source's own units.progressFracalready computes exactly that.Creative__343__Progress_Daydraws its dots with 24 minute pickers of 60 frames each (0x0b, meta max 60). The watch drawsframes[minute % 60], so frame i is a dot i/60 full.Analog__341__Dual_Viewhas a 24-frame picker on hour 24h (0x04, max 0).Change
gaugeOnSourceinarc.ts).0x0b) and "Hour progress line" (24 frames on0x04). They are built from the same frame generator as the battery line. Each node copies its stock picker's meta.LINE_SOURCESinfactory.tslists the battery, minute and hour rows.Limits (
ponytail:comments)Test
tests/doc-factory.test.ts:toLegacy -> buildBin -> parseBin. Its struct meta and refType must match one of Progress_Day's 60-frame pickers, and frames 0/30/59 must be 0/100/197 px filled.gaugeOnSourcemust produce that ring's own min/max, and meta max must be 100000. Moving the ring back to a metric must give a percent again.Creative__343__Progress_DayandDigital__337__Time_Finderare added totests/__fixtures__, so the corpus round-trip tests cover them as well.pnpm format,pnpm lint(no new warnings),pnpm checkandpnpm testpass.Draft reply to the reporter
🤖 Generated with Claude Code
https://claude.ai/code/session_0133XEoqqJ6bDBvzQTMXzFD4