小程序蓝牙写入操作问题
发布于 6 年前 作者 changlei 15996 次浏览 来自 问答
  • 当前 Bug 的表现

    对蓝牙设备进行扫描连接和写操作,使用wx.writeBLECharacteristicValue(buffer) 写入的指令不超过20字节时,写入返回ok,能正常接收notify设备返回的值;

但是当写入的指令超过20字节时,写入指令能成功返回ok,但是不能接收设备返回的值,估计是设备没有接收完整的指令,把指令当做错误的指令了;

    经查看小程序官方api文档,发现小程序不支持MTU,唯有自己做分包发送,由于本人对蓝牙也是半知半解,所以还要请教各位关于分包发送的步骤,还有就是是不是需要硬件开发那边配合,谢谢各位大神哈

4 回复

小程序的不知道。

1、android/ios 是判断写入的字节长度,≤20个字节,直接写入。

2、大于20个字节的,先写入前20个字节,再对剩下的进行长度判断,≤20个字节,直接写入,

大于20个字节,重复1、2两步。

你能分享一下你的源码demo吗?

这方面也不算太了解,但是20字节是标准包,我们这边用的处理方案是发送的指令首尾字符是标志位,当收到的指令标志位不符合时,放入队列中,等待下一个指令到达后,拼接后做统一的标志位识别处理。肯定收发要约定好规则

BLE的 单帧 标准就是20字节, 如果超过 需要自己分包。

否则发送要不会截断, 要不就会报错。。

急呀,跪求分包发送教程

回到顶部