Package-level declarations
Types
Link copied to clipboard
Link copied to clipboard
@Serializable
Link copied to clipboard
@Serializable
A msh.to device link, cached from the Meshtastic API (/resource/deviceLinks) during the refresh cycle.
Link copied to clipboard
data class DiscoveredNodeEntity(val id: Long = 0, val presetResultId: Long, val nodeNum: Long, val shortName: String? = null, val longName: String? = null, val neighborType: String = "direct", val latitude: Double? = null, val longitude: Double? = null, val distanceFromUser: Double? = null, val hopCount: Int = 0, val snr: Float = 0.0f, val rssi: Int = 0, val messageCount: Int = 0, val sensorPacketCount: Int = 0, val isInfrastructure: Boolean = false)
Link copied to clipboard
data class DiscoveryPresetResultEntity(val id: Long = 0, val sessionId: Long, val presetName: String, val dwellDurationSeconds: Long = 0, val uniqueNodes: Int = 0, val directNeighborCount: Int = 0, val meshNeighborCount: Int = 0, val infrastructureNodeCount: Int = 0, val messageCount: Int = 0, val sensorPacketCount: Int = 0, val avgChannelUtilization: Double = 0.0, val avgAirtimeRate: Double = 0.0, val packetSuccessRate: Double = 0.0, val packetFailureRate: Double = 0.0, val aiSummary: String? = null, val numPacketsTx: Int = 0, val numPacketsRx: Int = 0, val numPacketsRxBad: Int = 0, val numRxDupe: Int = 0, val numTxRelay: Int = 0, val numTxRelayCanceled: Int = 0, val numOnlineNodes: Int = 0, val numTotalNodes: Int = 0, val uptimeSeconds: Int = 0)
Link copied to clipboard
data class DiscoverySessionEntity(val id: Long = 0, val timestamp: Long, val presetsScanned: String, val homePreset: String, val totalUniqueNodes: Int = 0, val avgChannelUtilization: Double = 0.0, val totalMessages: Int = 0, val totalSensorPackets: Int = 0, val furthestNodeDistance: Double = 0.0, val completionStatus: String = "complete", val aiSummary: String? = null, val userLatitude: Double = 0.0, val userLongitude: Double = 0.0, val totalDwellSeconds: Long = 0)
Link copied to clipboard
data class FirmwareRelease(val id: String = "", val pageUrl: String = "", val releaseNotes: String = "", val title: String = "", val zipUrl: String = "", val lastUpdated: Long = nowMillis, val releaseType: FirmwareReleaseType = FirmwareReleaseType.STABLE)
Link copied to clipboard
@Serializable
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open class MyNodeEntity(val myNodeNum: Int, val model: String?, val firmwareVersion: String?, val couldUpdate: Boolean, val shouldUpdate: Boolean, val currentPacketId: Long, val messageTimeoutMsec: Int, val minAppVersion: Int, val maxChannels: Int, val hasWifi: Boolean, val deviceId: String? = "unknown", val pioEnv: String? = null)
Link copied to clipboard
data class NodeEntity(val num: Int, var user: User = User(), var longName: String? = null, var shortName: String? = null, var position: Position = WirePosition(), var latitude: Double = 0.0, var longitude: Double = 0.0, var snr: Float = Float.MAX_VALUE, var rssi: Int = Int.MAX_VALUE, var lastHeard: Int = 0, var deviceTelemetry: Telemetry = Telemetry(), var channel: Int = 0, var viaMqtt: Boolean = false, var hopsAway: Int = -1, var isFavorite: Boolean = false, var isIgnored: Boolean = false, var isMuted: Boolean = false, var environmentTelemetry: Telemetry = Telemetry(), var powerTelemetry: Telemetry = Telemetry(), var airQualityTelemetry: Telemetry = Telemetry(), var paxcounter: Paxcount = Paxcount(), var publicKey: ByteString? = null, var notes: String = "", var powerChannelLabels: List<String> = emptyList(), var manuallyVerified: Boolean = false, var nodeStatus: String? = null, var lastTransport: Int = 0, var signsPackets: Boolean = false)
Link copied to clipboard
Link copied to clipboard
data class Packet(val uuid: Long, val myNodeNum: Int, val port_num: Int, val contact_key: String, val received_time: Long, val read: Boolean, val data: DataPacket, val packetId: Int = 0, var routingError: Int = -1, val snr: Float = 0.0f, val rssi: Int = 0, val hopsAway: Int = -1, val sfpp_hash: ByteString? = null, val filtered: Boolean = false, val messageText: String = "", val translatedText: String? = null, val showTranslated: Boolean = false)
Link copied to clipboard
Link copied to clipboard
FTS5 virtual table that mirrors Packet.messageText for full-text search. Room auto-generates INSERT/UPDATE/DELETE triggers to keep this table in sync with the content entity (Packet).
Link copied to clipboard
data class QuickChatAction(val uuid: Long = 0, val name: String = "", val message: String = "", val mode: QuickChatAction.Mode = Mode.Instant, val position: Int)
Link copied to clipboard
data class ReactionEntity(val myNodeNum: Int = 0, val replyId: Int, val userId: String, val emoji: String, val timestamp: Long, val snr: Float = 0.0f, val rssi: Int = 0, val hopsAway: Int = -1, val packetId: Int = 0, val status: MessageStatus = MessageStatus.UNKNOWN, val routingError: Int = 0, val relays: Int = 0, val relayNode: Int? = null, val to: String? = null, val channel: Int = 0, val sfpp_hash: ByteString? = null)
Link copied to clipboard
data class TracerouteNodePositionEntity(val logUuid: String, val requestId: Int, val nodeNum: Int, val position: Position)
Functions
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
suspend fun List<ReactionEntity>.toReaction(getNode: suspend (userId: String?) -> Node?): List<Reaction>