Skip to content

Control hub 2a: add stable descriptor mapping and deterministic runtime projectors #305

Description

@EffortlessSteven

Parent

#301

Dependency

#300 generic control-stream domain contract.

Goal

Convert parsed OpenFlight device-runtime state into stable descriptor/baseline/event/reset items without introducing the multi-subscriber service hub yet.

Scope

  • Build a descriptor registry mapping device/runtime numeric IDs to stable external control IDs.
  • Preserve raw IDs and semantic provenance when roles are not validated.
  • Implement pure/projector logic for initial non-actionable baseline, button press/release, hat direction/neutral, encoder deltas, selected rate-limited axes, and reset/disconnect.
  • Integrate projectors with simulated T.Flight and simulated STECS runtime fixtures through narrow adapters.
  • Suppress duplicate/unchanged state.
  • Preserve deterministic per-device ordering and sequence semantics.
  • Keep all network/tonic and subscriber/backpressure logic out of this issue.

Acceptance criteria

  • Simulated T.Flight emits descriptor, baseline, button, and hat events.
  • Simulated STECS emits descriptor, baseline, representative button, and encoder events.
  • Initial/held state never synthesizes a press.
  • Duplicate snapshots emit nothing.
  • Reset/disconnect clears comparison state.
  • Stable/numeric ID mapping and raw/candidate/validated provenance are tested.
  • No protected RT path gains blocking, allocation, or network I/O.

Non-goals

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions