AprsAccess

Struct AprsAccess 

Source
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 OffsetContent
0x15100APRS message status header (256 bytes)
0x15200APRS messages and settings (~16 KB)
~0x19000APRS extended config / GPS settings

Implementations§

Source§

impl<'a> AprsAccess<'a>

Source

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.

Source

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.

Source

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.

Source

pub const fn region_size(&self) -> usize

Get the total size of the APRS region in bytes.

Source

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.

Source

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.

Source

pub fn beacon_interval(&self) -> u16

Read the beacon interval in seconds.

Returns the interval as a 16-bit value (range 30-9999 in normal operation). Returns 0 if unreadable.

§Offset

Estimated at 0x1520A (APRS data region + 0x0A) based on D74 layout analysis.

§Verification

Offset is estimated, not hardware-verified.

Source

pub fn packet_path_index(&self) -> u8

Read the packet path selection index.

Returns a raw index value (0 = Off, 1 = WIDE1-1, 2 = WIDE1-1 WIDE2-1, etc.). Returns 0 if unreadable.

§Offset

Estimated at 0x1520C (APRS data region + 0x0C) based on D74 layout analysis.

§Verification

Offset is estimated, not hardware-verified.

Source

pub fn packet_path(&self) -> String

Read the packet path as a display string.

Translates the raw index into a human-readable path string.

§Offset

Estimated at 0x1520C (APRS data region + 0x0C).

§Verification

Offset is estimated, not hardware-verified.

Source

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.

Source

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).

Source

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.

Source

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.

Trait Implementations§

Source§

impl<'a> Debug for AprsAccess<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for AprsAccess<'a>

§

impl<'a> RefUnwindSafe for AprsAccess<'a>

§

impl<'a> Send for AprsAccess<'a>

§

impl<'a> Sync for AprsAccess<'a>

§

impl<'a> Unpin for AprsAccess<'a>

§

impl<'a> UnwindSafe for AprsAccess<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more