Bluetooth BLE澄清读取和指示操作

Bluetooth BLE澄清读取和指示操作,bluetooth,bluetooth-lowenergy,micropython,bluetooth-gatt,Bluetooth,Bluetooth Lowenergy,Micropython,Bluetooth Gatt,我正在为Pycom的Lopy4板编写代码,并为环境感应创建了一个BLE服务,该服务目前有一个特征,即温度。我将温度作为一个浮点数,并尝试每两秒钟更新一次特征值 当我使用BLE扫描仪应用程序时,每当我尝试读取时,我都会读取“temperature10862”的值,这是特征的名称和uuid。然而,当我按下指示按钮时,该值显示正确的温度字符串,每两秒钟自动更新一次 总的来说我有点困惑。这是我在Pycom设备上的代码的问题还是我只是误解了BLE读取应该是什么?由于设备上的温度值显然正在更新,但为什么客户

我正在为Pycom的Lopy4板编写代码,并为环境感应创建了一个BLE服务,该服务目前有一个特征,即温度。我将温度作为一个浮点数,并尝试每两秒钟更新一次特征值

当我使用BLE扫描仪应用程序时,每当我尝试读取时,我都会读取“temperature10862”的值,这是特征的名称和uuid。然而,当我按下指示按钮时,该值显示正确的温度字符串,每两秒钟自动更新一次

总的来说我有点困惑。这是我在Pycom设备上的代码的问题还是我只是误解了BLE读取应该是什么?由于设备上的温度值显然正在更新,但为什么客户端(应用程序)只显示带有指示的值,而不显示读数

我很抱歉这个问题含糊不清,但任何帮助或指导都将不胜感激

返回“temperature10862”作为读取响应显然是不正确的。在这种情况下,以字符串形式发送温度也是不正确的,因为您使用蓝牙SIG定义的特性。根据该规则,该值应包含一个以0.01摄氏度为单位的有符号16位整数

如果您查看,您将看到支持读取是必需的,支持通知是可选的。但是,不允许显示。因此,您应该将indicate属性改为notify

发送的值应相同,无论该值是作为通知还是读取响应发送的

请务必阅读环境感应规范,并遵循GATT服务结构的其他部分