mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
75 lines
1.7 KiB
Swift
75 lines
1.7 KiB
Swift
|
|
//
|
||
|
|
// TelemetryEntity.swift
|
||
|
|
// Meshtastic
|
||
|
|
//
|
||
|
|
// SwiftData model for telemetry data.
|
||
|
|
// Replaces the manual Core Data TelemetryEntity+CoreDataClass/Properties files.
|
||
|
|
//
|
||
|
|
|
||
|
|
import Foundation
|
||
|
|
import SwiftData
|
||
|
|
|
||
|
|
@Model
|
||
|
|
final class TelemetryEntity {
|
||
|
|
// Non-optional scalars
|
||
|
|
var metricsType: Int32 = 0
|
||
|
|
var numOnlineNodes: Int32 = 0
|
||
|
|
var numPacketsRx: Int32 = 0
|
||
|
|
var numPacketsRxBad: Int32 = 0
|
||
|
|
var numPacketsTx: Int32 = 0
|
||
|
|
var numRxDupe: Int32 = 0
|
||
|
|
var numTotalNodes: Int32 = 0
|
||
|
|
var numTxRelay: Int32 = 0
|
||
|
|
var numTxRelayCanceled: Int32 = 0
|
||
|
|
var time: Date?
|
||
|
|
|
||
|
|
// Optional scalars (previously used @ManagedAttribute wrapper)
|
||
|
|
var airUtilTx: Float?
|
||
|
|
var barometricPressure: Float?
|
||
|
|
var batteryLevel: Int32?
|
||
|
|
var channelUtilization: Float?
|
||
|
|
var current: Float?
|
||
|
|
var distance: Float?
|
||
|
|
var gasResistance: Float?
|
||
|
|
var iaq: Int32?
|
||
|
|
var irLux: Float?
|
||
|
|
var lux: Float?
|
||
|
|
var powerCh1Current: Float?
|
||
|
|
var powerCh1Voltage: Float?
|
||
|
|
var powerCh2Current: Float?
|
||
|
|
var powerCh2Voltage: Float?
|
||
|
|
var powerCh3Current: Float?
|
||
|
|
var powerCh3Voltage: Float?
|
||
|
|
var radiation: Float?
|
||
|
|
var rainfall1H: Float?
|
||
|
|
var rainfall24H: Float?
|
||
|
|
var relativeHumidity: Float?
|
||
|
|
var rssi: Int32?
|
||
|
|
var snr: Float?
|
||
|
|
var soilMoisture: UInt32?
|
||
|
|
var soilTemperature: Float?
|
||
|
|
var temperature: Float?
|
||
|
|
var uptimeSeconds: Int32?
|
||
|
|
var uvLux: Float?
|
||
|
|
var voltage: Float?
|
||
|
|
var weight: Float?
|
||
|
|
var whiteLux: Float?
|
||
|
|
var windDirection: Int32?
|
||
|
|
var windGust: Float?
|
||
|
|
var windLull: Float?
|
||
|
|
var windSpeed: Float?
|
||
|
|
|
||
|
|
// Relationship
|
||
|
|
var nodeTelemetry: NodeInfoEntity?
|
||
|
|
|
||
|
|
// Computed property
|
||
|
|
var dewPoint: Float? {
|
||
|
|
guard let temp = self.temperature, let rh = self.relativeHumidity else {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
return Float(calculateDewPoint(temp: temp, relativeHumidity: rh, convertToLocale: false))
|
||
|
|
}
|
||
|
|
|
||
|
|
init() {}
|
||
|
|
}
|