/**@brief Function for handling the Cycling Speed and Cadence measurement timer timeouts. * * @details This function will be called each time the cycling speed and cadence * measurement timer expires. * * @param[in] p_context Pointer used for passing some arbitrary information (context) from the * app_start_timer() call to the timeout handler. */ static void csc_meas_timeout_handler(void * p_context) { uint32_t err_code; ble_cscs_meas_t cscs_measurement; UNUSED_PARAMETER(p_context); csc_sim_measurement(&cscs_measurement); err_code = ble_cscs_measurement_send(&m_cscs, &cscs_measurement); if ((err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_INVALID_STATE) && (err_code != BLE_ERROR_NO_TX_BUFFERS) && (err_code != BLE_ERROR_GATTS_SYS_ATTR_MISSING) ) { APP_ERROR_HANDLER(err_code); } if (m_auto_calibration_in_progress) { err_code = ble_sc_ctrlpt_rsp_send(&(m_cscs.ctrl_pt), BLE_SCPT_SUCCESS); if ((err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_INVALID_STATE) && (err_code != BLE_ERROR_NO_TX_BUFFERS) ) { APP_ERROR_HANDLER(err_code); } if (err_code != BLE_ERROR_NO_TX_BUFFERS) { m_auto_calibration_in_progress = false; } } }
/**@brief Cycling Speed and Cadence measurement timer timeout handler. * * @details This function will be called each time the cycling speed and cadence * measurement timer expires. * * @param[in] p_context Pointer used for passing some arbitrary information (context) from the * app_start_timer() call to the timeout handler. */ static void csc_meas_timeout_handler(void * p_context) { uint32_t err_code; ble_cscs_meas_t cscs_measurement; UNUSED_PARAMETER(p_context); csc_sim_measurement(&cscs_measurement); err_code = ble_cscs_measurement_send(&m_cscs, &cscs_measurement); if ( (err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_INVALID_STATE) && (err_code != BLE_ERROR_NO_TX_BUFFERS) && (err_code != BLE_ERROR_GATTS_SYS_ATTR_MISSING) ) { APP_ERROR_HANDLER(err_code); } }