feat: Merge SaltyTag BLE — GPS/IMU streaming to UWB tag, anchor display, UWB position authority #5

Open
sl-ios wants to merge 19 commits from sl-ios/saltytag-merge into main
Showing only changes of commit 615dc405d0 - Show all commits

View File

@ -42,6 +42,10 @@ final class BLEManager: NSObject, ObservableObject {
override init() {
super.init()
// autoReconnect=true before creating the central so that
// centralManagerDidUpdateState(.poweredOn) immediately starts scanning
// without any user action. The user can still tap Disconnect to stop.
autoReconnect = true
central = CBCentralManager(delegate: self,
queue: DispatchQueue(label: "ble.queue", qos: .utility))
}
@ -95,12 +99,13 @@ final class BLEManager: NSObject, ObservableObject {
// We filter by device name prefix in didDiscover instead.
central.scanForPeripherals(withServices: nil,
options: [CBCentralManagerScanOptionAllowDuplicatesKey: false])
// Auto-stop after 15 s if nothing found
// Stop after 15 s if nothing found, then retry after 5 s (TAG may be booting)
scanTimer?.invalidate()
scanTimer = Timer.scheduledTimer(withTimeInterval: 15, repeats: false) { [weak self] _ in
guard let self else { return }
self.stopScan()
DispatchQueue.main.async { self.connectionState = .idle }
self.reconnectAfterDelay()
}
}