From a2c73418fc3845e3a935cb3974f730efa5df024f Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Mon, 4 Apr 2022 22:49:26 -0700 Subject: [PATCH] Add charts for telemetry, update core data with telemetryentity --- Meshtastic Client.xcodeproj/project.pbxproj | 19 +++++++++++++++++++ .../xcshareddata/swiftpm/Package.resolved | 9 +++++++++ MeshtasticClient/Helpers/BLEManager.swift | 11 +++++++++++ .../contents | 10 ++++++---- 4 files changed, 45 insertions(+), 4 deletions(-) diff --git a/Meshtastic Client.xcodeproj/project.pbxproj b/Meshtastic Client.xcodeproj/project.pbxproj index bd764e32..c4bc655a 100644 --- a/Meshtastic Client.xcodeproj/project.pbxproj +++ b/Meshtastic Client.xcodeproj/project.pbxproj @@ -34,6 +34,7 @@ DD90860E26F69BAE00DC5189 /* NodeMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD90860D26F69BAE00DC5189 /* NodeMap.swift */; }; DD913639270DFF4C00D7ACF3 /* LocalNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD913638270DFF4C00D7ACF3 /* LocalNotificationManager.swift */; }; DD9D8F2F2764403B00080993 /* Meshtastic.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = DD9D8F2D2764403B00080993 /* Meshtastic.xcdatamodeld */; }; + DD9E682F27FACD1F00EE0214 /* SwiftUICharts in Frameworks */ = {isa = PBXBuildFile; productRef = DD9E682E27FACD1F00EE0214 /* SwiftUICharts */; }; DDAF8C5326EB1DF10058C060 /* BLEManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDAF8C5226EB1DF10058C060 /* BLEManager.swift */; }; DDAF8C5826ED07FD0058C060 /* mesh.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDAF8C5726ED07FD0058C060 /* mesh.pb.swift */; }; DDAF8C5D26ED09490058C060 /* portnums.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDAF8C5C26ED09490058C060 /* portnums.pb.swift */; }; @@ -135,6 +136,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + DD9E682F27FACD1F00EE0214 /* SwiftUICharts in Frameworks */, C9697FA527933B8C00250207 /* SQLite in Frameworks */, DD5394FC276993AD00AD86B1 /* SwiftProtobuf in Frameworks */, ); @@ -388,6 +390,7 @@ packageProductDependencies = ( DD5394FB276993AD00AD86B1 /* SwiftProtobuf */, C9697FA427933B8C00250207 /* SQLite */, + DD9E682E27FACD1F00EE0214 /* SwiftUICharts */, ); productName = MeshtasticClient; productReference = DDC2E15426CE248E0042C5E4 /* MeshtasticClient.app */; @@ -464,6 +467,7 @@ packageReferences = ( DD5394FA276993AD00AD86B1 /* XCRemoteSwiftPackageReference "swift-protobuf" */, C9697FA327933B8C00250207 /* XCRemoteSwiftPackageReference "SQLite.swift" */, + DD9E682D27FACD1F00EE0214 /* XCRemoteSwiftPackageReference "SwiftUICharts" */, ); productRefGroup = DDC2E15526CE248E0042C5E4 /* Products */; projectDirPath = ""; @@ -787,6 +791,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = GCH7VS5Y9R; INFOPLIST_FILE = MeshtasticClientTests/Info.plist; @@ -809,6 +814,7 @@ buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = GCH7VS5Y9R; INFOPLIST_FILE = MeshtasticClientTests/Info.plist; @@ -924,6 +930,14 @@ minimumVersion = 1.0.0; }; }; + DD9E682D27FACD1F00EE0214 /* XCRemoteSwiftPackageReference "SwiftUICharts" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/mecid/SwiftUICharts.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 0.6.8; + }; + }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ @@ -937,6 +951,11 @@ package = DD5394FA276993AD00AD86B1 /* XCRemoteSwiftPackageReference "swift-protobuf" */; productName = SwiftProtobuf; }; + DD9E682E27FACD1F00EE0214 /* SwiftUICharts */ = { + isa = XCSwiftPackageProductDependency; + package = DD9E682D27FACD1F00EE0214 /* XCRemoteSwiftPackageReference "SwiftUICharts" */; + productName = SwiftUICharts; + }; /* End XCSwiftPackageProductDependency section */ /* Begin XCVersionGroup section */ diff --git a/Meshtastic Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Meshtastic Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index c0572681..23f76265 100644 --- a/Meshtastic Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Meshtastic Client.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -18,6 +18,15 @@ "revision": "7e2c5f3cbbeea68e004915e3a8961e20bd11d824", "version": "1.18.0" } + }, + { + "package": "SwiftUICharts", + "repositoryURL": "https://github.com/mecid/SwiftUICharts.git", + "state": { + "branch": null, + "revision": "15ec6551761e6a444e9439073e1f557c1c9700c6", + "version": "0.6.8" + } } ] }, diff --git a/MeshtasticClient/Helpers/BLEManager.swift b/MeshtasticClient/Helpers/BLEManager.swift index 2d04564a..41540a7d 100644 --- a/MeshtasticClient/Helpers/BLEManager.swift +++ b/MeshtasticClient/Helpers/BLEManager.swift @@ -967,8 +967,19 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph } } + // MARK: Incoming TELEMETRY_APP Packet } else if decodedInfo.packet.decoded.portnum == PortNum.telemetryApp { + + if let telemetryMessage = try? Telemetry(serializedData: decodedInfo.packet.decoded.payload) { + + let telemetry = TelemetryEntity(context: context!) + telemetry.num = Int64(decodedInfo.packet.from) + print(decodedInfo.packet.decoded.requestID) + print(telemetryMessage) + } + + if meshLoggingEnabled { MeshLogger.log("ℹ️ MESH PACKET received for Telemetry App UNHANDLED \(try decodedInfo.packet.jsonString())") } print("ℹ️ MESH PACKET received for Telemetry App UNHANDLED \(try decodedInfo.packet.jsonString())") diff --git a/MeshtasticClient/Meshtastic.xcdatamodeld/MeshtasticDataModel v 3.xcdatamodel/contents b/MeshtasticClient/Meshtastic.xcdatamodeld/MeshtasticDataModel v 3.xcdatamodel/contents index 651578f4..55b039d0 100644 --- a/MeshtasticClient/Meshtastic.xcdatamodeld/MeshtasticDataModel v 3.xcdatamodel/contents +++ b/MeshtasticClient/Meshtastic.xcdatamodeld/MeshtasticDataModel v 3.xcdatamodel/contents @@ -50,7 +50,7 @@ - + @@ -66,15 +66,16 @@ - + + - + @@ -96,6 +97,7 @@ + - + \ No newline at end of file