Я пытаюсь изменить уровень рекламы в объекте класса BlueCapKit PeripheralManager, и я не знаю, как его изменить.
Я успешно установил связь с периферийным устройством, но иногда устройство отправляет несколькопакеты, и было бы гораздо лучше получить их за доли секунды, чем ждать несколько секунд, чтобы получить все пакеты.
Я создал класс менеджера для поддержки всей связи в рамках одного объекта-одиночки. (это только его фрагмент)
import BlueCapKit
import CoreBluetooth
class BluetoothConnectionManager {
// Object constructor
private init() {
manager = PeripheralManager(options: [CBPeripheralManagerOptionShowPowerAlertKey: true])
service = MutableService(uuid: serviceUUID)
characteristic = MutableCharacteristic(UUID: characteristicUUID, properties: [.read, .notify, .writeWithoutResponse, .write, .indicate, .authenticatedSignedWrites], permissions: [.readable, .writeable], value: nil)
service.characteristics = [characteristic]
}
// Function that starts advertising
func initService() {
let startAdvertiseFuture = manager.whenStateChanges().flatMap { state -> Future<Void> in
switch state {
case .poweredOn:
self.manager.removeAllServices()
self.manager.add(self.service)
self.didRequestStatusSentToDevice = false
return self.manager.stopAdvertising().flatMap { _ in
return self.manager.startAdvertising("test", uuids: [CBUUID(string: self.serviceUUID)])
}
}
}
Есть ли способ изменить его динамически? (в период, когда служба активно рекламирует)