Mesh log translation updates

This commit is contained in:
Garth Vander Houwen 2023-01-01 22:34:58 -08:00
parent 1f19d0c31f
commit de2e48704e
5 changed files with 112 additions and 71 deletions

View file

@ -340,8 +340,8 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
success = true
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.traceroute.sent %d",
comment: "Sent a Trace Route Request to node: %d"), destNum)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.traceroute.sent %@",
comment: "Sent a Trace Route Request to node: %@"), String(destNum))
MeshLogger.log("🪧 \(logString)")
}
return success
@ -495,16 +495,16 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
}
}
// Log any other unknownApp calls
if !nowKnown { MeshLogger.log("🌐 MESH PACKET received for Unknown App UNHANDLED \(try! decodedInfo.packet.jsonString())") }
if !nowKnown { MeshLogger.log("🕸️ MESH PACKET received for Unknown App UNHANDLED \(try! decodedInfo.packet.jsonString())") }
case .textMessageApp:
textMessageAppPacket(packet: decodedInfo.packet, connectedNode: (self.connectedPeripheral != nil ? connectedPeripheral.num : 0), context: context!)
case .remoteHardwareApp:
MeshLogger.log("🌐 MESH PACKET received for Remote Hardware App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Remote Hardware App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .positionApp:
positionPacket(packet: decodedInfo.packet, context: context!)
case .waypointApp:
MeshLogger.log("🌐 MESH PACKET received for Waypoint App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Waypoint App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .nodeinfoApp:
if !invalidVersion { nodeInfoAppPacket(packet: decodedInfo.packet, context: context!) }
case .routingApp:
@ -512,29 +512,29 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
case .adminApp:
adminAppPacket(packet: decodedInfo.packet, context: context!)
case .replyApp:
MeshLogger.log("🌐 MESH PACKET received for Reply App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Reply App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .ipTunnelApp:
MeshLogger.log("🌐 MESH PACKET received for IP Tunnel App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for IP Tunnel App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .serialApp:
MeshLogger.log("🌐 MESH PACKET received for Serial App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Serial App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .storeForwardApp:
MeshLogger.log("🌐 MESH PACKET received for Store Forward App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Store Forward App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .rangeTestApp:
MeshLogger.log("🌐 MESH PACKET received for Range Test App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Range Test App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .telemetryApp:
if !invalidVersion { telemetryPacket(packet: decodedInfo.packet, connectedNode: (self.connectedPeripheral != nil ? connectedPeripheral.num : 0), context: context!) }
case .textMessageCompressedApp:
MeshLogger.log("🌐 MESH PACKET received for Text Message Compressed App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Text Message Compressed App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .zpsApp:
MeshLogger.log("🌐 MESH PACKET received for ZPS App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for ZPS App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .privateApp:
MeshLogger.log("🌐 MESH PACKET received for Private App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Private App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .atakForwarder:
MeshLogger.log("🌐 MESH PACKET received for ATAK Forwarder App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for ATAK Forwarder App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .simulatorApp:
MeshLogger.log("🌐 MESH PACKET received for Simulator App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Simulator App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .audioApp:
MeshLogger.log("🌐 MESH PACKET received for Audio App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Audio App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .tracerouteApp:
if let routingMessage = try? RouteDiscovery(serializedData: decodedInfo.packet.decoded.payload) {
@ -551,7 +551,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
}
}
case .UNRECOGNIZED(_):
MeshLogger.log("🌐 MESH PACKET received for Other App UNHANDLED \(try! decodedInfo.packet.jsonString())")
MeshLogger.log("🕸️ MESH PACKET received for Other App UNHANDLED \(try! decodedInfo.packet.jsonString())")
case .max:
print("MAX PORT NUM OF 511")
}
@ -701,8 +701,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.textmessage.sent %d %d %d",
comment: "Sent message %d from %d to %d"), newMessage.messageId, fromUserNum, toUserNum)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.textmessage.sent %@ %@ %@", comment: "Sent message %@ from %@ to %@"), String(newMessage.messageId), String(fromUserNum), String(toUserNum))
MeshLogger.log("💬 \(logString)")
do {
try context!.save()
@ -749,8 +748,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
toRadio = ToRadio()
toRadio.packet = meshPacket
let binaryData: Data = try! toRadio.serializedData()
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.waypoint.sent %d",
comment: "Sent a Waypoint Packet from: %@d"), fromNodeNum)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.waypoint.sent %@", comment: "Sent a Waypoint Packet from: %@"), String(fromNodeNum))
MeshLogger.log("📍 \(logString)")
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
@ -800,8 +798,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
success = true
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.sharelocation %d",
comment: "Sent a Position Packet from the Apple device GPS to node: %@d"), fromNodeNum)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.sharelocation %@", comment: "Sent a Position Packet from the Apple device GPS to node: %@"), String(fromNodeNum))
MeshLogger.log("📍 \(logString)")
}
return success
@ -1052,7 +1049,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
let binaryData: Data = try! toRadio.serializedData()
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
self.connectedPeripheral.peripheral.writeValue(binaryData, for: self.TORADIO_characteristic, type: .withResponse)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.lora.config.sent %d", comment: "Sent a LoRaConfig for: %d"), connectedPeripheral.num)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.lora.config.sent %@", comment: "Sent a LoRaConfig for: %@"), connectedPeripheral.num)
MeshLogger.log("📻 \(logString)")
}
return true
@ -1358,7 +1355,7 @@ class BLEManager: NSObject, CBPeripheralDelegate, ObservableObject {
if connectedPeripheral!.peripheral.state == CBPeripheralState.connected {
connectedPeripheral.peripheral.writeValue(binaryData, for: TORADIO_characteristic, type: .withResponse)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.cannedmessages.messages.get %d", comment: "Requested Canned Messages Module Messages for node: %d"), connectedPeripheral.num)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.cannedmessages.messages.get %@", comment: "Requested Canned Messages Module Messages for node: %@"), String(connectedPeripheral.num))
MeshLogger.log("🥫 \(logString)")
return true
}

View file

@ -41,7 +41,8 @@ func localConfig (config: Config, context:NSManagedObjectContext, nodeNum: Int64
// We don't care about any of the Power settings, config is available for everyting else
if config.payloadVariant == Config.OneOf_PayloadVariant.bluetooth(config.bluetooth) {
MeshLogger.log("🖥️ Bluetooth config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.bluetooth.config %@", comment: "Bluetooth config received: %@"), String(nodeNum))
MeshLogger.log("📶 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -81,7 +82,8 @@ func localConfig (config: Config, context:NSManagedObjectContext, nodeNum: Int64
if config.payloadVariant == Config.OneOf_PayloadVariant.device(config.device) {
MeshLogger.log("📟 Device config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.device.config %@", comment: "Device config received: %@"), String(nodeNum))
MeshLogger.log("📟 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -122,7 +124,8 @@ func localConfig (config: Config, context:NSManagedObjectContext, nodeNum: Int64
if config.payloadVariant == Config.OneOf_PayloadVariant.display(config.display) {
MeshLogger.log("🖥️ Display config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.display.config %@", comment: "Display config received: %@"), String(nodeNum))
MeshLogger.log("🖥️ \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -181,7 +184,8 @@ func localConfig (config: Config, context:NSManagedObjectContext, nodeNum: Int64
if config.payloadVariant == Config.OneOf_PayloadVariant.lora(config.lora) {
MeshLogger.log("📻 LoRa config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.lora.config %@", comment: "LoRa config received: %@"), String(nodeNum))
MeshLogger.log("📻 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -237,7 +241,9 @@ func localConfig (config: Config, context:NSManagedObjectContext, nodeNum: Int64
if config.payloadVariant == Config.OneOf_PayloadVariant.network(config.network) {
MeshLogger.log("📶 Network config received \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.network.config %@", comment: "Network config received: %@"), String(nodeNum))
MeshLogger.log("🌐 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -270,13 +276,14 @@ func localConfig (config: Config, context:NSManagedObjectContext, nodeNum: Int64
}
} catch {
let nsError = error as NSError
print("💥 Fetching node for core data WiFiConfigEntity failed: \(nsError)")
print("💥 Fetching node for core data NetworkConfigEntity failed: \(nsError)")
}
}
if config.payloadVariant == Config.OneOf_PayloadVariant.position(config.position) {
MeshLogger.log("🗺️ Position config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.position.config %@", comment: "Positon config received: %@"), String(nodeNum))
MeshLogger.log("🗺️ \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -327,7 +334,8 @@ func moduleConfig (config: ModuleConfig, context:NSManagedObjectContext, nodeNum
if config.payloadVariant == ModuleConfig.OneOf_PayloadVariant.cannedMessage(config.cannedMessage) {
MeshLogger.log("🥫 Canned Message module config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.cannedmessage.config %@", comment: "Canned Message module config received: %@"), String(nodeNum))
MeshLogger.log("🥫 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -389,7 +397,9 @@ func moduleConfig (config: ModuleConfig, context:NSManagedObjectContext, nodeNum
if config.payloadVariant == ModuleConfig.OneOf_PayloadVariant.externalNotification(config.externalNotification) {
MeshLogger.log("🚨 External Notifiation module config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.externalnotification.config %@", comment: "External Notifiation module config received: %@"), String(nodeNum))
MeshLogger.log("📣 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -454,7 +464,8 @@ func moduleConfig (config: ModuleConfig, context:NSManagedObjectContext, nodeNum
if config.payloadVariant == ModuleConfig.OneOf_PayloadVariant.mqtt(config.mqtt) {
MeshLogger.log("🌐 MQTT module config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.mqtt.config %@", comment: "MQTT module config received: %@"), String(nodeNum))
MeshLogger.log("🌉 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -501,7 +512,8 @@ func moduleConfig (config: ModuleConfig, context:NSManagedObjectContext, nodeNum
if config.payloadVariant == ModuleConfig.OneOf_PayloadVariant.rangeTest(config.rangeTest) {
MeshLogger.log("⛰️ Range Test module config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.rangetest.config %@", comment: "Range Test module config received: %@"), String(nodeNum))
MeshLogger.log("⛰️ \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -541,7 +553,8 @@ func moduleConfig (config: ModuleConfig, context:NSManagedObjectContext, nodeNum
if config.payloadVariant == ModuleConfig.OneOf_PayloadVariant.serial(config.serial) {
MeshLogger.log("🤖 Serial module config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.serial.config %@", comment: "Serial module config received: %@"), String(nodeNum))
MeshLogger.log("🤖 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -601,7 +614,8 @@ func moduleConfig (config: ModuleConfig, context:NSManagedObjectContext, nodeNum
if config.payloadVariant == ModuleConfig.OneOf_PayloadVariant.telemetry(config.telemetry) {
MeshLogger.log("📈 Telemetry module config received: \(String(nodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.telemetry.config %@", comment: "Telemetry module config received: %@"), String(nodeNum))
MeshLogger.log("📈 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeNum))
@ -656,7 +670,9 @@ func moduleConfig (config: ModuleConfig, context:NSManagedObjectContext, nodeNum
func myInfoPacket (myInfo: MyNodeInfo, peripheralId: String, context: NSManagedObjectContext) -> MyInfoEntity? {
MeshLogger.log(" MyInfo received: \(String(myInfo.myNodeNum))")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.myinfo %@", comment: "MyInfo received: %@"), String(myInfo.myNodeNum))
MeshLogger.log(" \(logString)")
let fetchMyInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "MyInfoEntity")
fetchMyInfoRequest.predicate = NSPredicate(format: "myNodeNum == %lld", Int64(myInfo.myNodeNum))
@ -721,10 +737,12 @@ func myInfoPacket (myInfo: MyNodeInfo, peripheralId: String, context: NSManagedO
func channelPacket (channel: Channel, fromNum: Int64, context: NSManagedObjectContext) {
if channel.isInitialized && channel.hasSettings && channel.role != Channel.Role.disabled {
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.channel.received %d %@", comment: "Channel %d received from: %@"), channel.index, String(fromNum))
MeshLogger.log("🎛️ \(logString)")
MeshLogger.log("🎛️ Channel received: \(channel.settings.name)")
let fetchedMyInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "MyInfoEntity")
fetchedMyInfoRequest.predicate = NSPredicate(format: "myNodeNum == %lld", fromNum)
fetchedMyInfoRequest.predicate = NSPredicate(format: "myNodeNum == %lld", channel.index, String(fromNum))
do {
@ -764,7 +782,8 @@ func channelPacket (channel: Channel, fromNum: Int64, context: NSManagedObjectCo
func nodeInfoPacket (nodeInfo: NodeInfo, channel: UInt32, context: NSManagedObjectContext) -> NodeInfoEntity? {
MeshLogger.log("📟 Node info received for: \(nodeInfo.num)")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.nodeinfo.received %@", comment: "Node info received for: %@"), String(nodeInfo.num))
MeshLogger.log("📟 \(logString)")
let fetchNodeInfoRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoRequest.predicate = NSPredicate(format: "num == %lld", Int64(nodeInfo.num))
@ -913,7 +932,8 @@ func nodeInfoPacket (nodeInfo: NodeInfo, channel: UInt32, context: NSManagedObje
func nodeInfoAppPacket (packet: MeshPacket, context: NSManagedObjectContext) {
MeshLogger.log("📟 Node info received for: \(packet.from)")
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.nodeinfo.received %@", comment: "Node info received for: %@"), packet.from)
MeshLogger.log("📟 \(logString)")
let fetchNodeInfoAppRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeInfoAppRequest.predicate = NSPredicate(format: "num == %lld", Int64(packet.from))
@ -967,9 +987,11 @@ func nodeInfoAppPacket (packet: MeshPacket, context: NSManagedObjectContext) {
func adminAppPacket (packet: MeshPacket, context: NSManagedObjectContext) {
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.cannedmessages.messages.received %@", comment: "Canned Messages Messages Received For: %@"), String(packet.from))
MeshLogger.log("🥫 \(logString)")
if let cmmc = try? CannedMessageModuleConfig(serializedData: packet.decoded.payload) {
MeshLogger.log("🥫 Canned Messages Messages Received For: \(packet.from)")
let fetchNodeRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest.init(entityName: "NodeInfoEntity")
fetchNodeRequest.predicate = NSPredicate(format: "num == %lld", Int64(packet.from))
@ -1012,7 +1034,6 @@ func positionPacket (packet: MeshPacket, context: NSManagedObjectContext) {
if fetchedNode.count == 1 {
let position = PositionEntity(context: context)
position.snr = packet.rxSnr
position.seqNo = Int32(positionMessage.seqNumber)
position.latitudeI = positionMessage.latitudeI
@ -1026,23 +1047,18 @@ func positionPacket (packet: MeshPacket, context: NSManagedObjectContext) {
} else {
position.time = Date(timeIntervalSince1970: TimeInterval(Int64(positionMessage.time)))
}
let mutablePositions = fetchedNode[0].positions!.mutableCopy() as! NSMutableOrderedSet
mutablePositions.add(position)
fetchedNode[0].id = Int64(packet.from)
fetchedNode[0].num = Int64(packet.from)
fetchedNode[0].lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(positionMessage.time)))
fetchedNode[0].snr = packet.rxSnr
fetchedNode[0].positions = mutablePositions.copy() as? NSOrderedSet
do {
try context.save()
print("💾 Updated Node Position Coordinates, SNR and Time from Position App Packet For: \(fetchedNode[0].num)")
} catch {
context.rollback()
let nsError = error as NSError
print("💥 Error Saving NodeInfoEntity from POSITION_APP \(nsError)")
}
@ -1126,9 +1142,7 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage
// Only log telemetry from the mesh not the connected device
if connectedNode != Int64(packet.from) {
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.telemetry.received %d",
comment: "Telemetry received for: %d"), packet.from)
let logString = String.localizedStringWithFormat(NSLocalizedString("mesh.log.telemetry.received %@", comment: "Telemetry received for: %@"), String(packet.from))
MeshLogger.log("📈 \(logString)")
}

View file

@ -44,7 +44,6 @@ struct Settings: View {
Image(systemName: "person.crop.rectangle.fill")
.symbolRenderingMode(.hierarchical)
Text("user")
}
@ -55,7 +54,6 @@ struct Settings: View {
Image(systemName: "dot.radiowaves.left.and.right")
.symbolRenderingMode(.hierarchical)
Text("lora")
}

View file

@ -132,18 +132,34 @@
"map"="Mesh Karte";
"map.type"="kartentyp";
"mesh.log"="Mesh Log";
"mesh.log.cannedmessages.messages.get %d"="Requested Canned Messages Module Messages for node: %d";
"mesh.log.channel.sent %d"="Sent a Channel for: %d Channel Index %d";
"mesh.log.bluetooth.config %@"="Bluetooth config received: %@";
"mesh.log.cannedmessage.config %@"="Canned Message module config received: %@";
"mesh.log.cannedmessages.messages.get %@"="Requested Canned Messages Module Messages for node: %@";
"mesh.log.cannedmessages.messages.received %@"="Canned Messages Messages Received For: %@";
"mesh.log.channel.sent %@ %d"="Sent a Channel for: %@ Channel Index %d";
"mesh.log.channel.received %d %@"="Channel %d received from: %@";
"mesh.log.device.config %@"="Device config received: %@";
"mesh.log.display.config %@"="Display config received: %@";
"mesh.log.devicemetadata %@"="Requesting Device Metadata for %@";
"mesh.log.lora.config.sent %d"="Sent a LoRa.Config for: %d";
"mesh.log.sharelocation %d"="Sent a Position Packet from the Apple device GPS to node: %@d";
"mesh.log.telemetry.received %d"="Telemetry received for: %d";
"mesh.log.externalnotification.config %@"="External Notifiation module config received: %@";
"mesh.log.lora.config %@"="LoRa config received: %@";
"mesh.log.lora.config.sent %@"="Sent a LoRa.Config for: %@";
"mesh.log.mqtt.config %@"="MQTT module config received: %@";
"mesh.log.myinfo %@"="MyInfo received: %@";
"mesh.log.network.config %@"="Network config received: %@";
"mesh.log.nodeinfo.received %@"="Node info received for: %@";
"mesh.log.position.config %@"="Positon config received: %@";
"mesh.log.rangetest.config %@"="Range Test module config received: %@";
"mesh.log.serial.config %@"="Serial module config received: %@";
"mesh.log.sharelocation %@"="Sent a Position Packet from the Apple device GPS to node: %@";
"mesh.log.telemetry.config %@"="Telemetry module config received: %@";
"mesh.log.telemetry.received %@"="Telemetry received for: %@";
"mesh.log.textmessage.received"="Message received from the text message app.";
"mesh.log.textmessage.send.failed %@"="Message Send Failed, not properly connected to %@";
"mesh.log.textmessage.sent %d %d %d"="Sent message %d from %d to %d";
"mesh.log.traceroute.sent %d"="Sent a Trace Route Request to node: %d";
"mesh.log.textmessage.sent %@ %@ %@"="Sent message %@ from %@ to %@";
"mesh.log.traceroute.sent %@"="Sent a Trace Route Request to node: %@";
"mesh.log.wantconfig %@"="Issuing Want Config to %@";
"mesh.log.waypoint.sent %d"="Sent a Waypoint Packet from: %@d";
"mesh.log.waypoint.sent %@"="Sent a Waypoint Packet from: %@";
"message"="Nachricht";
"message.details"="Nachrichtendetails";
"messages"="Nachrichten";

View file

@ -132,18 +132,34 @@
"map"="Mesh Map";
"map.type"="Map Type";
"mesh.log"="Mesh Log";
"mesh.log.cannedmessages.messages.get %d"="Requested Canned Messages Module Messages for node: %d";
"mesh.log.channel.sent %d"="Sent a Channel for: %d Channel Index %d";
"mesh.log.bluetooth.config %@"="Bluetooth config received: %@";
"mesh.log.cannedmessage.config %@"="Canned Message module config received: %@";
"mesh.log.cannedmessages.messages.get %@"="Requested Canned Messages Module Messages for node: %@";
"mesh.log.cannedmessages.messages.received %@"="Canned Messages Messages Received For: %@";
"mesh.log.channel.sent %@ %d"="Sent a Channel for: %@ Channel Index %d";
"mesh.log.channel.received %d %@"="Channel %d received from: %@";
"mesh.log.device.config %@"="Device config received: %@";
"mesh.log.display.config %@"="Display config received: %@";
"mesh.log.devicemetadata %@"="Requesting Device Metadata for %@";
"mesh.log.lora.config.sent %d"="Sent a LoRa.Config for: %d";
"mesh.log.sharelocation %d"="Sent a Position Packet from the Apple device GPS to node: %@d";
"mesh.log.telemetry.received %d"="Telemetry received for: %d";
"mesh.log.externalnotification.config %@"="External Notifiation module config received: %@";
"mesh.log.lora.config %@"="LoRa config received: %@";
"mesh.log.lora.config.sent %@"="Sent a LoRa.Config for: %@";
"mesh.log.mqtt.config %@"="MQTT module config received: %@";
"mesh.log.myinfo %@"="MyInfo received: %@";
"mesh.log.network.config %@"="Network config received: %@";
"mesh.log.nodeinfo.received %@"="Node info received for: %@";
"mesh.log.position.config %@"="Positon config received: %@";
"mesh.log.rangetest.config %@"="Range Test module config received: %@";
"mesh.log.serial.config %@"="Serial module config received: %@";
"mesh.log.sharelocation %@"="Sent a Position Packet from the Apple device GPS to node: %@";
"mesh.log.telemetry.config %@"="Telemetry module config received: %@";
"mesh.log.telemetry.received %@"="Telemetry received for: %@";
"mesh.log.textmessage.received"="Message received from the text message app.";
"mesh.log.textmessage.send.failed %@"="Message Send Failed, not properly connected to %@";
"mesh.log.textmessage.sent %d %d %d"="Sent message %d from %d to %d";
"mesh.log.traceroute.sent %d"="Sent a Trace Route Request to node: %d";
"mesh.log.textmessage.sent %@ %@ %@"="Sent message %@ from %@ to %@";
"mesh.log.traceroute.sent %@"="Sent a Trace Route Request to node: %@";
"mesh.log.wantconfig %@"="Issuing Want Config to %@";
"mesh.log.waypoint.sent %d"="Sent a Waypoint Packet from: %@d";
"mesh.log.waypoint.sent %@"="Sent a Waypoint Packet from: %@";
"message"="Message";
"message.details"="Message Details";
"messages"="Messages";