Files
Oleksandr Bezdieniezhnykh 47ad43f913 [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>
2026-05-17 12:08:02 +03:00

21 lines
1002 B
Python

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