mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-23 01:41:14 +00:00
[AZ-598] Batch 78: sitl_observer.wait_for_outbound + FT-P-01 fixture builder
Phase 1: extend sitl_observer with cursor-based `wait_for_outbound` returning `OutboundMessage` from `outbound_messages_<fc_kind>_<host>.json` fixtures. Three outcomes: message, TimeoutError (null entries), or RuntimeError (missing/malformed). Fix FT-P-01 + FT-P-05 scenarios to use `fc_kind=` kwarg. Phase 2: FT-P-01 vertical-slice fixture builder under `e2e/fixtures/sitl_replay_builder/`. Reuses the production `gps-denied-replay` CLI + `ReplayInputAdapter`: encode 60 stills as 1 fps MP4 + synthetic stationary tlog (pymavlink); run replay; project FDR outbound estimates into the schema. Avoids the 13+ cp of SUT-side frame-ingestion that a live-SITL-capture path would have required. Live execution remains a manual operator step. +35 unit tests (664 total, up from 637). K=3 cumulative review for b76-b78 documents the offline-replay arc convergence. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
"""SITL replay fixture builder (AZ-598).
|
||||
|
||||
Vertical-slice tooling that produces the `outbound_messages_<fc_kind>_<host>.json`
|
||||
+ `observer_<fc_kind>_<host>.json` fixtures consumed by the b75 sitl_observer
|
||||
in offline FDR-replay mode.
|
||||
|
||||
Strategy: reuse the production `gps-denied-replay` CLI + `ReplayInputAdapter`
|
||||
to drive the SUT pipeline against a 1 fps MP4 encoded from the FT-P-01 still
|
||||
image set and a synthetic stationary tlog. Read the resulting FDR JSONL and
|
||||
project each per-frame outbound estimate into the fixture schema. This avoids
|
||||
building new SUT-side frame ingestion infrastructure.
|
||||
|
||||
Only the FT-P-01 still-image variant is supported in this batch; FT-P-02 etc.
|
||||
will land as follow-up tickets.
|
||||
|
||||
Public symbols live on the submodule `build_p01_fixtures`; we deliberately
|
||||
do NOT re-export them on the package namespace because the function and
|
||||
the submodule share the name `build_p01_fixtures` and the function would
|
||||
shadow the submodule for `import …build_p01_fixtures as bp` callers.
|
||||
"""
|
||||
Reference in New Issue
Block a user