From 62d28b7a1d8a5b7db8e789320a65e676333df28a Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Sun, 19 Dec 2021 17:57:04 -0800 Subject: [PATCH] Small changes to BLE Manager --- .../xcdebugger/Breakpoints_v2.xcbkptlist | 16 ++++++++++++++++ MeshtasticClient/Helpers/BLEManager.swift | 12 ++++++------ MeshtasticClient/Views/Messages/Messages.swift | 4 ++-- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Meshtastic Client.xcodeproj/xcuserdata/garthvanderhouwen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Meshtastic Client.xcodeproj/xcuserdata/garthvanderhouwen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 8801dbca..197b17df 100644 --- a/Meshtastic Client.xcodeproj/xcuserdata/garthvanderhouwen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Meshtastic Client.xcodeproj/xcuserdata/garthvanderhouwen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -80,5 +80,21 @@ landmarkType = "24"> + + + + diff --git a/MeshtasticClient/Helpers/BLEManager.swift b/MeshtasticClient/Helpers/BLEManager.swift index 79043425..9c14249d 100644 --- a/MeshtasticClient/Helpers/BLEManager.swift +++ b/MeshtasticClient/Helpers/BLEManager.swift @@ -36,7 +36,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph var timeoutTimer: Timer? var timeoutTimerCount = 0 - private var broadcastNodeId: UInt32 = 4294967295 + var broadcastNodeNum: UInt32 = 4294967295 var nextSentMessageId: Int64 = 1 /* Meshtastic Service Details */ @@ -610,7 +610,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph newMessage.direction = "IN" newMessage.toUser = Int64(decodedInfo.packet.to) - if decodedInfo.packet.to == broadcastNodeId && fetchedUsers.count == 1 { + if decodedInfo.packet.to == broadcastNodeNum && fetchedUsers.count == 1 { //let bcu: UserEntity = UserEntity(context: context!) //bcu.shortName = "BC" @@ -713,7 +713,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph if fetchedNode.count == 1 { fetchedNode[0].id = Int64(decodedInfo.packet.from) fetchedNode[0].num = Int64(decodedInfo.packet.from) - fetchedNode[0].lastHeard = Date()// Date(timeIntervalSince1970: TimeInterval(Int64(decodedInfo.packet.rxTime))) + fetchedNode[0].lastHeard = Date(timeIntervalSince1970: TimeInterval(Int64(decodedInfo.packet.rxTime))) fetchedNode[0].snr = decodedInfo.packet.rxSnr } else { @@ -778,7 +778,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph } // Send Broadcast Message - public func sendMessage(message: String) -> Bool { + public func sendMessage(message: String, toUserNum: Int64) -> Bool { var success = false // Return false if we are not properly connected to a device, handle retry logic in the view for now @@ -825,7 +825,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph newMessage.messageTimestamp = Int32(Date().timeIntervalSince1970) newMessage.receivedACK = false newMessage.direction = "IN" - newMessage.toUser = Int64(broadcastNodeId) + newMessage.toUser = Int64(broadcastNodeNum) newMessage.fromUser = fetchedUser[0] newMessage.messagePayload = message @@ -838,7 +838,7 @@ class BLEManager: NSObject, ObservableObject, CBCentralManagerDelegate, CBPeriph dataMessage.portnum = dataType var meshPacket = MeshPacket() - meshPacket.to = broadcastNodeId + meshPacket.to = broadcastNodeNum meshPacket.decoded = dataMessage meshPacket.wantAck = true diff --git a/MeshtasticClient/Views/Messages/Messages.swift b/MeshtasticClient/Views/Messages/Messages.swift index 4256aea0..92a1d1a6 100644 --- a/MeshtasticClient/Views/Messages/Messages.swift +++ b/MeshtasticClient/Views/Messages/Messages.swift @@ -181,14 +181,14 @@ struct Messages: View { .padding(.bottom, 15) Button(action: { - if bleManager.sendMessage(message: typingMessage) { + if bleManager.sendMessage(message: typingMessage, toUserNum: Int64(self.bleManager.broadcastNodeNum)) { typingMessage = "" focusedField = nil } else { _ = Timer.scheduledTimer(withTimeInterval: 3.0, repeats: false) { (_) in - if bleManager.sendMessage(message: typingMessage) { + if bleManager.sendMessage(message: typingMessage, toUserNum: Int64(self.bleManager.broadcastNodeNum)) { typingMessage = "" } }