From bbb0434a3ebc8b5f1df2e6e98da2fc213cf96988 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Sun, 2 Oct 2022 10:36:14 -0700 Subject: [PATCH] Make sure position flags are saving properly to the core data database --- Meshtastic/Export/WriteCsvFile.swift | 6 +++--- Meshtastic/Helpers/MeshPackets.swift | 14 +++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Meshtastic/Export/WriteCsvFile.swift b/Meshtastic/Export/WriteCsvFile.swift index d6b2a5cf..e6a8fa66 100644 --- a/Meshtastic/Export/WriteCsvFile.swift +++ b/Meshtastic/Export/WriteCsvFile.swift @@ -69,11 +69,13 @@ func PositionToCsvFile(positions: [PositionEntity]) -> String { var csvString: String = "" // Create Position Header - csvString = "Latitude, Longitude, Alt, Sats, Speed, Heading, SeqNo, Timestamp" + csvString = "SeqNo, Latitude, Longitude, Alt, Sats, Speed, Heading, Timestamp" for pos in positions { csvString += "\n" + csvString += String(pos.seqNo) + csvString += ", " csvString += String(pos.latitude ?? 0) csvString += ", " csvString += String(pos.longitude ?? 0) @@ -86,8 +88,6 @@ func PositionToCsvFile(positions: [PositionEntity]) -> String { csvString += ", " csvString += String(pos.heading) csvString += ", " - csvString += String(pos.seqNo) - csvString += ", " csvString += pos.time?.formattedDate(format: "yyyy-MM-dd HH:mm:ss") ?? "Unknown Age" } diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index e5b40a46..cf6f6a14 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -867,10 +867,13 @@ func nodeInfoPacket (nodeInfo: NodeInfo, meshLogging: Bool, context: NSManagedOb if nodeInfo.position.latitudeI > 0 || nodeInfo.position.longitudeI > 0 { let position = PositionEntity(context: context) + position.seqNo = Int32(nodeInfo.position.seqNumber) position.latitudeI = nodeInfo.position.latitudeI position.longitudeI = nodeInfo.position.longitudeI position.altitude = nodeInfo.position.altitude position.satsInView = Int32(nodeInfo.position.satsInView) + position.speed = Int32(nodeInfo.position.groundSpeed) + position.heading = Int32(nodeInfo.position.groundTrack) position.time = Date(timeIntervalSince1970: TimeInterval(Int64(nodeInfo.position.time))) var newPostions = [PositionEntity]() @@ -1152,11 +1155,20 @@ func positionPacket (packet: MeshPacket, meshLogging: Bool, context: NSManagedOb if fetchedNode.count == 1 { let position = PositionEntity(context: context) + + position.seqNo = Int32(positionMessage.seqNumber) position.latitudeI = positionMessage.latitudeI position.longitudeI = positionMessage.longitudeI position.altitude = positionMessage.altitude position.satsInView = Int32(positionMessage.satsInView) - position.time = Date(timeIntervalSince1970: TimeInterval(Int64(positionMessage.time))) + position.speed = Int32(positionMessage.groundSpeed) + position.heading = Int32(positionMessage.groundTrack) + + if positionMessage.timestamp != 0 { + position.time = Date(timeIntervalSince1970: TimeInterval(Int64(positionMessage.timestamp))) + } else { + position.time = Date(timeIntervalSince1970: TimeInterval(Int64(positionMessage.time))) + } let mutablePositions = fetchedNode[0].positions!.mutableCopy() as! NSMutableOrderedSet mutablePositions.add(position)