Hi all,
I have a trouble about understanding.
As far as I understand, when Device 1 send service change indication to Device 2, Device 2 will rediscovery service of Device 1 for update GATT table of Device 1.
When I test with Gatts_c example and GATTs, I can send Service change indication from service to client. And client will rediscovery service of Service in NRF_BLE_GATTS_C_EVT_SRV_CHANGED event follow code :
case NRF_BLE_GATTS_C_EVT_SRV_CHANGED: NRF_LOG_INFO("Service Changed indication received."); NRF_LOG_INFO("Handle range start: %04x", p_evt->params.handle_range.start_handle); NRF_LOG_INFO("Handle range end: %04x", p_evt->params.handle_range.end_handle); // Discover peer's services. err_code = nrf_ble_gatts_c_handles_assign(&m_gatts_c, p_evt->conn_handle, NULL); APP_ERROR_CHECK(err_code); memset(&m_ble_db_discovery, 0x00, sizeof(m_ble_db_discovery)); err_code = ble_db_discovery_start(&m_ble_db_discovery, p_evt->conn_handle); APP_ERROR_CHECK(err_code); break;
And I want send service change indication from client to server. In gatts_c I enable service change characteristic in sdk_config.h . And in my code :
case BSP_EVENT_KEY_0: { sd_ble_gatts_service_changed (m_conn_handle,0x000C,0xFFFF); }
But I don't see anything at server side.
Then I using an Android connect with client GATT. My android find out service change characteristic. But when I push button 0, I don't see any changes on android.(I enabled service change characteristic on android. I think It will rediscovery service of client GATT.
Please show me a right view about service change characteristic
Thank!!!