Add full positional test feature - #21
Open
colincoleman wants to merge 4 commits into
Open
Conversation
Guided six-position timing test that measures rate, beat error, and amplitude across all standard horological positions (DU, DD, CU, CD, CL, CR) with real-time paperstrip visualization. - New positional_test.c/.h module with state machine (IDLE, ACTIVE, TRANSITION, COMPLETE) driving the test lifecycle - Cairo swim-lane display with tic/toc traces using separate offset chains to isolate rate drift from beat error wobble - Per-position results computed by averaging live snapshot readings from a configurable window (last N seconds) - Configuration dialog with watch name, position duration, and averaging window settings - Text report panel rendered on-screen during and after test, populating as positions complete - Save Report button exports plain-text fixed-width report to file - Full Test / Cancel Test button with controls lock during test - Signal loss detection with 60-second skip/cancel dialog
colincoleman
force-pushed
the
feat-positional-test
branch
from
June 22, 2026 19:20
951e678 to
1d4bc75
Compare
Author
|
Force pushed to remove sloppy tests and useless binaries that were with them |
The swim-lane strips accumulated tic and toc onto two independent offset chains and anchored the toc line on the first beat's instantaneous tic-toc asymmetry. That single noisy sample - not the averaged beat error - set the gap between the white and gold traces, so the spacing didn't track beat error and looked different (and non-comparable) from one position to the next. Use the same scheme as the main paperstrip instead: accumulate one phase offset over all events at the half-beat spacing. Rate drift then shows as the slope of the trace and the tic/toc dots separate by exactly the beat error, on the same fixed scale for every position. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Calibration is stored internally in units of 0.1 s/d, but the on-screen report header and the saved text report printed the raw integer - so a cal of -0.1 s/d showed as "-1". Divide by 10 when displaying, matching the main window's calibration field. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Guided six-position timing test that measures rate, beat error, and amplitude across all standard horological positions (DU, DD, CU, CD, CL, CR) with real-time paperstrip visualization.
Covers #17