function send(devices: any) {
console.log('-----------开始给所有设备发送数据---------------');
for (let i = 0; i < devices.length; i++){
const device = devices[i];
console.log(`设备['${device.name}]['${device.deviceId}']开始发送数据:` + JSON.stringify(device.value));
TestWriteBLECharacteristic(device.deviceId, device.serviceId, device.characteristicId, device.value);
}
}
function TestWriteBLECharacteristic(deviceId: string, serviceId: string, characteristicId: string, value: number[]) {
const uint8Array = new Uint8Array(value.length);
for (let i = 0; i < value.length; i++) {
uint8Array[i] = value[i] & 0xFF;
}
console.log('[' + deviceId + ']:发送数据' + JSON.stringify(value));
uni.writeBLECharacteristicValue({
deviceId: deviceId,
serviceId: serviceId,
characteristicId: characteristicId,
value: uint8Array.buffer,
success:(e) => {
console.log('数据发送成功[' + deviceId + ']');
},
fail: (e) => {
console.log('数据发送失败[' + deviceId + ']');
},
complete() {
console.log('数据发送完成[' + deviceId + ']');
}
});
}

- 发布:2023-07-07 14:33
- 更新:2023-07-10 12:46
- 阅读:177
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.8.4
手机系统: iOS
手机系统版本号: iOS 15
手机厂商: 苹果
手机机型: iphone11
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
1、通过for循环所有设备列表;
2、在循环中使用uni.writeBLECharacteristicValue方法为每个设备发送数据;
3、获取每个设备发送数据的结果;
4、对应的设备根据发送的设备指令数据,执行相应的操作;
1、通过for循环所有设备列表;
2、在循环中使用uni.writeBLECharacteristicValue方法为每个设备发送数据;
3、获取每个设备发送数据的结果;
4、对应的设备根据发送的设备指令数据,执行相应的操作;
预期结果:
1、每个设备都能执行uni.writeBLECharacteristicValue方法的回调;
2、每个设备都能根据指令,执行相应的操作;
1、每个设备都能执行uni.writeBLECharacteristicValue方法的回调;
2、每个设备都能根据指令,执行相应的操作;
实际结果:
1、只有最后一个设备执行uni.writeBLECharacteristicValue方法的回调;
2、大部分情况下所有设备都能准确无误的执行指令,但是偶尔有一部分设备未能执行相应的指令;
1、只有最后一个设备执行uni.writeBLECharacteristicValue方法的回调;
2、大部分情况下所有设备都能准确无误的执行指令,但是偶尔有一部分设备未能执行相应的指令;
DCloud_iOS_WZT
你这个BluetoothPlugin哪里来的
2023-07-10 12:50
5***@qq.com (作者)
回复 DCloud_iOS_WZT: 就是uni,为了同时试一下plus.bluetooth而使用一个变量,方便切换。
2023-07-13 11:12