Add export function

This commit is contained in:
Christoph Hagen
2025-01-31 13:06:11 +01:00
parent 740f776af6
commit 00e4da3f21
10 changed files with 189 additions and 13 deletions

View File

@@ -8,6 +8,8 @@ protocol BluetoothDeviceDelegate: AnyObject {
actor BluetoothDevice: NSObject, ObservableObject {
private let storage: PersistentStorage!
let peripheral: CBPeripheral!
private let characteristic: CBCharacteristic!
@@ -24,9 +26,10 @@ actor BluetoothDevice: NSObject, ObservableObject {
self.delegate = delegate
}
init(peripheral: CBPeripheral, characteristic: CBCharacteristic) {
init(storage: PersistentStorage, peripheral: CBPeripheral, characteristic: CBCharacteristic) {
self.peripheral = peripheral
self.characteristic = characteristic
self.storage = storage
super.init()
peripheral.delegate = self
@@ -35,6 +38,7 @@ actor BluetoothDevice: NSObject, ObservableObject {
override init() {
self.peripheral = nil
self.characteristic = nil
self.storage = nil
super.init()
}
@@ -46,7 +50,6 @@ actor BluetoothDevice: NSObject, ObservableObject {
}
lastDeviceInfo = info
delegate?.bluetoothDevice(didUpdate: info)
#warning("Don't use global variable")
storage.save(deviceInfo: info)
}

View File

@@ -15,6 +15,8 @@ final class BluetoothScanner: NSObject, CBCentralManagerDelegate, ObservableObje
private let characteristicUUID = CBUUID(string: "22071991-cccc-cccc-cccc-000000000002")
let storage: PersistentStorage!
private var manager: CBCentralManager! = nil
@Published
@@ -71,7 +73,8 @@ final class BluetoothScanner: NSObject, CBCentralManagerDelegate, ObservableObje
}
}
override init() {
init(storage: PersistentStorage) {
self.storage = storage
connectionState = .noDeviceFound
super.init()
self.manager = CBCentralManager(delegate: self, queue: nil)
@@ -200,7 +203,7 @@ extension BluetoothScanner: CBPeripheralDelegate {
return
}
configuredDevice = .init(peripheral: peripheral, characteristic: desiredCharacteristic)
configuredDevice = .init(storage: storage, peripheral: peripheral, characteristic: desiredCharacteristic)
Task {
await configuredDevice?.set(delegate: self)
}