Skip to main content

parse_frame

Function parse_frame 

Source
pub fn parse_frame(line: &str) -> Result<NmeaFrame<'_>, FrameError>
Expand description

Parse a raw NMEA 0183 line into a validated frame.

Handles both $ (instrument) and ! (AIS) sentences. Strips optional IEC 61162-450 tag blocks (\...\ prefix). Validates XOR checksum when present.

Proprietary sentences (address starting with P) are detected automatically: talker will be "" and sentence_type will contain the full address (e.g. "PASHR", "PSKPDPT").

ยงExamples

use nmea_kit::parse_frame;

let frame = parse_frame("$WIMWD,270.0,T,268.5,M,12.4,N,6.4,M*63").unwrap();
assert_eq!(frame.prefix, '$');
assert_eq!(frame.talker, "WI");
assert_eq!(frame.sentence_type, "MWD");
assert_eq!(frame.fields.len(), 8);