Hello,
I'm working with a nrf51822, SoftDevice S120 v2.0 and SDK v9.0 platform.
Specifically using it a Central role to connect to a Blood Pressure peripheral.
I connect to the peripheral, find the Service/Characteristic I need and register for an "Indication" like so:
uint32_t err_code;
ble_gattc_write_params_t write_params;
uint8_t buf[BLE_CCCD_VALUE_LEN];
buf[0] = BLE_GATT_HVX_INDICATION;
buf[1] = 0;
write_params.write_op = BLE_GATT_OP_WRITE_REQ;
write_params.handle = p_client->srv_db.services[0].charateristics[p_client->my_char_index].cccd_handle;
write_params.offset = 0;
write_params.len = sizeof(buf);
write_params.p_value = buf;
err_code = sd_ble_gattc_write(p_client->srv_db.conn_handle, &write_params);
APP_ERROR_CHECK(err_code);
Unfortunately this does not work for me.
i.e. I get a BLE_GATTC_EVT_WRITE_RSP back from the peripheral but BLE_GATTC_EVT_HVX never gets throw to indicate data has been received.
In this:
buf[0] = BLE_GATT_HVX_INDICATION;
buf[1] = 0
Can someone please tell me what buf[1] = 0 is supposed to be? I copied this from a NOTIFICATION example and I cant seem to find anywhere in the documentation what this buffer is supposed to contain. I suspect this may have something to do with the problem.
Thanks very much, Mark