Exemple #1
0
/**@brief Function for dispatching a system event to interested modules.
 *
 * @details This function is called from the System event interrupt handler after a system
 *          event has been received.
 *
 * @param[in]   sys_evt   System stack event.
 */
static void sys_evt_dispatch(uint32_t sys_evt)
{
    pstorage_sys_event_handler(sys_evt);

    uint32_t count;
    uint32_t err_code;

    // Check if storage access is in progress.
    err_code = pstorage_access_status_get(&count);
    if ((err_code == NRF_SUCCESS) && (count == 0))
    {
        storage_access_complete_handler();
    }
}
/**@brief ANT CHANNEL_CLOSED event handler.
 */
static void on_ant_evt_channel_closed(void)
{
#ifdef BONDING_ENABLE
    uint32_t err_code;
    uint32_t count;

    // We do not have any activity on the radio at this time, so it is safe to store bonds
    err_code = ble_bondmngr_bonded_centrals_store();
    APP_ERROR_CHECK(err_code);

    err_code = pstorage_access_status_get(&count);
    if ((err_code == NRF_SUCCESS) && (count == 0))
#endif // BONDING_ENABLE
    {        
        storage_access_complete_handler();
    }
}
/**@brief Function for dispatching a system event to interested modules.
 *
 * @details This function is called from the System event interrupt handler after a system
 *          event has been received.
 *
 * @param[in]   sys_evt   System stack event.
 */
static void sys_evt_dispatch(uint32_t sys_evt)
{
    uint32_t err_code;
    uint32_t count;

    pstorage_sys_event_handler(sys_evt);

    // Verify if BLE bond data storage access is in progress or not.    
    if (m_app_initialized == true)
    {
        err_code = pstorage_access_status_get(&count);
        if ((err_code == NRF_SUCCESS) && (count == 0))
        {        
            storage_access_complete_handler();
        }
    }
    else
    {
        m_app_initialized = true;
    }
}
/**@brief Application main function.
 */
int main(void)
{
    // Initialize peripherals
    leds_init();
    timers_init();
    buttons_init();

    // Initialize S310 SoftDevice
    ble_ant_stack_init();
    
    // Initialize Bluetooth stack parameters.
    gap_params_init();
    advertising_init();
    services_init();
    conn_params_init();

    // Initialize ANT HRM recieve channel.
    ant_hrm_rx_init();

#ifdef BONDING_ENABLE
    uint32_t err_code;
    uint32_t count; 

    // Initialize device manager.
    device_manager_init();

    err_code = pstorage_access_status_get(&count);
    if ((err_code == NRF_SUCCESS) && (count == 0))
#endif // BONDING_ENABLE
    {
        storage_access_complete_handler();
    }

    // Enter main loop.
    for (;;)
    {
        power_manage();
    }
}