Package-level declarations
Types
Envelope of the bundled device_bootloader_ota_quirks.json asset.
Defines the capabilities and feature support based on the device firmware version.
Type-safe wrapper for contact key strings (channel index + node address).
A data class version of the protobuf MeshPacket + Data subpacket.
A msh.to device link resolved by the Meshtastic API (/resource/deviceLinks) and cached locally. Every link routes through the msh.to redirect service.
Represent the different ways a device can connect to the client.
Zero-overhead wrapper providing structured access to parse and compare device version strings.
Display metadata for one event-specific firmware edition (Hamvention, DEFCON, …).
A labeled link for an event (website, schedule, map, …).
Response envelope for event-firmware display metadata. Matches the bundled event_firmware.json and the planned GET /resource/eventFirmware API, sharing the {version, generatedAt, source, <payload>[]} shape used by NetworkDeviceLinksResponse. See schemas/event_firmware.schema.json for the authoring contract.
Address identifiers for all supported radio backend implementations.
Represents activity on the mesh network.
A received Mesh Beacon invitation — an advisory, zero-hop advertisement from another mesh offering a channel to join. Beacons are unsigned and originate from nodes outside the local NodeDB, so this is deliberately not a message/contact; it lives in the Discovery surface instead.
App-level MQTT proxy connection state, decoupled from the MQTT library's internal type.
UI-friendly outcome of a one-shot MQTT broker reachability probe.
A single resolved device link from the Meshtastic API.
Response envelope of GET /resource/deviceLinks on the Meshtastic API. The server resolves meshtastic/msh.to's catalog into fully-classified links (type + targets + regions), so the client only stores and filters them — no client-side matching heuristic.
Domain model representing a node in the mesh network.
Type-safe representation of a mesh node address.
Controls the visual density of the node list.
Exception thrown when an operation is attempted while not connected to a mesh radio.
Regulatory regions for radio usage
The modem presets the firmware advertised as legal for one LoRa region, decoded from a LoRaRegionPresetMap.
Durable per-node remote-administration session status, derived from the time of the last admin response that carried a session_passkey from the target node.
Properties
Type-safe interpretation of DataPacket.to.
Checks whether this packet is addressed to the broadcast channel.
The @mention wire token: @ followed by a node's hex user id (@!ffccee11). This is the single source of truth for the cross-platform wire format (see meshtastic/design#21) so the compose input, message rendering, and notification paths all detect it identically. The 8-hex run plus the negative lookahead reject a partial match against a longer id.
The SNR (in dB) at or above which a packet sent with this modem preset can still be demodulated — i.e. the spreading-factor-determined demodulation floor. Signal quality should be judged relative to this limit, since the same SNR means very different things per preset: -15 dB is excellent on LongSlow (SF12) yet unusable on ShortFast (SF7).
Type-safe interpretation of DataPacket.from.
Functions
Resolves the RegionPresetConstraint the firmware advertised for region, or null when there is no constraint information and the client must therefore NOT restrict the preset list. A null result happens when:
The app's preferred default preset for region, or null when it has no region-specific default and the caller should fall back to ChannelOption.DEFAULT / the current preset.
Checks whether this packet originated from the local device.
Merges a user-editable power-channel label into existing at the 0-based channelIndex.
Derives a unique color pair from a node number. Returns (foreground, background) as @ColorInt.
Pure mapping to the cached domain model. Callers are expected to drop TYPE_INTERNAL links (GitHub, YouTube, …), which never belong to a device's purchase section.