为了与设备通信,我现在使用peripheral.discoverServices
和peripheral.discoverCharacteristics
来发现所有可用的特征,然后将它们与已知特征UUID列表匹配(按照{{3} }。
这意味着我连接到我的设备,发现并匹配了特征,从需要的特征中写入和读取(包括订阅需要一些时间才能返回响应的特征,从而避免了轮询)。
这一切都按预期工作。但是,由于我需要定期轮询30多种不同的设备,因此每次必须针对每个设备都要经过发现部分,这有点奇怪。
在尝试跳过发现并加快过程的过程中,我尝试使用特征的句柄(所有设备均相同)。
它们使我可以在使用peripheral.readHandle(...)
和peripheral.writeHandle(...)
连接到设备后直接进行通信。无需先进行发现。但是看来这种方式只允许读写,而不是订阅,我真的更喜欢轮询。
问题是;有没有办法通过其句柄订阅特征,或者直接获取句柄的特征以便我可以订阅它,而不必每次都进行查找?