BLE:难道要读取一个Value我们需要先发送Write Request吗?

BLE: Can it be that to read a Value we need to send Write Request first?

我有一个 BLE 手表并通过 Wireshark 查找连接日志。 负责接收我感兴趣的数据的特性显然是 Write only。 Wireshark 日志显示这些特征在收到我的 phone 的写入请求和写入命令后发送数据。然后手表才将数据发送到我的 phone。 这可能吗?没有手表文档我怎么弄明白?

写入请求不能在其相应的写入响应中嵌入任何数据,而无响应写入则根本没有任何响应。另一方面,读取请求不能在请求中包含任何嵌入数据,但相应的读取响应包含数据。

由于人们通常希望设计具有请求-响应结构的协议,因此 GATT 并未针对此用例设计,这有点尴尬。

因此,简单的解决方案通常是将写入请求与通知结合起来(如您在日志中看到的那样处理值通知)。通知是从 GATT 服务器到 GATT 客户端的一种方式消息。与读取请求 - 读取响应相比,通知的好处是它们可以随时发送。