From f6c1ca33fd19799aeb12777587196f3e1f4548ec Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Sat, 6 Jul 2024 09:02:44 -0700 Subject: [PATCH] truncate some ints that are crashing --- Meshtastic/Helpers/MeshPackets.swift | 4 ++-- Meshtastic/Persistence/UpdateCoreData.swift | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index 2043b968..d81d9fe9 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -680,13 +680,13 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage } telemetry.snr = packet.rxSnr telemetry.rssi = packet.rxRssi - telemetry.time = Date(timeIntervalSince1970: TimeInterval(Int64(telemetryMessage.time))) + telemetry.time = Date(timeIntervalSince1970: TimeInterval(Int64(truncatingIfNeeded: telemetryMessage.time))) guard let mutableTelemetries = fetchedNode[0].telemetries!.mutableCopy() as? NSMutableOrderedSet else { return } mutableTelemetries.add(telemetry) - fetchedNode[0].lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(packet.rxTime))) + fetchedNode[0].lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(truncatingIfNeeded: packet.rxTime))) fetchedNode[0].telemetries = mutableTelemetries.copy() as? NSOrderedSet } try context.save() diff --git a/Meshtastic/Persistence/UpdateCoreData.swift b/Meshtastic/Persistence/UpdateCoreData.swift index 4073eb90..1f990f19 100644 --- a/Meshtastic/Persistence/UpdateCoreData.swift +++ b/Meshtastic/Persistence/UpdateCoreData.swift @@ -127,6 +127,7 @@ public func clearCoreDataDatabase(context: NSManagedObjectContext, includeRoutes } } +@MainActor func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext) { let logString = String.localizedStringWithFormat("mesh.log.nodeinfo.received %@".localized, packet.from.toHex()) @@ -260,8 +261,9 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext) fetchedNode[0].hopsAway = Int32(packet.hopStart - packet.hopLimit) } if fetchedNode[0].user == nil { - let newUser = createUser(num: Int64(packet.from), context: context) + let newUser = createUser(num: Int64(truncatingIfNeeded: packet.from), context: context) fetchedNode[0].user! = newUser + } do { try context.save() @@ -277,6 +279,7 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext) } } +@MainActor func upsertPositionPacket (packet: MeshPacket, context: NSManagedObjectContext) { let logString = String.localizedStringWithFormat("mesh.log.position.received %@".localized, String(packet.from))