Conformance posture: NMEA 0183¶
Adapter: src/nous/interop/nmea0183.py (BL-033)
Standard: NMEA 0183 v4.10. The simulator emits the
$GPGGA sentence (essential GPS fix data).
Current posture: Encode produces a fully-specified $GPGGA
sentence with all fourteen fields (UTC, lat, NS, lon, EW, fix
quality, satellites, HDOP, MSL altitude with M units, geoid
separation, M, DGPS age, DGPS station), XOR checksum, ASCII-only
enforcement, and explicit lat / lon range validation. Decode parses
the sentence back to the structured fields, validates the checksum,
and rejects non-ASCII payloads. Encoder refuses to emit when the
source estimate is older than max_age_s (default 5 s).
What is supported: $GPGGA encode and decode with checksum
verification. The encoded string carries the trailing \r\n per spec
and is byte-compatible with any NMEA 0183 4.10 consumer.
What is omitted: Other sentences ($GPRMC, $GPGSA, $GPGSV),
multi-talker prefixes (GL, GN, GA, GB); these would slot in
behind the same encode / decode surface.
Conformance claim: None. The 2026-05-23 audit confirmed the GGA field completeness (closes the baseline H5 finding).