2.5 KiB
MAVLink GCS Gateway
Task: AZ-224_mavlink_gcs_gateway
Name: MAVLink GCS Gateway
Description: Subscribe to FC telemetry, emit GPS_INPUT, and publish QGC-visible status/failsafe messages.
Complexity: 3 points
Dependencies: AZ-220_shared_runtime_contracts, AZ-222_runtime_config_errors_telemetry
Component: MAVLink And GCS Integration
Tracker: AZ-224
Epic: AZ-210
Problem
The runtime needs a strict protocol boundary for ArduPilot Plane telemetry in and GPS-denied estimates/status out.
Outcome
- FC telemetry is normalized into shared samples.
GPS_INPUTis emitted only from validated position estimates.- QGC status is rate-limited and safety-relevant.
Scope
Included
- Telemetry subscription behavior.
GPS_INPUTfield validation and emission result.- QGC status/failsafe message emission.
Excluded
- Safety policy and covariance calculation.
- SITL test runner implementation.
Dependencies
Document Dependencies
_docs/02_document/contracts/shared/runtime_contracts.md_docs/02_document/contracts/shared/config_errors_telemetry.md
Acceptance Criteria
AC-1: Telemetry sample emitted Given a valid FC telemetry stream When the gateway subscribes Then normalized telemetry samples are available to consumers.
AC-2: Invalid GPS_INPUT is rejected
Given a malformed or unsafe position estimate
When emission is requested
Then no invalid GPS_INPUT packet is emitted.
AC-3: Operator status is rate-limited Given repeated mode changes or warnings When status is emitted Then QGC-visible messages stay within the configured rate.
Non-Functional Requirements
Reliability
- Connection loss is surfaced to wrapper/FDR.
Unit Tests
| AC Ref | What to Test | Required Outcome |
|---|---|---|
| AC-1 | Telemetry normalization | Shared sample emitted |
| AC-2 | Invalid fix type/accuracy | Emission rejected |
| AC-3 | Status burst | Rate limit enforced |
Blackbox Tests
| AC Ref | Initial Data/Conditions | What to Test | Expected Behavior | NFR References |
|---|---|---|---|---|
| AC-2 | Plane SITL | GPS_INPUT output |
Fields match ArduPilot expectations | Reliability |
Constraints
- v1 emits
GPS_INPUTonly. - Do not hide MAVLink disconnects or invalid output errors.
Risks & Mitigation
Risk 1: ArduPilot parameter mismatch
- Risk: Plane ignores or mishandles emitted estimates.
- Mitigation: SITL validation remains a release gate.