From f992d6e47abafc9b3b35ddbcc50d09173dbab525 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Sun, 2 Apr 2023 15:00:15 -0700 Subject: [PATCH] Hook up node info channel --- Meshtastic/Helpers/MeshPackets.swift | 4 ++-- Meshtastic/Persistence/UpdateCoreData.swift | 10 ++++++++-- Meshtastic/Views/Nodes/NodeList.swift | 9 +++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index 4579033e..da1b2edd 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -251,7 +251,7 @@ func nodeInfoPacket (nodeInfo: NodeInfo, channel: UInt32, context: NSManagedObje let newNode = NodeInfoEntity(context: context) newNode.id = Int64(nodeInfo.num) newNode.num = Int64(nodeInfo.num) - newNode.channel = Int32(channel) + newNode.channel = Int32(nodeInfo.channel) if nodeInfo.hasDeviceMetrics { let telemetry = TelemetryEntity(context: context) @@ -321,7 +321,7 @@ func nodeInfoPacket (nodeInfo: NodeInfo, channel: UInt32, context: NSManagedObje fetchedNode[0].num = Int64(nodeInfo.num) fetchedNode[0].lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(nodeInfo.lastHeard))) fetchedNode[0].snr = nodeInfo.snr - fetchedNode[0].channel = Int32(channel) + fetchedNode[0].channel = Int32(nodeInfo.channel) if nodeInfo.hasUser { diff --git a/Meshtastic/Persistence/UpdateCoreData.swift b/Meshtastic/Persistence/UpdateCoreData.swift index d881e082..ed976443 100644 --- a/Meshtastic/Persistence/UpdateCoreData.swift +++ b/Meshtastic/Persistence/UpdateCoreData.swift @@ -117,7 +117,11 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext) newNode.num = Int64(packet.from) newNode.lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(packet.rxTime))) newNode.snr = packet.rxSnr - newNode.channel = Int32(packet.channel) + + if let nodeInfoMessage = try? NodeInfo(serializedData: packet.decoded.payload) { + newNode.channel = Int32(nodeInfoMessage.channel) + } + if let newUserMessage = try? User(serializedData: packet.decoded.payload) { let newUser = UserEntity(context: context) newUser.userId = newUserMessage.id @@ -134,9 +138,11 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext) fetchedNode[0].num = Int64(packet.from) fetchedNode[0].lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(packet.rxTime))) fetchedNode[0].snr = packet.rxSnr - fetchedNode[0].channel = Int32(packet.channel) + //fetchedNode[0].channel = Int32(packet.channel) if let nodeInfoMessage = try? NodeInfo(serializedData: packet.decoded.payload) { + + fetchedNode[0].channel = Int32(nodeInfoMessage.channel) if nodeInfoMessage.hasDeviceMetrics { let telemetry = TelemetryEntity(context: context) telemetry.batteryLevel = Int32(nodeInfoMessage.deviceMetrics.batteryLevel) diff --git a/Meshtastic/Views/Nodes/NodeList.swift b/Meshtastic/Views/Nodes/NodeList.swift index 33e29fcd..c3d854ad 100644 --- a/Meshtastic/Views/Nodes/NodeList.swift +++ b/Meshtastic/Views/Nodes/NodeList.swift @@ -71,6 +71,15 @@ struct NodeList: View { LastHeardText(lastHeard: node.lastHeard) .font(.subheadline) } + if node.channel > 0 { + HStack(alignment: .bottom) { + Image(systemName: "fibrechannel") + .font(.title3) + .symbolRenderingMode(.hierarchical) + Text("Channel: \(node.channel)") + .font(.subheadline) + } + } } .frame(maxWidth: .infinity, alignment: .leading) }