Я работаю над приложениями для Android / iOS для периферийного устройства IOT, которое отправляет данные BLE.Оба приложения на самом деле довольно хорошо работают с физическим периферийным устройством (которое использует библиотеку BLE от Texas Instrument).
Теперь, когда фактические периферийные устройства работают, я пытаюсь написать эмулятор с Bleno так что команда разработчиков может быть более эффективной, но у меня возникают проблемы с передачей статического значения строки для характеристики.
Я настраиваю свою характеристику следующим образом:
var bleCharacteristic = function() {
bleCharacteristic.super_.call(this, {
uuid: '0321',
properties: ['read'],
value: new Buffer('12345'),
});
};
Блено говорит, что мне нужно использовать буфер node.js для отправки строковых данных, но как на Android, так и на IOS полученные данные не 12345
, а скорее как-то так:
{
value: '3031333031383133303630303864666234643030323030333065303332656530313330313831333036303,
}
Мыслипочему это может происходить?Есть ли какие-то другие рекламные данные, которые я забыл установить в эмуляторе, чтобы значение вернулось как ожидалось?
Вот пример того, как я читаю значение полезной нагрузки.Это из нашего приложения для Android:
@Override
public void onCharacteristicRead(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, int status) {
...
String payload = bytesToHex(characteristic.getValue());
...
}
ПРИМЕЧАНИЕ. Дайте мне знать, есть ли другой соответствующий код, который я могу опубликовать.