- 小程序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 - 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