假设我有一个BLE设备,它既是服务器(有信息)又是外围设备(需要访问外部信息),一旦接收或生成它自己的数据,就必须与其附近的其他服务器/外围设备共享。
我只是尝试通过BLE连接到设备,当它们是要传输的数据时,“即使它会定期连接到每个服务器以查看它是否可以”,或者同时保持连接更好使用回调来确定何时连接并在需要时简单地传输数据(通过我所理解的,我使用的设备一次只能处理gatt操作,这意味着有4个连接来快速传输数据是无关紧要的)。
换句话说持续重新连接和断开外围设备和服务器或者只是连接到我需要的服务器是有益的(尽管显然我只能在一个gatt操作时间即1特征读/怀)。
平衡的要求。答案 0 :(得分:1)
如果可能的话,我会与设备保持联系,让他们使用蓝牙通知在数据可用时进行通信,而不是阅读以查看是否有可用的数据。
或者,您可以考虑让外围设备仅在有数据邀请中央模式设备进行连接时进行通告。然而,它需要定期扫描才能检测到这一点。
优点/缺点取决于您的优先级和两种类型设备的性质。
仅供参考,你的术语有点混乱。在发现设备时,您有一个广告的GAP外围设备和一个扫描的GAP Central。中央连接到外围设备连接后,您将拥有GATT客户端和GATT服务器。通常GAP外围设备成为GATT服务器,但它不需要这样。 GAP外围设备可以很容易地成为GATT客户端。它是GATT服务器,它以服务,特征和描述符的形式在属性表中包含状态数据。