Package-level declarations

Types

Link copied to clipboard
data class BeaconChannel(val name: String, val psk: ByteString, val preset: ChannelOption?, val region: Config.LoRaConfig.RegionCode)

A distinct custom channel a beacon advertised, presented as a selectable row in scan setup (FR-007). Deduped by id (name + preset + PSK), since the same channel on the same preset is one row regardless of how many nodes beaconed it — but a different PSK is a different network, so it must not collapse into another row (that would send the user to the wrong mesh).

Link copied to clipboard
class DiscoveryHistoryDetailViewModel(sessionId: Long, discoveryDao: DiscoveryDao) : ViewModel
Link copied to clipboard
Link copied to clipboard
data class DiscoveryMapStats(val totalNodes: Int = 0, val mappedNodes: Int = 0, val unmappedNodes: Int = 0)

Presentation model for map node statistics.

Link copied to clipboard
class DiscoveryMapViewModel(sessionId: Long, discoveryDao: DiscoveryDao) : ViewModel
Link copied to clipboard
class DiscoveryScanEngine(radioController: RadioController, serviceRepository: ServiceRepository, nodeRepository: NodeRepository, radioConfigRepository: RadioConfigRepository, collectorRegistry: DiscoveryPacketCollectorRegistry, discoveryDao: DiscoveryDao, aiProvider: DiscoverySummaryAiProvider, applicationScope: ApplicationCoroutineScope, dispatchers: CoroutineDispatchers) : DiscoveryPacketCollector

Core scan engine for Local Mesh Discovery.

Link copied to clipboard
sealed interface DiscoveryScanState

State machine for a discovery scan lifecycle.

Link copied to clipboard
Link copied to clipboard
class DiscoverySummaryViewModel(sessionId: Long, discoveryDao: DiscoveryDao, summaryGenerator: DiscoverySummaryGenerator, rankingEngine: DiscoveryRankingEngine, aiProvider: DiscoverySummaryAiProvider, exporter: DiscoveryExporter) : ViewModel
Link copied to clipboard
class DiscoveryViewModel(scanEngine: DiscoveryScanEngine, serviceRepository: ServiceRepository, discoveryPrefs: DiscoveryPrefs, check24GhzCapability: Check24GhzCapability, meshBeaconRepository: MeshBeaconRepository, radioConfigRepository: RadioConfigRepository, discoveryDao: DiscoveryDao) : ViewModel
Link copied to clipboard
data class ScanTarget(val preset: ChannelOption, val label: String, val channel: ChannelSettings? = null, val region: Config.LoRaConfig.RegionCode? = null)

One entry in the discovery scan queue. A channel of null is a public-preset target (the original scan behavior — dwell on preset using the radio's existing primary channel). A non-null channel is a beacon-advertised custom channel: during its dwell the engine tunes the radio's primary channel to that name+PSK (and region) so nodes on that mesh are heard, then restores the original primary channel afterwards (Apple 014-mesh-beacons FR-005).