Hello. I try to create a remote control for GoPro using nrf52 ble.
Using sdk 17.1 examples I can connect to GoPro and try to get a list of UUIDs. But I only get one UUID (0x180f, battery).
In ble_evt_handler, on BLE_GAP_EVT_CONNECTED event I call "ble_db_discovery_start" function.
static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context) { ret_code_t err_code; ble_gap_evt_t const * p_gap_evt = &p_ble_evt->evt.gap_evt; pm_handler_secure_on_connection(p_ble_evt); switch (p_ble_evt->header.evt_id) { case BLE_GAP_EVT_CONNECTED: { NRF_LOG_DEBUG("GAP Connected, m_conn_handle = 0x%0X",m_conn_handle); m_conn_handle = p_gap_evt->conn_handle; //Discover peer's services. err_code = ble_db_discovery_start(&m_db_disc, p_ble_evt->evt.gap_evt.conn_handle); APP_ERROR_CHECK(err_code); ..... some other events .... }
Database discovery events call callback "db_disc_handler"
static void db_disc_handler(ble_db_discovery_evt_t * p_evt) { NRF_LOG_INFO("DC_DISC type: %d",p_evt->evt_type); if (p_evt->evt_type == BLE_DB_DISCOVERY_COMPLETE){ NRF_LOG_INFO("DB_DISC uuid: 0x%04X type: 0x%0X",p_evt->params.discovered_db.srv_uuid.uuid,p_evt->params.discovered_db.srv_uuid.type); } //ble_bas_on_db_disc_evt(&m_bas_c, p_evt); }
Connecting to camera I only get two call db_disc_handler:
<info> app: DC_DISC type: 0
<info> app: DB_DISC uuid: 0x180F type: 0x1
<info> app: DC_DISC type: 3
Using nRF Connect app, I can see a lot of UUIDS:
How to get list of all UUIDs in my code?