У меня есть сборка Android-приложения в Apache Cordova, она работает с Bluetooth 4.0 (BLE), плагин GitHub-репозиторий указывает эту форму для отправки информации на устройство (в моем случае модуль HM10):
эта функция записывает данные в признак.
ble.write (идентификатор_устройства, service_uuid, характеристика_uuid, данные, успех, отказ);Описание Функция write записывает данные в характеристику.
Параметры: device_id: UUID или MAC-адрес периферийного устройства service_uuid: UUID службы BLE характеристика_uuid: UUID данных характеристики BLE: двоичные данные, используйте ArrayBuffer success:Функция обратного вызова Success, которая вызывается при успешном соединении. [необязательный] сбой: функция обратного вызова ошибки, вызывается при возникновении ошибки. [необязательно]
Я пытался отправить данные таким способом, но функция сбоя вызывается немедленно
function startBed() {
var UiidS="FFE0"; //UUID SERVICE: AT+UUID? => 0xFFE0
var UiidC="FFE1"; //UUID CHARACTERISTICS AT+CHAR? => 0xFFE1
var data = new Uint8Array(1);
data[0] = 1;
setTimeout(ble.write(hMac,UiidS,UiidC,data.buffer,success,failure),2000);
function success() {
document.getElementById("btstate1").innerHTML = "Dato enviado!!!";
}
function failure() {
document.getElementById("btstate1").innerHTML = "Dato NO enviado!!!";
var time=2000;
navigator.vibrate(time);
}
}
, если я возьму значение текстового поля и отправлю его напрямую, HM10получает нераспознанные символы, такие как Ó.
var UiidS="FFE0";
var UiidC="FFE1";
var dato =document.getElementById("btstate6").value;
setTimeout(ble.write(hMac,UiidS,UiidC,dato,success,failure),2000);
В заключение я не знаю, почему модуль не получает данные правильно или в других случаях данные не отправляются. Может быть для чего-то из UUID.