IOS Bluejay Framework, listen 方法不会继续监听,开始监听后退出

IOS Bluejay Framework, the listen methods will not keep listening, quits after starting to listen

我正在使用 Bluejay 框架编写一个将连接到我的 BLE 设备的应用程序。 我有一项服务可以在固件完成启动时传输数据。

我正在调用这个方法:

func listenLiveSignals()
    {
        let requestedChar = CharacteristicIdentifier(uuid: NotioModel.signalLiveData, service: ServiceIdentifier(uuid: NotioModel.SignalsService))
        
        bluejay.listen(to: requestedChar, multipleListenOption: .replaceable) {[weak self] (result: ReadResult<NotioSignals>) in
            print("Signals update")
            switch result {
            case .success(let signals):
                self?.liveSignals = signals
            case .failure(let err):
                print("Error: \(err)")
            }
        }
    }

在日志中我得到了这个

Queue will start Bluejay.ListenCharacteristic...
Will start listening to Characteristic: 9AFABEDB-50F5-4766-8EE1-709073D6EB08, Service: 9AFAABCD-50F5-4766-8EE1-709073D6EB08 on NOTIOFE46EEBB.
Listening to Characteristic: 9AFABEDB-50F5-4766-8EE1-709073D6EB08, Service: 9AFAABCD-50F5-4766-8EE1-709073D6EB08 on NOTIOFE46EEBB.
Queue has removed Bluejay.ListenCharacteristic because it has finished.
Queue is empty, nothing to update.

这是我用来连接外设的代码。

func connect(_ peripheral: PeripheralIdentifier) {
        self.bluejay.connect(peripheral, timeout: .seconds(15)) { connectionResult in
            switch connectionResult {
            case .success:
                print("Connection attempt to: \(peripheral.description) is successful")
            case .failure(let error):
                print("Error: \(error)")
            }
        }
    }

我的项目也连接到加载了 BlinkyLed 服务的 Nordic 开发板,并且使用相同的代码连接到上面的按钮服务,效果很好,这让我有点莫名其妙。

如果有人知道为什么 Bluejay 这样做让我知道,或者如果您需要更多核心也请告诉我。

问题出在固件方面,BLE 设备需要我告诉它激活数据流。 XD 记录 API 非常重要,即使它是固件。