Movesense Gatt_SensorData_App报507错误及传感器参考ID咨询
Movesense GATT通信问题解答
一、HTTP_CODE_INSUFFICIENT_STORAGE(0xFB/507)错误的成因与解决方法
- 成因:Movesense设备的订阅资源(GATT通知引用槽、内部缓存)被耗尽。每次订阅会占用一个唯一参考ID,若重复订阅同一资源却未释放旧引用,或同时订阅的资源数量超出设备上限,就会触发该错误。你遇到的“订阅成功一次后失效、后续请求失败”,核心原因就是旧订阅引用未被清理,导致存储资源被占满。
- 解决方法:
- 主动释放闲置订阅:在发送新订阅请求前,用指令
[2, <参考ID>]取消旧订阅。比如之前用ID99订阅了加速度,先发送[2,99]再重新发起订阅。 - 控制订阅数量:Movesense的GATT订阅槽数量有限(通常仅几个),避免同时订阅过多传感器资源。
- 临时重启设备:重启会清空所有未释放的订阅引用,快速恢复初始状态,但后续要规范订阅/取消流程。
- 主动释放闲置订阅:在发送新订阅请求前,用指令
二、传感器参考编号的设置及常用传感器信息
- 参考编号规则:参考编号是客户端自定义的唯一标识,并非设备端固定值。你代码里的
ACCDATA_REFERENCE = 99是开发人员自行定义的,陀螺仪、磁力计等传感器的参考ID可以自己指定(比如100、101这类未被使用的数字),只要保证每个订阅请求的ID不重复即可。 - 常用传感器订阅路径及示例参考ID:
- 加速度:路径
/Meas/Acc/13,参考ID可设为99 - 陀螺仪:路径
/Meas/Gyro/13,参考ID可设为100 - 磁力计:路径
/Meas/Magn/13,参考ID可设为101 - 温度:路径
/Meas/Temp,参考ID可设为102 - 心率:路径
/Meas/HR,参考ID可设为103
- 加速度:路径
三、多次订阅失效是否会导致持续507错误
是的。每次订阅如果未主动取消,设备会一直保留该订阅的引用资源。即便后续用同一个参考ID重新订阅,设备不会自动覆盖旧订阅(反而判定为重复占用资源),导致可用的订阅槽被耗尽,进而持续返回507错误。必须在重新订阅前发送取消指令释放旧引用,或在订阅失败时清理无效的订阅记录。
内容的提问来源于stack exchange,提问作者dnats
相关产品推荐
相关产品推荐

