Repository navigation
[EPIC] Configurable circuit gates and automated pit-lane sessions #105
Copy link
Copy link
Closed
5 / 55 of 5 issues completedClosed
5 / 55 of 5 issues completed
Copy link
Labels
area:session-uiSession workflow and driver-facing UISession workflow and driver-facing UIarea:timingLap geometry, timing, and event stateLap geometry, timing, and event statearea:tracksTrack definitions, loading, selection, and toolingTrack definitions, loading, selection, and toolingepicParent issue grouping a major delivery outcomeParent issue grouping a major delivery outcomepriority:highRequired for the current milestone or a correctness/reliability riskRequired for the current milestone or a correctness/reliability risk
Description
Objective
Deliver accurate, offline lap and session control using four directed GPS gate lines per circuit layout: start, finish, pit entry, and pit exit.
Accepted product decisions
- Exact events use finite directed line-segment intersection, never a radius or timing box.
- Consecutive accepted GNSS fixes form the vehicle movement segment.
- Crossing time is interpolated from receiver measurement timestamps using the intersection fraction.
- A surrounding corridor is used only for rearm/hysteresis; direction, speed, GNSS quality, sequence monotonicity, and minimum lap time also protect against duplicates.
- The selected start or finish gate is the repeating lap boundary: first valid crossing starts Lap 1, next crossing of the same gate completes it.
- Device settings independently select START or FINISH, pit-exit auto-start, and pit-entry auto-stop.
- Manual start and guarded manual stop always remain available.
- Each circuit layout has its own versioned JSON definition; start and finish may share coordinates.
- On-device geometry capture uses validated stationary GNSS fixes for left/right endpoints; prebuilt JSON deployment remains supported.
- The initial UK pack covers major permanent paved car circuits and standard layouts across all four UK nations, excluding karting, hill climbs, and temporary venues.
- Publicly researched coordinates remain provisional until independently or physically validated.
Existing prerequisite work
- Implement and test geographic-to-local coordinate projection #20 geographic projection
- Harden segment intersection and define endpoint ownership #21 robust intersection and endpoint ownership
- Implement crossing direction, speed, and GNSS-quality validation #22 direction, speed, and GNSS-quality validation
- Implement crossing-time interpolation and robust timestamp ordering #23 receiver-time interpolation
- Implement the lap state machine, startup arming, rearm, and minimum-lap rules #24 lap state, rearm, and minimum-lap rules
- Port the timing engine to ESP32 and prove host/embedded parity #25 embedded/replay parity
- Harden the track schema and add semantic geometry validation #34 semantic track validation
- Build safe unknown-track capture and host track validation tools #37 safe capture and host tooling
Exit gate
Synthetic and recorded traces generate exactly one correctly timed event per valid configured gate crossing at supported sample rates and vehicle speeds. Settings control lap boundary and independent pit automation, four-gate JSON can be safely captured or deployed, manual controls remain available, and every UK definition is provenance-marked and validation-gated.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:session-uiSession workflow and driver-facing UISession workflow and driver-facing UIarea:timingLap geometry, timing, and event stateLap geometry, timing, and event statearea:tracksTrack definitions, loading, selection, and toolingTrack definitions, loading, selection, and toolingepicParent issue grouping a major delivery outcomeParent issue grouping a major delivery outcomepriority:highRequired for the current milestone or a correctness/reliability riskRequired for the current milestone or a correctness/reliability risk
Activity
PurpleSentinel commentedon Aug 14, 2026
Progress: #107 completed and merged via #111 (c07e65d). Track schema v2 now requires directed start, finish, pit-entry, and pit-exit gates, projects all endpoints, validates safety bounds and line length, and explicitly rejects v1. Local and remote host, simulator, and ESP-IDF firmware gates passed. Next dependency-ready delivery issue: #106.
PurpleSentinel commentedon Aug 14, 2026
Progress: timing prerequisite #20 completed and merged via #112 (ecdbbe3). The shared WGS84 circuit-local projection now handles both hemispheres and antimeridian geometry, enforces bounded inputs, projects all four track gates, and is compiled identically for host, simulator, and ESP32-S3. Local and remote host, 60-test simulator, and firmware gates passed. #106 remains dependent on #21–#25; next bounded prerequisite is #21.
PurpleSentinel commentedon Aug 14, 2026
Timing dependency progress: #21 is complete via PR #113, following projection issue #20.
The circuit-gate work now has a deterministic, tested intersection contract that suppresses duplicate candidates at exactly-on-line fixes. Integration issue #106 remains dependent on #22–#25 before the four configured gates can safely drive lap and pit-session events.
PurpleSentinel commentedon Aug 14, 2026
Dependency progress: #22 is complete via PR #114.
Directed candidates now apply signed side transitions, interpolated speed, circular heading tolerance, configurable GNSS fix/accuracy thresholds, and stable replayable decision reasons. Timing prerequisites #20–#22 are closed; #23 is next.
PurpleSentinel commentedon Aug 14, 2026
#23 is complete via PR #115. Receiver-time rollover normalization, ordering checks, gap/staleness rejection, and latency-independent crossing-time interpolation are now merged. #24 is next.
PurpleSentinel commentedon Aug 14, 2026
#24 is complete via PR #116. The deterministic lap lifecycle, startup arming, corridor rearm, minimum-time guard, and lap/suspect bookkeeping are merged. #25 host/embedded parity is next.
PurpleSentinel commentedon Aug 14, 2026
#25 is complete via PR #117. All timing prerequisites #20–#25 are now merged; track semantic validation #34 is next before gate integration #106.
PurpleSentinel commentedon Aug 14, 2026
Progress update: timing prerequisites #20-#25 are complete. Track schema/semantic validation #34 merged in PR #118, and safe stationary capture plus host workbench #37 merged in PR #119. Starting native child #106 next; #108, #110, and #109 remain queued sequentially.
PurpleSentinel commentedon Aug 14, 2026
Completed. All five native subissues are closed:
The prerequisite chain is also complete: #20–#25, #34, and #37.
Final delivery evidence:
make checkhost suite passedSafety gate retained: publicly researched geometry is machine-marked provisional, cannot be selected for live lap timing, and remains timer-only until complete device capture or independent/physical validation promotes it. Manual session controls remain available alongside configurable pit automation.
The epic exit criteria are satisfied and the native child tree is complete.