Package-level declarations

Types

Link copied to clipboard
open class AdminActionsUseCase(radioController: RadioController, nodeRepository: NodeRepository)

Use case for performing administrative and destructive actions on mesh nodes.

Link copied to clipboard
@Serializable
data class AirQualityMetricsExport(val pm10Standard: Int? = null, val pm25Standard: Int? = null, val pm100Standard: Int? = null, val pm10Environmental: Int? = null, val pm25Environmental: Int? = null, val pm100Environmental: Int? = null, val particles03um: Int? = null, val particles05um: Int? = null, val particles10um: Int? = null, val particles25um: Int? = null, val particles50um: Int? = null, val particles100um: Int? = null, val co2: Int? = null, val co2Temperature: Float? = null, val co2Humidity: Float? = null, val formFormaldehyde: Float? = null, val formHumidity: Float? = null, val formTemperature: Float? = null, val pm40Standard: Int? = null, val particles40um: Int? = null, val pmTemperature: Float? = null, val pmHumidity: Float? = null, val pmVocIdx: Float? = null, val pmNoxIdx: Float? = null, val particlesTps: Float? = null)
Link copied to clipboard
open class CleanNodeDatabaseUseCase(nodeRepository: NodeRepository, radioController: RadioController)

Use case for cleaning up nodes from the database.

Link copied to clipboard
@Serializable
data class DeviceMetadataExport(val firmwareVersion: String? = null, val deviceStateVersion: Int? = null, val canShutdown: Boolean = false, val hasWifi: Boolean = false, val hasBluetooth: Boolean = false, val hasEthernet: Boolean = false, val role: String? = null, val positionFlags: Int? = null, val hwModel: String? = null, val hasRemoteHardware: Boolean = false, val hasPKC: Boolean = false, val excludedModules: Int? = null, val hasXeddsa: Boolean = false)
Link copied to clipboard
@Serializable
data class DeviceMetricsExport(val batteryLevel: Int? = null, val voltage: Float? = null, val channelUtilization: Float? = null, val airUtilTx: Float? = null, val uptimeSeconds: Int? = null)
Link copied to clipboard
@Serializable
data class EnvironmentMetricsExport(val temperature: Float? = null, val relativeHumidity: Float? = null, val barometricPressure: Float? = null, val gasResistance: Float? = null, val voltage: Float? = null, val current: Float? = null, val iaq: Int? = null, val distance: Float? = null, val lux: Float? = null, val whiteLux: Float? = null, val irLux: Float? = null, val uvLux: Float? = null, val windDirection: Int? = null, val windSpeed: Float? = null, val weight: Float? = null, val windGust: Float? = null, val windLull: Float? = null, val radiation: Float? = null, val rainfall1h: Float? = null, val rainfall24h: Float? = null, val soilMoisture: Int? = null, val soilTemperature: Float? = null, val oneWireTemperature: List<Float>? = null, val oneWireTemperatureCh0: Float? = null, val oneWireTemperatureCh1: Float? = null, val oneWireTemperatureCh2: Float? = null, val oneWireTemperatureCh3: Float? = null, val oneWireTemperatureCh4: Float? = null, val oneWireTemperatureCh5: Float? = null, val oneWireTemperatureCh6: Float? = null, val oneWireTemperatureCh7: Float? = null, val adcVoltageCh0: Float? = null, val adcVoltageCh1: Float? = null, val adcVoltageCh2: Float? = null, val adcVoltageCh3: Float? = null, val adcVoltageCh4: Float? = null, val adcVoltageCh5: Float? = null, val adcVoltageCh6: Float? = null, val adcVoltageCh7: Float? = null)
Link copied to clipboard
open class ExportDataUseCase(nodeRepository: NodeRepository, meshLogRepository: MeshLogRepository)

Use case for exporting persisted packet data to a CSV format.

Link copied to clipboard

Exports the currently selected device's node database as a JSON NodeDatabaseExport document. Absent readings are omitted rather than written as 0/sentinel values, so 0 dB SNR or 0 °C stay distinguishable from "no reading".

