android - React Native BLE 错误:设备已断开连接
问题描述
尝试使用以下方法从手机写入设备。我们要传输三个数据包。第一个数据包传输,然后我们的手机因错误而断开连接Response Characteristic Error: Error: Device disconnected
。
谁能阐明如何解决此响应特征错误?我们正在使用 react-native-ble-plx 库。
writeToDevice = async (fullMessage, machineID) => {
let subMessagesToSend = [];
let subMessagesToSendCounter = 0;
let i, j;
let maxBytes = 19;
for (i = 0, j = fullMessage.length; i < j; i += maxBytes) {
subMessagesToSend.push(fullMessage.slice(i, i + maxBytes));
}
const sequenceNum = Buffer.alloc(1);
sequenceNum.writeUInt8(subMessagesToSendCounter, 0);
const subMessage = subMessagesToSend[0];
const buffer = Buffer(subMessage, 'utf8');
const fullBuffer = Buffer.concat([sequenceNum, buffer]);
const message = fullBuffer.toString('base64');
ble.writeCharacteristicWithResponseForDevice(
machineID,
hUUID,
rxUUID,
message)
});
subMessagesToSendCounter++;
}
解决方案
好吧, writeCharacteristic 调用不在 for 循环内,所以它不会发送超过 1 条消息......
不知道为什么它会断开连接,但它可能只是一个超时......
推荐阅读
- list - Kotlin 中 List.subList 和 slice 的区别
- php - 根据 MIME 类型数组检查 MIME 类型作为字符串
- linux - 绑定到接口的问题,错误号:92。我收到此错误。我在 Windows 中使用开发者模式。如何修复它
- javascript - 从种子生成私钥
- swift - build failed 手动合并代码时无法确定生成的 Core Data 代码生成的文件路径
- .net - 通过 VS 2017 设计器在低 DPI 屏幕上绘制兼容高 DPI 的 Windows 窗体
- html - Flexbox 的宽度超过了它的主容器
- java - Spring Data LDAP Repository 查找 ldap 条目
- scala - 如何模拟尾递归函数?
- layout - Chart.js - 折线图最右边的数据点