Add export function
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user