From 0a386c531e71087be2624e379da5d9be2b73d45b Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Tue, 26 Jul 2022 07:35:16 -0700 Subject: [PATCH] Clean up phone telemetry --- Meshtastic/Helpers/BLEManager.swift | 49 ++++++ Meshtastic/Helpers/MeshPackets.swift | 16 +- Meshtastic/Views/Nodes/TelemetryLog.swift | 148 +++++++++++------- .../Config/Module/CannedMessagesConfig.swift | 3 + 4 files changed, 150 insertions(+), 66 deletions(-) diff --git a/Meshtastic/Helpers/BLEManager.swift b/Meshtastic/Helpers/BLEManager.swift index 13fe4124..8bc54686 100644 --- a/Meshtastic/Helpers/BLEManager.swift +++ b/Meshtastic/Helpers/BLEManager.swift @@ -1169,6 +1169,55 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph return 0 } + public func getCannedMessageModuleMessages(destNum: Int64, wantResponse: Bool) -> Bool { + + var adminPacket = AdminMessage() + adminPacket.getCannedMessageModulePart1Request = true + + //adminPacket.getOwnerRequest = true + + var meshPacket: MeshPacket = MeshPacket() + meshPacket.to = UInt32(connectedPeripheral.num) + meshPacket.from = 0 //UInt32(connectedPeripheral.num) + meshPacket.id = UInt32.random(in: UInt32(UInt8.max).. Int64 { var adminPacket = AdminMessage() diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index 17c1028b..90724201 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -190,14 +190,16 @@ func localConfig (config: Config, meshlogging: Bool, context:NSManagedObjectCont newLoRaConfig.modemPreset = 0 // 3 Hops default protobuf value of 0 newLoRaConfig.hopLimit = 0 + // Default value of 0 is 22dbm + newLoRaConfig.txPower = 0 + } else { - // UNSET default protobuf value of 0 newLoRaConfig.regionCode = Int32(config.lora.region.rawValue) - // LongFast default protobuf value of 0 newLoRaConfig.modemPreset = Int32(config.lora.modemPreset.rawValue) - // 3 Hops default protobuf value of 0 newLoRaConfig.hopLimit = Int32(config.lora.hopLimit) + newLoRaConfig.txPower = Int32(config.lora.txPower) + } fetchedNode[0].loRaConfig = newLoRaConfig @@ -212,14 +214,15 @@ func localConfig (config: Config, meshlogging: Bool, context:NSManagedObjectCont fetchedNode[0].loRaConfig?.modemPreset = 0 // 3 Hops default protobuf value of 0 fetchedNode[0].loRaConfig?.hopLimit = 0 + // Default value of 0 is 22dbm + fetchedNode[0].loRaConfig?.txPower = 0 } else { - // UNSET default protobuf value of 0 + fetchedNode[0].loRaConfig?.regionCode = Int32(config.lora.region.rawValue) - // LongFast default protobuf value of 0 fetchedNode[0].loRaConfig?.modemPreset = Int32(config.lora.modemPreset.rawValue) - // 3 Hops default protobuf value of 0 fetchedNode[0].loRaConfig?.hopLimit = Int32(config.lora.hopLimit) + fetchedNode[0].loRaConfig?.txPower = Int32(config.lora.txPower) } } @@ -417,6 +420,7 @@ func moduleConfig (config: ModuleConfig, meshlogging: Bool, context:NSManagedObj try context.save() if meshlogging { MeshLogger.log("💾 Updated Canned Message Module Config for node number: \(String(nodeNum))") } + print(try config.cannedMessage.jsonString()) } catch { diff --git a/Meshtastic/Views/Nodes/TelemetryLog.swift b/Meshtastic/Views/Nodes/TelemetryLog.swift index 270f76f3..0c7cfdf1 100644 --- a/Meshtastic/Views/Nodes/TelemetryLog.swift +++ b/Meshtastic/Views/Nodes/TelemetryLog.swift @@ -88,7 +88,7 @@ struct TelemetryLog: View { let sensor = SensorTypes(rawValue: Int(node.telemetryConfig?.environmentSensorType ?? 0)) - let tempReadingType = (!(node.telemetryConfig?.environmentDisplayFahrenheit ?? true)) ? "°F" : "°C" + let tempReadingType = (!(node.telemetryConfig?.environmentDisplayFahrenheit ?? true)) ? "°C" : "°F" if sensor == SensorTypes.bme280 || sensor == SensorTypes.bme680 || @@ -178,8 +178,9 @@ struct TelemetryLog: View { if tel.metricsType == 0 { - // Device Metrics + // Device Metrics iPhone Template VStack { + HStack { Spacer() @@ -243,94 +244,121 @@ struct TelemetryLog: View { // Environment Metrics let sensor = SensorTypes(rawValue: Int(node.telemetryConfig?.environmentSensorType ?? 0)) - let tempReadingType = (!(node.telemetryConfig?.environmentDisplayFahrenheit ?? true)) ? "°F" : "°C" + let tempReadingType = (!(node.telemetryConfig?.environmentDisplayFahrenheit ?? true)) ? "°C" : "°F" + + // Environment Metrics iPhone Template VStack { - Text("Environment Metrics") - .font(.title3) - - if sensor == SensorTypes.bme280 || - sensor == SensorTypes.bme680 || - sensor == SensorTypes.shtc3 || - sensor == SensorTypes.mcp9808 { + HStack { - Image(systemName: "thermometer") - .font(.callout) - .foregroundColor(.accentColor) - .symbolRenderingMode(.hierarchical) - Text("Temperature: \(String(format: "%.2f", tel.temperature))\(tempReadingType)") - .foregroundColor(.gray) - .font(.callout) + Spacer() + Text("Environment Metrics") + .font(.title3) + Spacer() } - - if sensor == SensorTypes.bme280 || - sensor == SensorTypes.bme680 || - sensor == SensorTypes.shtc3 { - - Image(systemName: "humidity") + + HStack { + + if sensor == SensorTypes.bme280 || + sensor == SensorTypes.bme680 || + sensor == SensorTypes.shtc3 || + sensor == SensorTypes.mcp9808 { + + Image(systemName: "thermometer") + .font(.callout) + .foregroundColor(.accentColor) + .symbolRenderingMode(.hierarchical) + Text("Temperature: \(String(format: "%.2f", tel.temperature))\(tempReadingType)") + .foregroundColor(.gray) .font(.callout) - .foregroundColor(.accentColor) - .symbolRenderingMode(.hierarchical) - Text("Relative Humidity: \(String(format: "%.2f", tel.relativeHumidity))") - .foregroundColor(.gray) - .font(.callout) + } + } + + HStack { + + if sensor == SensorTypes.bme280 || + sensor == SensorTypes.bme680 || + sensor == SensorTypes.shtc3 { + + Image(systemName: "humidity") + .font(.callout) + .foregroundColor(.accentColor) + .symbolRenderingMode(.hierarchical) + Text("Relative Humidity: \(String(format: "%.2f", tel.relativeHumidity))") + .foregroundColor(.gray) + .font(.callout) + } } if sensor == SensorTypes.ina219 || sensor == SensorTypes.ina260 { - Image(systemName: "directcurrent") + HStack { + + Image(systemName: "directcurrent") + .font(.callout) + .foregroundColor(.accentColor) + .symbolRenderingMode(.hierarchical) + Text("Current: \(String(format: "%.2f", tel.current))") + .foregroundColor(.gray) .font(.callout) - .foregroundColor(.accentColor) - .symbolRenderingMode(.hierarchical) - Text("Current: \(String(format: "%.2f", tel.current))") - .foregroundColor(.gray) - .font(.callout) + } - Image(systemName: "bolt") + HStack { + + Image(systemName: "bolt") + .font(.callout) + .foregroundColor(.accentColor) + .symbolRenderingMode(.hierarchical) + Text("Voltage: \(String(format: "%.2f", tel.voltage))") + .foregroundColor(.gray) .font(.callout) - .foregroundColor(.accentColor) - .symbolRenderingMode(.hierarchical) - Text("Voltage: \(String(format: "%.2f", tel.voltage))") - .foregroundColor(.gray) - .font(.callout) + } } if sensor == SensorTypes.bme280 || sensor == SensorTypes.bme680 { - Image(systemName: "barometer") + HStack { + + Image(systemName: "barometer") + .font(.callout) + .foregroundColor(.accentColor) + .symbolRenderingMode(.hierarchical) + Text("Barometric Pressure: \(String(format: "%.2f", tel.barometricPressure))") + .foregroundColor(.gray) .font(.callout) - .foregroundColor(.accentColor) - .symbolRenderingMode(.hierarchical) - Text("Barometric Pressure: \(String(format: "%.2f", tel.barometricPressure))") - .foregroundColor(.gray) - .font(.callout) + } } if sensor == SensorTypes.bme680 { - Image(systemName: "aqi.medium") + HStack { + + Image(systemName: "aqi.medium") + .font(.callout) + .foregroundColor(.accentColor) + .symbolRenderingMode(.hierarchical) + Text("Gas Resistance: \(String(format: "%.2f", tel.gasResistance))") + .foregroundColor(.gray) + .font(.callout) + } + } + + HStack { + + Image(systemName: "clock.badge.checkmark.fill") .font(.callout) .foregroundColor(.accentColor) .symbolRenderingMode(.hierarchical) - Text("Gas Resistance: \(String(format: "%.2f", tel.gasResistance))") + Text("Time:") + .foregroundColor(.gray) + .font(.callout) + DateTimeText(dateTime: tel.time) .foregroundColor(.gray) .font(.callout) } - - Image(systemName: "clock.badge.checkmark.fill") - .font(.callout) - .foregroundColor(.accentColor) - .symbolRenderingMode(.hierarchical) - Text("Time:") - .foregroundColor(.gray) - .font(.callout) - DateTimeText(dateTime: tel.time) - .foregroundColor(.gray) - .font(.callout) - } } } diff --git a/Meshtastic/Views/Settings/Config/Module/CannedMessagesConfig.swift b/Meshtastic/Views/Settings/Config/Module/CannedMessagesConfig.swift index 47b3eea2..fe3ec406 100644 --- a/Meshtastic/Views/Settings/Config/Module/CannedMessagesConfig.swift +++ b/Meshtastic/Views/Settings/Config/Module/CannedMessagesConfig.swift @@ -362,6 +362,9 @@ struct CannedMessagesConfig: View { self.inputbrokerPinA = Int(node!.cannedMessageConfig?.inputbrokerPinA ?? 0) self.inputbrokerPinB = Int(node!.cannedMessageConfig?.inputbrokerPinB ?? 0) self.inputbrokerPinPress = Int(node!.cannedMessageConfig?.inputbrokerPinPress ?? 0) + self.inputbrokerEventCw = Int(node!.cannedMessageConfig?.inputbrokerEventCw ?? 0) + self.inputbrokerEventCcw = Int(node!.cannedMessageConfig?.inputbrokerEventCcw ?? 0) + self.inputbrokerEventPress = Int(node!.cannedMessageConfig?.inputbrokerEventPress ?? 0) self.hasChanges = false self.initialLoad = false }