pub enum AprsData {
Show 15 variants
Position(AprsPosition),
Message(AprsMessage),
Status(AprsStatus),
Object(AprsObject),
Item(AprsItem),
Weather(AprsWeather),
Telemetry(AprsTelemetry),
Query(AprsQuery),
ThirdParty {
header: String,
payload: Vec<u8>,
},
Grid(String),
RawGps(String),
StationCapabilities(Vec<(String, String)>),
AgreloDfJr(Vec<u8>),
UserDefined {
experiment: char,
data: Vec<u8>,
},
InvalidOrTest(Vec<u8>),
}Expand description
A parsed APRS data frame, covering all major APRS data types.
Per APRS101.PDF, the data type is determined by the first byte of the AX.25 information field. This enum covers the types most relevant to the TH-D75’s APRS implementation.
Variants§
Position(AprsPosition)
Position report (uncompressed, compressed, or Mic-E).
Message(AprsMessage)
APRS message addressed to a specific station.
Status(AprsStatus)
Status report (free-form text, optionally with Maidenhead grid).
Object(AprsObject)
Object report (named, with position and timestamp).
Item(AprsItem)
Item report (named, with position, no timestamp).
Weather(AprsWeather)
Weather report (temperature, wind, rain, pressure, humidity).
Telemetry(AprsTelemetry)
Telemetry report (analog values and digital status).
Query(AprsQuery)
Query (position, status, message, or direction finding).
ThirdParty
Third-party traffic — a packet originating elsewhere and
forwarded by an intermediate station (APRS 1.0.1 §17). The
header carries the original source>dest,path and the
payload the original info field.
Fields
Grid(String)
Maidenhead grid locator (data type [). The string form is the
4-6 character grid square, e.g. "EM13qc" or "FM18lv".
RawGps(String)
Raw GPS sentence / Ultimeter 2000 data (data type $).
APRS 1.0.1 §5.2: anything starting with $GP, $GN, $GL,
$GA (GPS/GNSS NMEA) or other $-prefixed instrument data.
We store the full NMEA sentence minus the leading $.
StationCapabilities(Vec<(String, String)>)
Station capabilities report (data type <).
APRS 1.0.1 §15.2: comma-separated TOKEN=value tuples
describing what the station supports (IGATE, MSG_CNT,
LOC_CNT, etc.). We store them as a map.
AgreloDfJr(Vec<u8>)
Agrelo DFjr (direction-finding) data (data type %).
The library doesn’t interpret the binary format; we preserve the raw payload bytes for callers that do.
UserDefined
User-defined APRS data (data type {).
APRS 1.0.1 §18: format is {<experiment_id><type><data> where
the experiment ID is one character. We split it out for
convenience; callers that understand the experiment can parse
the rest.
Fields
InvalidOrTest(Vec<u8>)
Invalid/test frame (data type ,).
Used for test beacons and frames that should be ignored by normal receivers. We preserve the payload for diagnostics.