Hello
I am using Android and BLE communication with nRF52832 (BLENano2) now.
I am using SDK 15.0.0 with keil uversion.
Central is Android and peripheral is nRF52832.
Use the SDK "ble_app_blinky".
I now want to send arbitrary data from peripheral to central.
By calling the following code "send_data" in the main for loop, it was possible to send the value to central.
uint32_t send_value(uint16_t conn_handle, ble_lbs_t * p_lbs, uint8_t sensor_value)
{
if (p_lbs == NULL)
{
return NRF_ERROR_NULL;
}
uint32_t err_code = NRF_SUCCESS;
ble_gatts_value_t gatts_value;
// Initialize value struct.
memset(&gatts_value, 0, sizeof(gatts_value));
gatts_value.len = sizeof(uint8_t);
gatts_value.offset = 0;
gatts_value.p_value = &sensor_value;
// Update database.
err_code = sd_ble_gatts_value_set(BLE_CONN_HANDLE_ALL,////////////
p_lbs->sensor_char_handles.value_handle,
&gatts_value);
if (err_code != NRF_SUCCESS)
{
return err_code;
}
// Send value if connected and notifying.
if ((conn_handle != BLE_CONN_HANDLE_INVALID))
{
ble_gatts_hvx_params_t hvx_params;
memset(&hvx_params, 0, sizeof(hvx_params));
hvx_params.handle = p_lbs->sensor_char_handles.value_handle;
hvx_params.type = BLE_GATT_HVX_NOTIFICATION;
hvx_params.offset = gatts_value.offset;
hvx_params.p_len = &gatts_value.len;
hvx_params.p_data = gatts_value.p_value;
err_code = sd_ble_gatts_hvx(conn_handle, &hvx_params);
}
else
{
err_code = NRF_ERROR_INVALID_STATE;
}
return err_code;
}
I am currently sending uint8_t data, but I want to be able to send multiple data.
Since we are transmitting the output value of the acceleration sensor, we want to transmit a total of 6 bytes of data.
The problem here is that even if uint16_t is executed with uint8_t as the argument of "send_data" in order to send multiple data at once, the data was not sent.
What should I do to send multiple data?
As a possible way,
1) Separate the characteristic for each data you want to send and send each.
2) As I said earlier, prepare a larger sized variable instead of uint8_t.
I thought that.
I tried to increase the characteristic, but only one characteristic worked.
If you know the solution please tell me.
Thank you.