FlutterBlue Характеристики - PullRequest
       3

FlutterBlue Характеристики

0 голосов
/ 12 февраля 2019

Я разрабатываю приложение Bluetooth, которое подключается к часам для фитнеса.Я впервые работаю с Bluetooth.Мне удалось подключить мое приложение к устройству с помощью блестящей библиотеки FlutterBlue .

Однако я не могу понять, какие результаты я получаю от чтения.Вот как я читаю характеристики:

_readCharacteristic(BluetoothCharacteristic c) async {
    var results = await widget.device.readCharacteristic(c);
    print("${results.toList()}");
    //setState(() {});
  }

Вот результат:

[7, 133, 0, 0, 1, 0, 0, 124, 92, 1]

Я понятия не имею, что означают эти цифры или что я должен с ними делать.

1 Ответ

0 голосов
/ 12 февраля 2019

Из документации :

var characteristics = service.characteristics;
for(BluetoothCharacteristic c in characteristics) {
    List<int> value = await device.readCharacteristic(c);
    print(value);
}

// Writes to a characteristic
await device.writeCharacteristic(c, [0x12, 0x34])

Мы можем видеть, что библиотека работает с типами List (int) и что она отправляет / получает "32-битные" значения.

Скорее всего, передаются пары байтов, поэтому 16-битные значения представлены в виде чисел в списке;это символов .Это означает, что вы можете отправлять символы с их представлением utf8.

В приведенном выше примере характеристика записывает 0x12, а затем 0x34.В ссылке на таблицу символов ascii это переводится как «(Device Control 2) (4)».

Ваша задача - декодировать их в символы (UTF8), а также кодировать их при отправке.вернуться к часам.Это требуется программным обеспечением часов, которое может реагировать на определенные записи характеристик в зависимости от полученного значения.

Возможно, вам придется немного покопаться в документации / спецификации Bluetooth используемых вами часов.

Проверьте класс dart UTF8Decoder: convert lib.Это должно помочь вам перевести его в читабельный текст.Если нет, вам придется немного покопаться.

String decoded = UTF8Decoder().convert(value) // value == List<int>, Uint8List, etc.
print(decoded)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...