帖子
帖子
用户
博客
课程
显示全部楼层
51
帖子
0
勋章
1095
Y币

[插件开发] ble蓝牙 模块建议

[复制链接]
发表于 2018-4-18 09:21:28
第一点:
ble.connect({    peripheralUUID: ''}, function(ret, err) {    if (ret.status) {        alert("连接成功!");    } else {        alert(err.code);    }});
咱们官方现在的做法是,必须得先搜索设备才能连接。
个人建议可以改成,在已知peripheralUUID的前提下 可以直接连接,而不需要去做冗余的操作搜索,给用户体验不好.
建议直接在方法中增加 字段来标识。如果带有指定字段就是 直连  否则就是搜索在连接


第二点:
ble.setNotify({    peripheralUUID: '',    serviceUUID: '',    characteristicUUID: ''}, function(ret) {    if (ret) {        api.alert({ msg: JSON.stringify(ret) });    }});
这个方法  经过测试在页面中只能调用一次   比如我有A1,A2,A3....设备for循环调用这个方法,数据返回的永远是最后调用的
这个方法设备的数据, 建议改成 可以多次调用。谁调用 返回谁的数据 就类似于 N次 ajax似的 每次的调用 返回数据都在自己的回调里面


2
帖子
0
勋章
518
Y币
好的我们会反馈给相关技术人员
1,不支持。因为首先得扫描到设备,然后在手机系统内存中创建一个实例对象,然后根据这个实例对象去去连接。这是ios系统也是蓝牙4.0协议的设计规范。

2,不支持这样设计代码逻辑。解决方案:一,打开四多个frame每个frame创建一个ble模块对象,各自setNotify各自的蓝牙设备;二,用setSimpleNotify接口监听,然后用getAllSimpleNotifyData获取数据。
wb54979 发表于 2018-5-3 17:11
我按照 您说的  打开页面的时候  同时打开N 个Frame
然后对应N个页面的代码 如下:

试试方案二吧
51
帖子
0
勋章
1095
Y币

setSimpleNotify  for循环开启N个设备的监听 完成之后
getAllSimpleNotifyData   while 无限循环调用get 获取缓存的设备数据
clearAllSimpleNotifyData概述  接着清空缓存数据

但是这里有一个问题, 我们的设备是一秒钟 能采集20组数据的   N个设备就是  N*20
当我调用 getAllSimpleNotifyData   的时候 是需要根据 N个设备的uuid  去缓存取下来的数据里面 进行运算 取出值的  ,然后clearAllSimpleNotifyData清除缓存  防止取到重负的,这都是需要运算时间的 , 所以 get出来的数据 肯定都是错乱的  对不上的数据的
62
帖子
2
勋章
303
Y币
有没有人遇到过这种问题手机连接上蓝牙直接app闪退
11
帖子
0
勋章
760
Y币
前一天还搜索不到设备,出现闪退,第二天能搜索到很多设备了,但是连接有问题,请问能提供示例吗?
11
帖子
0
勋章
760
Y币
函数亮点 · 2019-8-13 09:41有没有人遇到过这种问题手机连接上蓝牙直接app闪退

最后怎么处理的?还在用ble模块吗?能提供代码示例?
您需要登录后才可以回帖 登录

本版积分规则