Skip to content

Integrate selectable lap-boundary and pit-gate crossing events #106

Closed

Description

@PurpleSentinel

Parent: #105

Objective

Apply the common crossing engine to the configured repeating lap boundary and both pit gates without weakening timing accuracy or duplicate suppression.

Scope

  • Consume start or finish as the selected repeating lap boundary.
  • Emit typed start, finish, pit-entry, and pit-exit crossing decisions with intersection fraction and receiver-time timestamp.
  • Maintain independent safe rearm state for relevant gates.
  • Apply direction, per-gate speed, GNSS quality, timestamp/sequence, and corridor-leave rules.
  • Ensure high vehicle speed and 20/25 Hz sampling cannot skip a crossing when consecutive accepted fixes span the finite gate.
  • Record accepted and rejected decisions for deterministic replay.
  • Test endpoint, on-line, parallel, reverse, jitter, large-step/high-speed, slow pit-lane, stale, and poor-fix cases.

Acceptance criteria

  • Exactly one event is emitted for each valid crossing and none for invalid/repeated samples.
  • Crossing timestamps use interpolation, not the later sample or UART arrival time.
  • Changing the selected lap boundary changes only the gate used for lap state.
  • Host and embedded/replay behavior agree.

Depends on #20, #21, #22, #23, #24, and #25.

Activity

  1. added
    enhancementNew feature or request
    priority:highRequired for the current milestone or a correctness/reliability risk
    area:timingLap geometry, timing, and event state
    area:tracksTrack definitions, loading, selection, and tooling
    on Aug 14, 2026
  2. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Dependency update: the four-gate track schema in #107 is complete and merged via #111. This issue can now consume the validated start, finish, pit-entry, and pit-exit definitions.

  3. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Dependency correction and progress: #107 supplied the four-gate schema, but this integration issue also depends on timing-engine issues #20–#25. #20 is now complete via #112. Remaining prerequisites are #21, #22, #23, #24, and #25, so #106 is not yet implementation-ready; work continues sequentially with #21.

  4. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    Dependency update: #21 is closed via PR #113.

    Available building blocks now include the circuit-local projection (#20) and hardened half-open segment intersection (#21). Remaining timing-engine dependencies are #22–#25; #22 is next.

  5. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    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.

  6. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    #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.

  7. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    #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.

  8. PurpleSentinel commented on Aug 14, 2026

    @PurpleSentinel
    ContributorAuthor

    #25 is complete via PR #117. Projection through lap-event state is now one host/ESP32 engine with deterministic replay coverage. #34 and #37 remain before this integration issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:timingLap geometry, timing, and event statearea:tracksTrack definitions, loading, selection, and toolingenhancementNew feature or requestpriority:highRequired for the current milestone or a correctness/reliability risk

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions