Я разрабатываю мобильное приложение для связи с модулем Bluetooth. Я отправляю данные через приложение Android &, получая его на модуле BLE.Отправка строки в качестве буфера Uint8
Я использую cordova & BLE центральный плагин для cordova для связи с устройством от android.
Приложение, похоже, работает нормально, но с буфером Uint8 что-то не так.
НА APP ЧАСТЬ:
Я пытаюсь отправить строку следующим образом:
var data : 'action/523';
Я использую следующие функции для преобразования строки в буфер массива, прежде чем я, наконец, отправить данные в BLE устройство
function stringToArrayBuffer(str) {
// assuming 8 bit bytes
var ret = new Uint8Array(str.length);
for (var i = 0; i < str.length; i++) {
ret[i] = str.charCodeAt(i);
}
return ret.buffer;
}
var data = stringToArrayBuffer(data);
ble.writeWithoutResponse(app.connectedPeripheral.id, SERVICE_UUID, WRITE_UUID, data, success, failure);
на устройстве ЧАСТЬ:
Я использую простое устройство специфическую функцию для получения данных о BLE устройства, как следовать
void SimbleeBLE_onReceive(char *data, int len) {
Serial.print(data); //prints 'action/523';
}
Теперь это работает отлично, но позже, когда я отправить строку, как следовать
var data : 'action/3';
Это просто заменяет первую цифру целого числа & добавить предыдущее целочисленное значение 3 [23] 'action/323/';
Это происходит каждый раз, когда я пытаюсь отправить 2 или mor e сначала цифра с последующим меньшим цифровым значением позже
Почему так? Есть ли что-нибудь такое, как буферный кеш?
Благодарим за объяснение и ответ! Только одна ошибка. В строке отсутствует отсутствующая скобка: 4 кода. :) Пожалуйста, отредактируйте. благодаря – MANnDAaR