diff --git a/Meshtastic/Helpers/BLEManager.swift b/Meshtastic/Helpers/BLEManager.swift index f2dc5667..31df4c92 100644 --- a/Meshtastic/Helpers/BLEManager.swift +++ b/Meshtastic/Helpers/BLEManager.swift @@ -1134,6 +1134,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "🛟 Saved Bluetooth Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { + upsertBluetoothConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1160,7 +1161,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "🛟 Saved Device Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { - + upsertDeviceConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1188,6 +1189,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "🛟 Saved Display Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { + upsertDisplayConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1204,9 +1206,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { meshPacket.id = UInt32.random(in: UInt32(UInt8.max).. 0 { - meshPacket.channel = UInt32(adminIndex) - } + meshPacket.channel = UInt32(adminIndex) var dataMessage = DataMessage() dataMessage.payload = try! adminPacket.serializedData() dataMessage.portnum = PortNum.adminApp @@ -1214,6 +1214,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "🛟 Saved LoRa Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { + upsertLoRaConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1243,7 +1244,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "🛟 Saved Position Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { - + upsertPositionConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1273,7 +1274,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "🛟 Saved Network Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { - + upsertNetworkConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1302,7 +1303,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "🛟 Saved Canned Message Module Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { - + upsertCannedMessagesModuleConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1359,6 +1360,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "Saved External Notification Module Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { + upsertExternalNotificationModuleConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } return 0 @@ -1386,6 +1388,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "Saved WiFi Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { + upsertMqttModuleConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } return 0 @@ -1413,7 +1416,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "Saved Range Test Module Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { - + upsertRangeTestModuleConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } @@ -1441,6 +1444,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "Saved Serial Module Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { + upsertSerialModuleConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } return 0 @@ -1466,6 +1470,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject { let messageDescription = "Saved Telemetry Module Config for \(toUser.longName ?? NSLocalizedString("unknown", comment: "Unknown"))" if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription, fromUser: fromUser, toUser: toUser) { + upsertTelemetryModuleConfigPacket(config: config, nodeNum: fromUser.num, context: context!) return Int64(meshPacket.id) } return 0 diff --git a/Meshtastic/Views/Nodes/DeviceMetricsLog.swift b/Meshtastic/Views/Nodes/DeviceMetricsLog.swift index c3ba0a1c..b5ca5b32 100644 --- a/Meshtastic/Views/Nodes/DeviceMetricsLog.swift +++ b/Meshtastic/Views/Nodes/DeviceMetricsLog.swift @@ -177,7 +177,7 @@ struct DeviceMetricsLog: View { isPresented: $isExporting, document: CsvDocument(emptyCsv: exportString), contentType: .commaSeparatedText, - defaultFilename: String("\(node.user!.longName ?? "Node") \(NSLocalizedString("device.metrics.log", comment: "Device Metrics Log"))"), + defaultFilename: String("\(node.user?.longName ?? "Node") \(NSLocalizedString("device.metrics.log", comment: "Device Metrics Log"))"), onCompletion: { result in if case .success = result { print("Device metrics log download succeeded.") diff --git a/Meshtastic/Views/Settings/Config/BluetoothConfig.swift b/Meshtastic/Views/Settings/Config/BluetoothConfig.swift index b11e4614..33d01896 100644 --- a/Meshtastic/Views/Settings/Config/BluetoothConfig.swift +++ b/Meshtastic/Views/Settings/Config/BluetoothConfig.swift @@ -128,7 +128,7 @@ struct BluetoothConfig: View { self.hasChanges = false // Need to request a BluetoothConfig from the remote node before allowing changes - if bleManager.connectedPeripheral != nil && node?.loRaConfig == nil { + if bleManager.connectedPeripheral != nil && node?.bluetoothConfig == nil { print("empty bluetooth config") let connectedNode = getNodeInfo(id: bleManager.connectedPeripheral.num, context: context) if connectedNode.id > 0 { diff --git a/Meshtastic/Views/Settings/Config/Module/TelemetryConfig.swift b/Meshtastic/Views/Settings/Config/Module/TelemetryConfig.swift index 88bc907d..acd96ad0 100644 --- a/Meshtastic/Views/Settings/Config/Module/TelemetryConfig.swift +++ b/Meshtastic/Views/Settings/Config/Module/TelemetryConfig.swift @@ -123,17 +123,17 @@ struct TelemetryConfig: View { } } .onChange(of: deviceUpdateInterval) { newDeviceInterval in - if node != nil && node!.telemetryConfig != nil { + if node != nil && node?.telemetryConfig != nil { if newDeviceInterval != node!.telemetryConfig!.deviceUpdateInterval { hasChanges = true } } } .onChange(of: environmentUpdateInterval) { newEnvInterval in - if node != nil && node!.telemetryConfig != nil { + if node != nil && node?.telemetryConfig != nil { if newEnvInterval != node!.telemetryConfig!.environmentUpdateInterval { hasChanges = true } } } .onChange(of: environmentMeasurementEnabled) { newEnvEnabled in - if node != nil && node!.telemetryConfig != nil { + if node != nil && node?.telemetryConfig != nil { if newEnvEnabled != node!.telemetryConfig!.environmentMeasurementEnabled { hasChanges = true } } } @@ -143,7 +143,7 @@ struct TelemetryConfig: View { } } .onChange(of: environmentDisplayFahrenheit) { newEnvDisplayF in - if node != nil && node!.telemetryConfig != nil { + if node != nil && node?.telemetryConfig != nil { if newEnvDisplayF != node!.telemetryConfig!.environmentDisplayFahrenheit { hasChanges = true } } }