- 小程序BLE主机,连接多个外围设备,并发通信发数据卡顿怎么解决?
小程序按照官方BLE主机连接从机的流程,对多个BLE设备(4台)进行连接通信, 安卓手机调试时,每个设备连接过程都进行了MTU协商256字节; 苹果手机调试时,每个设备连接过程都进行了MTU协商,协商的字节数根据苹果机的官方要求不超过158字节。 保持连接从设备期间,同时向多个从设备下发BLE数据,调用小程序API接口: wx.writeBLECharacteristicValue({ deviceId, serviceId, characteristicId: item.uuid, value: buffer, }) 实际操作过程中,出现不同现象的卡顿、异常、截止情况: 1、四个设备当中,第一设备可以正常完整下发,到第二个设备时,出现不少于1分钟的卡顿(期间不做任何操作,完全静置手机),长时间卡顿后,第二个设备的数据才继续往下发送; 2、出现卡顿时,小程序的wx.writeBLECharacteristicValue接口,完全不执行任何回调,success、fail、complete三个回调都不执行,超过1分钟后,才恢复正常,没有任何报错,而是按照代码逻辑继续往下; 3、以上的操作如果设备过多,则出现卡顿更为严重。 请问官方的技术团队,小程序BLE主机,多连接从设备,保持连接并且下发数据,技术上是否支持?是否有相应的前提条件约束?如果说不能过于频繁调用wx.writeBLECharacteristicValue接口下发,那么应该做什么样的时间间隔更稳妥?
2023-11-01 - camera组件mode="scanCode"无法识别小程序码?
index.wxml <view class="intro">欢迎使用代码片段,可在控制台查看代码片段的说明和文档</view> <camera class="intro" mode="scanCode" binderror="cameraError" bindscancode='scancode' frame-size='large'> </camera> <view class="intro" wx:for="{{scanCode_result_list}}" wx:for-item="item" wx:key="index"> 【{{index}}】 - {{item}} </view> index.js const app = getApp() Page({ data: { scanCode_result_list: [ "扫码结果列表" ] }, onLoad() { console.log('代码片段是一种迷你、可分享的小程序或小游戏项目,可用于分享小程序和小游戏的开发经验、展示组件和 API 的使用、复现开发问题和 Bug 等。可点击以下链接查看代码片段的详细文档:') console.log('https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.html') }, scancode(e) { console.log("【Dbg】", "扫码结果:", e.detail.result); var scanCode_result_list = this.data.scanCode_result_list; let i = 0; for (i = 0; i < scanCode_result_list.length; i++) { if (scanCode_result_list[i] == e.detail.result) { break; } } if (i == scanCode_result_list.length) { scanCode_result_list.push(e.detail.result); this.setData({ scanCode_result_list: scanCode_result_list }); } }, cameraError(e) { console.log("【Dbg】", "摄像头错误:", e); } }) 【程序逻辑】 通过camera组件的scanCode模式,循环识别摄像头的二维码信息,并在页面渲染展示二维码识别结果的列表。 【问题复现】 camera组件的scanCode模式可以任意识别常规的二维码图形(彩色、装饰), 但无法识别小程序码,没有触发扫码事件scancode(e){}, 也未触发相机错误事件cameraError(e){}, 【功能诉求】 请问官方团队是否有这个功能优化的计划?或者大概什么时候完成此功能开发?
2022-08-08 - BLEPeripheralServer.startAdvertising广播数据包内容不可控
本代码片段预期实现内容: 1.点击按钮,BLE外设服务,即BLEPeripheralServer,并进行BLE广播。 2.BLE外设的广播数据内容,根据代码设置为: 1)不可链接; 2)厂商ID设为:0x013A; 3)广播名为:”DigCore“; 4)广播功率:powerLevel: "high" 然而经过多次调试发现,广播数据不受控制: 1)BLE外设无法设置为不可连接; 2)厂商ID无法设置为预期值,而一直是:0x0000进行广播 3)广播名无法删除,只能修改;即如果广播名不设置,小程序服务器是否缓存了上一次的广播名? 4)广播功率出现 0 dBm,而且一个广播包中出现两组广播功率的AD_Structure。
2020-03-21