Привет. Я пытаюсь разработать приложение для часов Gear S3, на котором он работает. Tizen 4.0.0.4 Вкратце заявил, что проблема в том, что я не знаю, как включить уведомления характеристик . Когда я пытаюсь использовать обычный подход, то есть, записывая x01 x00 в 0x2902 дескриптор, я получаю -1 ошибку, и в журналах я получаю:
bt-gatt-client.c: __bluetooth_get_att_error_code(901) > Error : GDBus.Error:org.bluez.Error.NotPermitted: Write not permitted [/dev_4C_65_A8_DC_A1_F7/service002d/char002e/desc0030]
Я попытался немного заглянуть в blueZ, чтобы понять, что не так,но я только начал.
svc, char и desc выглядят так (Это пользовательские символы из датчика темпа и шума Xiaomi):
SRVC:(1/7) uuid: [0000fe95-0000-1000-8000-00805f9b34fb]
CHAR: (1/6) uuid: [00000001-0000-1000-8000-00805f9b34fb]
DESC: (1/1) uuid: [00002902-0000-1000-8000-00805f9b34fb]
(разрешение на CHAR - уведомление о записи. ) Я делаю обычные вещи (после подключения и т. Д. Я не связывался, потому что кажется, что это не нужно для устройства, ну, если только стек Тизена не делает какую-то магию с blueZ под капотом со связыванием ...). Поэтому я делаю более или менее это: в обратном вызове подключения, после создания клиента, я вызываю трио
bt_gatt_client_get_service()
bt_gatt_service_get_characteristic()
bt_gatt_characteristic_get_descriptor()
, а затем я устанавливаю значение 0x01 0x00 как массив символов с
bt_gatt_set_value()
и, наконец, вызовите
bt_gatt_client_write_value()
в bt_gatt_client_write_value () обратный вызов Я получаю ошибка записи с кодом ошибки -1 и взарегистрируйте вышеупомянутую ошибку из bluez
Я должен признать, что застрял ... Есть ли какой-либо другой способ в Tizen включить уведомления характеристик, кроме записи x01 x00 в дескриптор CCCD? Возможно, мне не хватает каких-то предварительных условий или чего-то в этом роде. Честно говоря, я просто следовал руководству на странице Sammys и думал, что оно должно работать ... просто так ... Просто упомянуть, что с помощью rpi0 и python это работает ... спасибо. ОБНОВЛЕНИЕ: я забыл упомянуть, что, в принципе, я могу написать другие характеристики, которые я не пытался установить их уведомления, но в целом единственной проблемой является дескриптор CCCD прямо сейчас. Привилегии установлены.