Ok, so I am using nRF52DK and trying to figure out to how to send up to 6 packets of data from custom service that sends 6 16bit values per packet. When I send one packet at a time everything is working ok. Once I call send 6 times in a row, I only see 5 packets arrive the first time and 4 packets all consecutive times. I am using nRF Connect app for android to see and communicate with the chip.
Here is code where I call send command, that is timer driven:
static void imu_meas_timeout_handler(void * p_context) { ret_code_t err_code; ble_imus_meas_t imus_measurement; UNUSED_PARAMETER(p_context); imus_measurement.accel_x = 2000; imus_measurement.accel_y = 1500; imus_measurement.accel_z = 1200; imus_measurement.gyro_x = 2500; imus_measurement.gyro_y = 1700; imus_measurement.gyro_z = 1000; err_code = ble_imus_measurement_send(&m_imus, &imus_measurement); err_code = ble_imus_measurement_send(&m_imus, &imus_measurement); err_code = ble_imus_measurement_send(&m_imus, &imus_measurement); err_code = ble_imus_measurement_send(&m_imus, &imus_measurement); err_code = ble_imus_measurement_send(&m_imus, &imus_measurement); err_code = ble_imus_measurement_send(&m_imus, &imus_measurement); if ((err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_INVALID_STATE) && (err_code != NRF_ERROR_RESOURCES) && (err_code != NRF_ERROR_BUSY) && (err_code != BLE_ERROR_GATTS_SYS_ATTR_MISSING) ) { APP_ERROR_HANDLER(err_code); } }
I have searched on how I can increase amount of data sent but everything that I have tried does not help me. If I reduce amount of data being send to lets say 1 value I see 6 packets come in. Does anyone have any idea how to solve the problem?
Thank you very much.