Я играю на этом примере:BLE ГАТТ формат данных сервера
https://doc-snapshots.qt.io/qt5-dev/qtbluetooth-heartrate-server-example.html
, чтобы лучше понять, как настроить сервер ГАТТ. Этот пример подделывает профиль HeartRate. Более подробно она создает характеристику с этим клиентом дескриптора:
const QLowEnergyDescriptorData clientConfig(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
здесь:
Я понимаю, что есть оба уведомления и указания по умолчанию отключена (на самом деле мне нужно, чтобы позволить им клиентское приложение для получения уведомления).
То, что я действительно не понимаю, этот код:
quint8 currentHeartRate = 60;
const auto heartbeatProvider = [&service, ¤tHeartRate, &valueChange]() {
QByteArray value;
value.append(char(0)); // Flags that specify the format of the value.
value.append(char(currentHeartRate)); // Actual value.
QLowEnergyCharacteristic characteristic = service->characteristic(QBluetoothUuid::HeartRateMeasurement);
service->writeCharacteristic(characteristic, value); // Potentially causes notification.
...
Ну, он добавляет два байта значения Характерного, так как она была определена выше:
QLowEnergyCharacteristicData charData;
charData.setUuid(QBluetoothUuid::HeartRateMeasurement);
charData.setValue(QByteArray(2, 0));
но то, что делает первую один означает?
value.append(char(0)); // Flags that specify the format of the value.
Я не могу найти документацию об этом «формате».
Я создал случайный UUID, чтобы создать свой собственный сервер GATT. Но если я попытаюсь установить оба значения и дескрипторы как 'QByteArray (1, 0)', чтобы получить полезную нагрузку только одну длину байта, я получаю: 'qt.bluetooth.bluez: атрибут типа {{00002902-0000-1000- 8000-00805f9b34fb} "имеет недопустимую длину 1 байт. То же самое происходит для любых чисел байтов, но 2. Почему? Теперь нет ничего о сердечном профиле! – Mark
00002902-0000-1000-8000-00805f9b34fb - это дескриптор конфигурации идентификатора клиента uuid, значение которого составляет 2 байта. Кажется, вы устанавливаете это значение дескриптора. – Preeti
Получил! Теперь я понимаю свою ошибку. – Mark