DiscoveryScanEngine
class DiscoveryScanEngine(radioController: RadioController, serviceRepository: ServiceRepository, nodeRepository: NodeRepository, radioConfigRepository: RadioConfigRepository, collectorRegistry: DiscoveryPacketCollectorRegistry, discoveryDao: DiscoveryDao, aiProvider: DiscoverySummaryAiProvider, applicationScope: ApplicationCoroutineScope, dispatchers: CoroutineDispatchers, meshPrefs: MeshPrefs) : DiscoveryPacketCollector(source)
Core scan engine for Local Mesh Discovery.
Cycles through a queue of LoRa presets, dwells on each for a configured duration while collecting packets, then persists aggregated results via DiscoveryDao.
Constructors
Link copied to clipboard
constructor(radioController: RadioController, serviceRepository: ServiceRepository, nodeRepository: NodeRepository, radioConfigRepository: RadioConfigRepository, collectorRegistry: DiscoveryPacketCollectorRegistry, discoveryDao: DiscoveryDao, aiProvider: DiscoverySummaryAiProvider, applicationScope: ApplicationCoroutineScope, dispatchers: CoroutineDispatchers, meshPrefs: MeshPrefs)
Functions
Link copied to clipboard
Link copied to clipboard
suspend fun restoreInterruptedSessionsOnReconnect(onRestored: suspend (homePreset: String) -> Unit = {})
Watches reconnects for persisted discovery sessions left without a confirmed home-radio restore. Recovery is device-bound and skipped while this engine owns an active scan.
Link copied to clipboard
Convenience overload: scan a list of public presets (each becomes a preset ScanTarget labelled by name).
Link copied to clipboard
Starts a discovery scan across the given targets — public presets and/or beacon-advertised custom channels. (Distinct name from the ChannelOption overload: both would erase to the same JVM signature otherwise.)