Имеется в виду событие sl_bt_evt_gatt_procedure_completed_id:? Хорошо, допустим, я получил информацию о завершении и послал следующий запрос, потом снова получил и снова послал. Т.е. весь characteristic discovery я могу делать в этом case. Но из какого события посылать первый запрос? Хотелось бы юниформности. Хотя мне еще надо над этим подумать, с учетом моего желания распихать обработчики сервисов по разным файлам, так, чтобы они без нужды не пересекались.Ser60 писал(а):В программе клиента формируется событие когда придёт ответ сервера на запрос. Дождитесь его и потом посылайте следующий.
Еще изучал (немного) код из KBA_BT_0903: SPP-over-BLE example. И мне показалось, что там клиент узнаёт о сервисах сервера еще до соединения в событии gecko_evt_le_gap_scan_response_id:. Возможно ли это или я не понимаю? Хотя EFR Connect тоже показывает некоторые сервисы еще до соединения с сервером. Хотя, это позволит мне только отфильтровать устройства с требуемым UUID. Handle я могу получить только после соединения. Пока я фильтрую просто по "таблице моих устройств".
Еще есть непонятность по функции write_without_response:
Код: Выделить всё
sl_status_t sl_bt_gatt_write_characteristic_value_without_response(uint8_t connection,
uint16_t characteristic,
size_t value_len,
const uint8_t* value,
uint16_t *sent_len);
Прошивку донгла я брал из каталога CySmart v1.3 "C:\Program Files (x86)\Cypress\CySmart\1.3\dongle\CY5672\BLE_HID_CySmart_Dongle.hex" и оно мне зашило это: