Как изменить тариф рекламы PeripheralManager - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь изменить уровень рекламы в объекте класса 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)])
            }
   }

}

Есть ли способ изменить его динамически? (в период, когда служба активно рекламирует)

...