我正在尝试发送超过20个字节的离子本机而没有成功, 首先,我发送没有回应然后这个回复,但仍然没有工作 我是怎么做到的?
var newSend=this.myInput.match(/.{1,19}/g);
console.log(newSend);
for(var i = 0 ; i<newSend.length ; i++){
var ddd = newSend[i].buffer;
this.sendingtext=newSend[i];
console.log(i,newSend.length);
if(i == (newSend.length-1)){
this.ble.write(bID, bService, bCharacteristic, ddd).then(
function(data){
// console.log( this.myInput);
console.log("write",data);
}
);
}else{
this.ble.writeWithoutResponse(bID, bService, bCharacteristic, ddd).then(
function(data){
// console.log( this.myInput);
console.log("writeWithoutResponse",data);
}
);
}
答案 0 :(得分:0)
这是不可接受的。 BLE是低能量蓝牙,因此它的协议限制命令的数据包大小。通常,您可以通过BLE写入发送的最大有效负载大小为20字节
请点击此链接,详细了解如何通过BLE发送更大的20个字节
答案 1 :(得分:0)
这是一种误解,“无应答的写作”没有给出回应;它确实。 你只需要等待回应。 它旨在减少连续数据包之间的时间, 我们可以在客户端和服务器之间发送和接收数据,而无需在每条消息之后等待响应。
有一些限制:
您必须遵守服务器的MTU。
服务器的接收缓冲区必须足够大,以容纳传入的数据包。
服务器必须有足够的时间清空接收缓冲区。