微信低功耗蓝牙打印,规定每次发送数据不超过20个字节,大于20个字节后将不会打印
微信小程序源码:
var writeBuffer = function (dataView, buffer) {
console.log("发送的数据:")
for (let i = 0; i < dataView.byteLength; i++) {
console.log("0x" + dataView.getUint8(i).toString(16))
}
//延迟函数
var Delayed = function(ms,callback){
return new Promise(function(Resolve,Peject){
setTimeout(function(){
Resolve(callback);
},ms);
});
}
var length = buffer.byteLength;
var count = Math.ceil(length/20); //最多执行 count 次
for(var i=0;i<count;i++){
console.log("正在进行第"+i+"次数据写入:");
//对buffer进行分包,最大不超过20字节
let TempBuffer;
if(((i+1)*20)<length){
TempBuffer = buffer.slice(i*20,(i+1)*20);
}else{
TempBuffer = buffer.slice(i*20,length);
}
await Delayed(200).then( ()=>{ //延迟200ms
//写入设备
wx.writeBLECharacteristicValue({
deviceId: deviceId, //设备deviceId
serviceId: serviceId, //设备service_id
characteristicId:characteristicId, //设备write特征值
value: TempBuffer, //写入数据
success: function (res) {
console.log('writeBLECharacteristicValue success ->'+i, res)
},
fail: function (res) {
console.log('writeBLECharacteristicValue fail', res)
}
})
} )
}
}
HBuilderX源码:
var writeBuffer = function (dataView, buffer) {
console.log("发送的数据:")
for (let i = 0; i < dataView.byteLength; i++) {
console.log("0x" + dataView.getUint8(i).toString(16))
}
//延迟函数
var Delayed = function(ms,callback){
return new Promise(function(Resolve,Peject){
setTimeout(function(){
Resolve(callback);
},ms);
});
}
var length = buffer.byteLength;
var count = Math.ceil(length/20); //最多执行 count 次
for(var i=0;i<count;i++){
console.log("正在进行第"+i+"次数据写入:");
//对buffer进行分包,最大不超过20字节
let TempBuffer;
if(((i+1)*20)<length){
TempBuffer = buffer.slice(i*20,(i+1)*20);
}else{
TempBuffer = buffer.slice(i*20,length);
}
await Delayed(200).then( ()=>{ //延迟200ms
//写入设备
uni.writeBLECharacteristicValue({
deviceId: deviceId, //设备deviceId
serviceId: serviceId, //设备service_id
characteristicId:characteristicId, //设备write特征值
value: TempBuffer, //写入数据
success: function (res) {
console.log('writeBLECharacteristicValue success ->'+i, res)
},
fail: function (res) {
console.log('writeBLECharacteristicValue fail', res)
}
})
} )
}
}
运行结果:
感谢您的支持,写的文章如对您有所帮助,开源不易,请您打赏,谢谢啦~