Link copied to clipboard

Use case for exporting a device profile to an output stream.

Link copied to clipboard

Use case for importing a device profile from an input stream.

Link copied to clipboard

Use case for restoring security configuration (public/private keys) from a StoredSecurityKeys backup.

Link copied to clipboard
open class InstallProfileUseCase(radioController: RadioController, radioConfigRepository: RadioConfigRepository)

Use case for installing a device profile onto a radio.

Link copied to clipboard

Use case to determine if the currently connected device is capable of over-the-air (OTA) updates.

Link copied to clipboard
class IsOtaCapableUseCaseImpl(nodeRepository: NodeRepository, radioController: RadioController, radioPrefs: RadioPrefs, deviceHardwareRepository: DeviceHardwareRepository) : IsOtaCapableUseCase
Link copied to clipboard
@Serializable
data class NodeDatabaseExport(val schemaVersion: Int, val exportedAt: String, val myNodeNum: Long? = null, val nodes: List<NodeExport>)

Root document written by ExportNodeDatabaseUseCase. Absent fields are omitted from the JSON rather than emitted as null/0 sentinels, so consumers can distinguish "no reading" from a genuine zero.

Link copied to clipboard
@Serializable
data class NodeExport(val num: Long, val id: String? = null, val longName: String? = null, val shortName: String? = null, val hwModel: String? = null, val role: String? = null, val isLicensed: Boolean = false, val isUnmessagable: Boolean? = null, val publicKey: String? = null, val signsPackets: Boolean = false, val manuallyVerified: Boolean = false, val lastHeard: Long? = null, val snr: Float? = null, val rssi: Int? = null, val channel: Int = 0, val viaMqtt: Boolean = false, val hopsAway: Int? = null, val lastTransport: String? = null, val isFavorite: Boolean = false, val isIgnored: Boolean = false, val isMuted: Boolean = false, val nodeStatus: String? = null, val notes: String? = null, val position: PositionExport? = null, val deviceMetrics: DeviceMetricsExport? = null, val environmentMetrics: EnvironmentMetricsExport? = null, val powerMetrics: PowerMetricsExport? = null, val powerChannelLabels: List<String>? = null, val airQualityMetrics: AirQualityMetricsExport? = null, val paxcounter: PaxcountExport? = null, val metadata: DeviceMetadataExport? = null)
Link copied to clipboard
@Serializable
data class PaxcountExport(val wifi: Int = 0, val ble: Int = 0, val uptime: Int = 0)
Link copied to clipboard
@Serializable
data class PositionExport(val latitude: Double? = null, val longitude: Double? = null, val altitude: Int? = null, val time: Long? = null, val locationSource: String? = null, val groundSpeed: Int? = null, val groundTrack: Int? = null, val satsInView: Int? = null, val precisionBits: Int? = null)
Link copied to clipboard
@Serializable
data class PowerMetricsExport(val ch1Voltage: Float? = null, val ch1Current: Float? = null, val ch2Voltage: Float? = null, val ch2Current: Float? = null, val ch3Voltage: Float? = null, val ch3Current: Float? = null, val ch4Voltage: Float? = null, val ch4Current: Float? = null, val ch5Voltage: Float? = null, val ch5Current: Float? = null, val ch6Voltage: Float? = null, val ch6Current: Float? = null, val ch7Voltage: Float? = null, val ch7Current: Float? = null, val ch8Voltage: Float? = null, val ch8Current: Float? = null)
Link copied to clipboard

Use case for processing incoming MeshPackets that are responses to admin requests.

Link copied to clipboard
open class RadioConfigUseCase(radioController: RadioController)

Use case for interacting with radio configuration components.

Link copied to clipboard
sealed class RadioResponseResult

Sealed class representing the result of processing a radio response packet.

Link copied to clipboard
open class SetMeshLogSettingsUseCase(meshLogRepository: MeshLogRepository, meshLogPrefs: MeshLogPrefs)

Use case for managing mesh log settings.