Read the watch's sunrise, sunset, SpO2 and sleep sources - #32
Merged
Conversation
The stock Default__280__Multifunction face binds ids 0x84..0x87: two auto-layout groups flanking its sun arc, each an hour, a separator image and a minute widget declaring max=60 — the same shape as the face's own clock group, printing the 05:41 / 06:24 its screenshot shows. So this is real firmware data, not something to bake into a bitmap: label the four ids, and the source picker offers them like any other. The simulator feeds them one time each rather than four numbers, through a native time field. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BbdLFi3m6wgXkK661n1JwT
The stock Default__280__Multifunction reads three more sources nothing here knew: 0x1b beside its heart rate (98, under a blood-oxygen icon), and 0x42/0x43 with a 0x46 ring for last night's sleep — the pair splits the duration into hours and minutes, the ring gauges it whole against the wearer's goal, exactly like a steps ring. SpO2 is a plain metric; sleep and its goal are minutes, so the panel's sunrise/sunset time fields become one list of clock-shaped inputs rather than a second block beside them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BbdLFi3m6wgXkK661n1JwT
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.
The watch already feeds these — no bitmap baking needed.
Scanning all 101 stock faces turned up unlabelled data-source ids on
Default__280__Multifunction, the face the issue points at. Two auto-layout groups flanking its sun arc (x=41andx=377, bothy=130) are built exactly like the face's own clock group — hour, separator image, minute widget declaringmax=60— and print the05:41/06:24its screenshot shows:0x84..0x87are sunrise and sunset. The same face reads0x1bbeside its heart rate (98, blood oxygen) and0x42/0x43with a0x46ring for last night's sleep (7.36Hagainst the wearer's goal).So they are wired up like every other source: labelled in
ID_LABELS, valued inidValue, and offered by the source picker with no extra UI. The simulator feeds sunrise/sunset/sleep one time field each instead of the six number boxes those ids would otherwise ask for, and the sleep ring divides by a goal like a steps ring does.The hour sources appear to follow the device's 12/24h setting — that
06:24is an evening sunset — so the sim's own 24-hour switch drives them; a per-id override still overrides.Closes #28
🤖 Generated with Claude Code
https://claude.ai/code/session_01BbdLFi3m6wgXkK661n1JwT