ble监听设备发来数据的同时向设备write写入数据会失败!!!!
问题出现场景:
1、app先使用uni.onBLECharacteristicValueChange监听蓝牙特征值变化,然后调用uni.notifyBLECharacteristicValueChange开启特征值监听
uni.notifyBLECharacteristicValueChange({
deviceId: deviceId, // 设备id
serviceId: serviceId, // 监听指定的服务
characteristicId: characteristicId, // 监听对应的特征值
state: true,
success(res) {
resolve(res)
},
fail(err) {
reject(err)
}
})
2、蓝牙设备会以5s每条发送notify数据
3、app可以成功监听到特征值变化
4、app使用uni.writeBLECharacteristicValue(这里已经延时1s)发送消息,蓝牙设备出现偶尔可以成功收到数据,大概率数据丢失
uni.writeBLECharacteristicValue({
deviceId,
serviceId,
characteristicId,
value: buffer,
writeType: 'write',
success(res) {
resolve(res)
console.log(res)
},
fail(err) {
console.log(err)
reject(err)
}
})
5、app即使发送了消息,蓝牙设备没有收到,uni.writeBLECharacteristicValue也是走了succes回调
注:蓝牙设备已经主动修改mtu为最大值,且能成功接收到完整数据包
ddpapa (作者)
硬件佬的问题,不晓得调了什么东西,可以100%收到了
2023-08-28 17:09