pub struct AprsAccess<'a> { /* private fields */ }Expand description
Read-only access to the APRS configuration region.
Provides raw byte access and typed field accessors for the APRS
settings region at pages 0x0151+. The region boundaries are
confirmed from D74 development notes; individual field offsets within
the data region are estimated.
§Known sub-regions
| MCP Offset | Content |
|---|---|
0x15100 | APRS message status header (256 bytes) |
0x15200 | APRS messages and settings (~16 KB) |
~0x19000 | APRS extended config / GPS settings |
Implementations§
Source§impl<'a> AprsAccess<'a>
impl<'a> AprsAccess<'a>
Sourcepub fn status_header(&self) -> Option<&[u8]>
pub fn status_header(&self) -> Option<&[u8]>
Get the raw APRS message status header (256 bytes at page 0x0151).
Contains metadata for APRS messages: count, read/unread flags, index pointers.
Sourcepub fn data_region(&self) -> Option<&[u8]>
pub fn data_region(&self) -> Option<&[u8]>
Get the raw APRS data region (pages 0x0152 through the start of
the D-STAR region).
Contains APRS messages, callsign, status texts, packet path,
SmartBeaconing parameters, digipeater config, and more.
Sourcepub fn read_bytes(&self, offset: usize, len: usize) -> Option<&[u8]>
pub fn read_bytes(&self, offset: usize, len: usize) -> Option<&[u8]>
Read an arbitrary byte range from the APRS region.
The offset is an absolute MCP byte address. Returns None if
the range extends past the image.
Sourcepub const fn region_size(&self) -> usize
pub const fn region_size(&self) -> usize
Get the total size of the APRS region in bytes.
Sourcepub fn my_callsign(&self) -> String
pub fn my_callsign(&self) -> String
Read the APRS MY callsign (station callsign with optional SSID).
Returns the callsign as a string (up to 9 characters, e.g. “N0CALL-9”). Returns an empty string if unreadable.
§Offset
Estimated at 0x15200 (first bytes of the APRS data region)
based on D74 layout analysis.
§Verification
Offset is estimated, not hardware-verified.
Sourcepub fn my_callsign_typed(&self) -> Option<AprsCallsign>
pub fn my_callsign_typed(&self) -> Option<AprsCallsign>
Read the APRS MY callsign as a typed AprsCallsign.
Returns None if the callsign is empty or too long.
§Offset
Estimated at 0x15200 (first bytes of the APRS data region).
§Verification
Offset is estimated, not hardware-verified.
Sourcepub fn beacon_interval(&self) -> u16
pub fn beacon_interval(&self) -> u16
Sourcepub fn packet_path_index(&self) -> u8
pub fn packet_path_index(&self) -> u8
Sourcepub fn packet_path(&self) -> String
pub fn packet_path(&self) -> String
Sourcepub fn position_data_region(&self) -> Option<&[u8]>
pub fn position_data_region(&self) -> Option<&[u8]>
Get the raw APRS/GPS position data region (0x4B00 bytes at 0x25100).
This region contains APRS position data, stored object data, and GPS-related configuration.
Returns None if the region extends past the image.
Sourcepub const fn position_data_size(&self) -> usize
pub const fn position_data_size(&self) -> usize
Get the total size of the APRS/GPS position data region in bytes.
Always returns 0x4B00 (19,200 bytes).
Sourcepub fn position_data_bytes(
&self,
rel_offset: usize,
len: usize,
) -> Option<&[u8]>
pub fn position_data_bytes( &self, rel_offset: usize, len: usize, ) -> Option<&[u8]>
Read a byte range from the APRS/GPS position data region.
The rel_offset is relative to the start of the position data
region (0x25100). Returns None if the range extends past the
region or the image.
Sourcepub fn has_position_data(&self) -> bool
pub fn has_position_data(&self) -> bool
Check if the APRS/GPS position data region contains any non-zero data.
Returns true if any byte in the region is non-zero, indicating
that position data has been stored.