RadioControllerImpl

class RadioControllerImpl(serviceRepository: ServiceRepository, nodeRepository: NodeRepository, commandSender: CommandSender, nodeManager: NodeManager, radioInterfaceService: RadioInterfaceService, locationManager: MeshLocationManager, packetRepository: Lazy<PacketRepository>, dataHandler: Lazy<MeshDataHandler>, analytics: PlatformAnalytics, meshPrefs: MeshPrefs, uiPrefs: UiPrefs, databaseManager: DatabaseManager, notificationManager: NotificationManager, messageProcessor: Lazy<MeshMessageProcessor>, radioConfigRepository: RadioConfigRepository, scope: CoroutineScope, onDeviceAddressChanged: () -> Unit? = null) : RadioController, AdminController, MessagingController, NodeController, QueryController(source)

Platform-agnostic RadioController composition root for any target where the service runs in-process (Desktop, iOS, or Android in single-process mode).

Rather than implementing every command itself, this class assembles four focused collaborators — one per sub-interface — and delegates to them via Kotlin interface delegation, mirroring the SDK's layered API design (AdminControllerAdminApi, MessagingControllerRadioClient.send*, NodeController/QueryControllerAdminApi/TelemetryApi/RoutingApi). When the SDK is adopted, each collaborator becomes a thin adapter and this class is the seam where they are wired together.

Only the cross-cutting concerns that don't belong to any single sub-interface live here directly: connection-state surfacing, packet-id generation, location provisioning, and device-address switching.

Constructors

Link copied to clipboard
constructor(serviceRepository: ServiceRepository, nodeRepository: NodeRepository, commandSender: CommandSender, nodeManager: NodeManager, radioInterfaceService: RadioInterfaceService, locationManager: MeshLocationManager, packetRepository: Lazy<PacketRepository>, dataHandler: Lazy<MeshDataHandler>, analytics: PlatformAnalytics, meshPrefs: MeshPrefs, uiPrefs: UiPrefs, databaseManager: DatabaseManager, notificationManager: NotificationManager, messageProcessor: Lazy<MeshMessageProcessor>, radioConfigRepository: RadioConfigRepository, scope: CoroutineScope, onDeviceAddressChanged: () -> Unit? = null)

Properties

Link copied to clipboard
open override val clientNotification: StateFlow<ClientNotification?>
Link copied to clipboard
open override val connectionState: StateFlow<ConnectionState>

Functions

Link copied to clipboard
open override fun clearClientNotification()
Link copied to clipboard
open suspend override fun editSettings(destNum: Int, block: suspend AdminEditScope.() -> Unit)
Link copied to clipboard
open suspend override fun factoryReset(destNum: Int, packetId: Int)
Link copied to clipboard
open override fun generatePacketId(): Int
Link copied to clipboard
open suspend override fun getCannedMessages(destNum: Int, packetId: Int)
Link copied to clipboard
open suspend override fun getChannel(destNum: Int, index: Int, packetId: Int)
Link copied to clipboard
open suspend override fun getConfig(destNum: Int, configType: Int, packetId: Int)
Link copied to clipboard
open suspend override fun getDeviceConnectionStatus(destNum: Int, packetId: Int)
Link copied to clipboard
open suspend override fun getModuleConfig(destNum: Int, moduleConfigType: Int, packetId: Int)
Link copied to clipboard
open suspend override fun getOwner(destNum: Int, packetId: Int)
Link copied to clipboard
open suspend override fun getRingtone(destNum: Int, packetId: Int)
Link copied to clipboard
open suspend override fun importContact(contact: SharedContact)
Link copied to clipboard
open suspend override fun nodedbReset(destNum: Int, packetId: Int, preserveFavorites: Boolean)
Link copied to clipboard
open suspend override fun reboot(destNum: Int, packetId: Int)
Link copied to clipboard
open suspend override fun rebootToDfu(nodeNum: Int)
Link copied to clipboard
open suspend override fun refreshMetadata(destNum: Int)
Link copied to clipboard
open suspend override fun removeByNodenum(packetId: Int, nodeNum: Int)
Link copied to clipboard
open suspend override fun requestNeighborInfo(requestId: Int, destNum: Int)
Link copied to clipboard
open suspend override fun requestPosition(destNum: Int, currentPosition: Position)
Link copied to clipboard
open suspend override fun requestRebootOta(requestId: Int, destNum: Int, mode: Int, hash: ByteArray?)
Link copied to clipboard
open suspend override fun requestTelemetry(requestId: Int, destNum: Int, typeValue: Int)
Link copied to clipboard
open suspend override fun requestTraceroute(requestId: Int, destNum: Int)
Link copied to clipboard
open suspend override fun requestUserInfo(destNum: Int)
Link copied to clipboard
open suspend override fun sendMessage(packet: DataPacket)
Link copied to clipboard
open suspend override fun sendReaction(emoji: String, replyId: Int, contactKey: String)
Link copied to clipboard
open suspend override fun sendSharedContact(nodeNum: Int): Boolean
Link copied to clipboard
open suspend override fun setCannedMessages(destNum: Int, messages: String)
Link copied to clipboard
open suspend override fun setConfig(destNum: Int, config: Config, packetId: Int)
Link copied to clipboard
open suspend override fun setDeviceAddress(address: String)
Link copied to clipboard
open suspend override fun setFavorite(nodeNum: Int, favorite: Boolean)
Link copied to clipboard
open suspend override fun setFixedPosition(destNum: Int, position: Position)
Link copied to clipboard
open suspend override fun setHamMode(destNum: Int, hamParameters: HamParameters, packetId: Int)
Link copied to clipboard
open suspend override fun setIgnored(nodeNum: Int, ignored: Boolean)
Link copied to clipboard
open suspend override fun setLocalChannel(channel: Channel)
Link copied to clipboard
open suspend override fun setLocalConfig(config: Config)
Link copied to clipboard
open suspend override fun setModuleConfig(destNum: Int, config: ModuleConfig, packetId: Int)
Link copied to clipboard
open suspend override fun setOwner(destNum: Int, user: User, packetId: Int)
Link copied to clipboard
open suspend override fun setRemoteChannel(destNum: Int, channel: Channel, packetId: Int)
Link copied to clipboard
open suspend override fun setRingtone(destNum: Int, ringtone: String)
Link copied to clipboard
open suspend override fun setTime(destNum: Int, packetId: Int)
Link copied to clipboard
open suspend override fun shutdown(destNum: Int, packetId: Int)
Link copied to clipboard
open override fun startProvideLocation()
Link copied to clipboard
open override fun stopProvideLocation()
Link copied to clipboard
open suspend override fun toggleMuted(nodeNum: Int)