Merge pull request #304 from meshtastic/working_changes_2.0.12

Handle a few crashes
This commit is contained in:
Garth Vander Houwen 2023-02-03 14:22:37 -08:00 committed by GitHub
commit d58674d7f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 14 deletions

View file

@ -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)..<UInt32.max)
meshPacket.priority = MeshPacket.Priority.reliable
meshPacket.wantAck = true
if adminIndex > 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

View file

@ -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.")

View file

@ -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 {

View file

@ -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 }
}
}