/**@brief Function for application main entry. */ int main(void) { bool erase_bonds; // Initialize. log_init(); timers_init(); buttons_leds_init(&erase_bonds); power_management_init(); ble_stack_init(); gap_params_init(); gatt_init(); services_init(); advertising_init(); conn_params_init(); peer_manager_init(); // Start execution. NRF_LOG_INFO("OurCharacteristics tutorial started."); application_timers_start(); advertising_start(erase_bonds); // Enter main loop. for (;;) { idle_state_handle(); } }
/**@brief Function for application main entry. */ int main(void) { uint32_t err_code; bool erase_bonds; // Initialize. err_code = NRF_LOG_INIT(); APP_ERROR_CHECK(err_code); timers_init(); buttons_leds_init(&erase_bonds); ble_stack_init(); peer_manager_init(erase_bonds); if (erase_bonds == true) { NRF_LOG_DEBUG("Bonds erased!\r\n"); } gap_params_init(); advertising_init(); db_discovery_init(); alert_notification_init(); conn_params_init(); // Start execution. advertising_start(); // Enter main loop. for (;;) { power_manage(); } }
int main(void) { ret_code_t err_code; bool erase_bonds; err_code = NRF_LOG_INIT(); APP_ERROR_CHECK(err_code); NRF_LOG_PRINTF("Relay Example\r\n"); APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, NULL); buttons_leds_init(&erase_bonds); if (erase_bonds == true) { NRF_LOG("Bonds erased!\r\n"); } ble_stack_init(); peer_manager_init(erase_bonds); db_discovery_init(); hrs_c_init(); rscs_c_init(); gap_params_init(); conn_params_init(); services_init(); advertising_init(); /** Start scanning for peripherals and initiate connection to devices which * advertise Heart Rate or Running speed and cadence UUIDs. */ scan_start(); // Turn on the LED to signal scanning. LEDS_ON(CENTRAL_SCANNING_LED); // Start advertising. err_code = ble_advertising_start(BLE_ADV_MODE_FAST); APP_ERROR_CHECK(err_code); for (;;) { // Wait for BLE events. power_manage(); } }
/**@brief Function for application main entry. */ int main(void) { bool erase_bonds; uint32_t err_code; // Initialize. err_code = NRF_LOG_INIT(NULL); APP_ERROR_CHECK(err_code); // Clear bond flag bond_present = false; timers_init(); buttons_leds_init(&erase_bonds); ble_stack_init(); peer_manager_init(erase_bonds); if (erase_bonds == true) { NRF_LOG_INFO("Bonds erased!\r\n"); } gap_params_init(); advertising_init(); services_init(); sensor_simulator_init(); conn_params_init(); whitelist_load(); nfc_init(erase_bonds); // Start execution. NRF_LOG_INFO("Heart Rate Sensor NFC Start!\r\n"); application_timers_start(); // Enter main loop. for (;;) { if (NRF_LOG_PROCESS() == false) { power_manage(); } } }
/**@brief Application main function. */ int main(void) { uint32_t err_code; bool erase_bonds; err_code = NRF_LOG_INIT(NULL); APP_ERROR_CHECK(err_code); // Initialize timers_init(); buttons_leds_init(&erase_bonds); ble_stack_init(); peer_manager_init(erase_bonds); if (erase_bonds == true) { NRF_LOG_INFO("Bonds erased!\r\n"); } gap_params_init(); advertising_init(); services_init(); sim_init(); conn_params_init(); // Start execution application_timers_start(); NRF_LOG_INFO("Location and Navigation App started\r\n"); err_code = ble_advertising_start(BLE_ADV_MODE_FAST); APP_ERROR_CHECK(err_code); // Enter main loop for (;;) { if (NRF_LOG_PROCESS() == false) { power_manage(); } } }
int main(void) { ret_code_t err_code; bool erase_bonds; err_code = NRF_LOG_INIT(); APP_ERROR_CHECK(err_code); NRF_LOG_PRINTF("Relay Example\r\n"); APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, NULL); buttons_leds_init(&erase_bonds); if (erase_bonds) { NRF_LOG_PRINTF("Bonds erased!\r\n"); } ble_stack_init(); peer_manager_init(erase_bonds); db_discovery_init(); hrs_c_init(); rscs_c_init(); gap_params_init(); conn_params_init(); services_init(); advertising_init(); adv_scan_start(); for (;;) { // Wait for BLE events. power_manage(); } }
/**@brief Thread for handling the Application's BLE Stack events. * * @details This thread is responsible for handling BLE Stack events sent from on_ble_evt(). * * @param[in] arg Pointer used for passing some arbitrary information (context) from the * osThreadCreate() call to the thread. */ static void ble_stack_thread(void * arg) { uint32_t err_code; bool erase_bonds; UNUSED_PARAMETER(arg); // Initialize. timers_init(); buttons_leds_init(&erase_bonds); ble_stack_init(); peer_manager_init(erase_bonds); gap_params_init(); advertising_init(); services_init(); sensor_simulator_init(); conn_params_init(); application_timers_start(); err_code = ble_advertising_start(BLE_ADV_MODE_FAST); APP_ERROR_CHECK(err_code); while (1) { /* Wait for event from SoftDevice */ while (pdFALSE == xSemaphoreTake(m_ble_event_ready, portMAX_DELAY)) { // Just wait again in the case when INCLUDE_vTaskSuspend is not enabled } // This function gets events from the SoftDevice and processes them by calling the function // registered by softdevice_ble_evt_handler_set during stack initialization. // In this code ble_evt_dispatch would be called for every event found. intern_softdevice_events_execute(); } }
/** * Real initialization, called after the config is parsed */ int diameter_peer_init_real() { pid_list_t *i,*j; if (!config) { LM_ERR("diameter_peer_init_real(): Configuration was not parsed yet. Aborting...\n"); goto error; } log_dp_config(config); dp_first_pid = shm_malloc(sizeof(pid_t)); if (!dp_first_pid){ LOG_NO_MEM("shm",sizeof(pid_t)); goto error; } *dp_first_pid = getpid(); shutdownx = shm_malloc(sizeof(int)); if (!shutdownx){ LOG_NO_MEM("shm",sizeof(int)); goto error; } *shutdownx = 0; shutdownx_lock = lock_alloc(); if (!shutdownx_lock){ LOG_NO_MEM("shm",sizeof(gen_lock_t)); goto error; } shutdownx_lock = lock_init(shutdownx_lock); handlers_lock = lock_alloc(); if (!handlers_lock){ LOG_NO_MEM("shm",sizeof(gen_lock_t)); goto error; } handlers_lock = lock_init(handlers_lock); handlers = shm_malloc(sizeof(handler_list)); if (!handlers){ LOG_NO_MEM("shm",sizeof(handler_list)); goto error; } handlers->head=0; handlers->tail=0; /* init the pid list */ pid_list = shm_malloc(sizeof(pid_list_head_t)); if (!pid_list){ LOG_NO_MEM("shm",sizeof(pid_list_head_t)); goto error; } bzero(pid_list,sizeof(pid_list_head_t)); pid_list_lock = lock_alloc(); pid_list_lock = lock_init(pid_list_lock); /* init shared mem pointers before forking */ timer_cdp_init(); worker_init(); /* init the peer manager */ peer_manager_init(config); /* init diameter transactions */ cdp_trans_init(); /* init the session */ if (!cdp_sessions_init(config->sessions_hash_size)) goto error; /* add callback for messages - used to implement the API */ cb_add(api_callback,0); return 1; error: if (shutdownx) shm_free(shutdownx); if (config) free_dp_config(config); i = pid_list->head; while(i){ j = i->next; shm_free(i); i = j; } shm_free(pid_list); lock_get(pid_list_lock); lock_destroy(pid_list_lock); lock_dealloc((void*)pid_list_lock); return 0; }
/** * Initialize the CDiameterPeer from a configuration file. * The file is kept as dtd. See configdtd.h for the DTD and ConfigExample.xml. * @param cfg_filename - file with the configuration * @returns 1 on success, 0 on error */ int diameter_peer_init(char *cfg_filename) { pid_list_t *i,*j; config = parse_dp_config(cfg_filename); if (!config) { LOG(L_ERR,"ERROR:init_diameter_peer(): Error loading configuration file. Aborting...\n"); goto error; } log_dp_config(L_INFO,config); dp_first_pid = shm_malloc(sizeof(pid_t)); if (!dp_first_pid){ LOG_NO_MEM("shm",sizeof(pid_t)); goto error; } *dp_first_pid = getpid(); shutdownx = shm_malloc(sizeof(int)); if (!shutdownx){ LOG_NO_MEM("shm",sizeof(int)); goto error; } *shutdownx = 0; shutdownx_lock = lock_alloc(); if (!shutdownx_lock){ LOG_NO_MEM("shm",sizeof(gen_lock_t)); goto error; } shutdownx_lock = lock_init(shutdownx_lock); handlers_lock = lock_alloc(); if (!handlers_lock){ LOG_NO_MEM("shm",sizeof(gen_lock_t)); goto error; } handlers_lock = lock_init(handlers_lock); handlers = shm_malloc(sizeof(handler_list)); if (!handlers){ LOG_NO_MEM("shm",sizeof(handler_list)); goto error; } handlers->head=0; handlers->tail=0; /* init the pid list */ pid_list = shm_malloc(sizeof(pid_list_head_t)); pid_list_lock = lock_alloc(); pid_list_lock = lock_init(pid_list_lock); /* init shared mem pointers before forking */ timer_cdp_init(); worker_init(); /* init the peer manager */ peer_manager_init(config); /* init the msg_handler */ //msg_timer_init(); /* init the session */ if (!session_init()) goto error; #ifdef CDP_FOR_SER /* init diameter transactions */ trans_init(); /* add callback for messages - used to implement the API */ cb_add(api_callback,0); #endif /*********** Added by Vitalis to initialize the transactions **********/ /* init diameter transactions */ trans_init(); /* add callback for messages - used to implement the API */ cb_add(api_callback,0); /*******End of addition ***********/ return 1; error: if (shutdownx) shm_free(shutdownx); if (config) free_dp_config(config); i = pid_list->head; while(i){ j = i->next; shm_free(i); i = j; } shm_free(pid_list); lock_get(pid_list_lock); lock_destroy(pid_list_lock); lock_dealloc((void*)pid_list_lock); return 0; }
/**@brief Function for application main entry. */ int main(void) { uint32_t err_code; bool erase_bonds; // Initialize. gpio_init(); // TODO: Measure battery nrf_gpio_pin_set(LED_1); err_code = NRF_LOG_INIT(); APP_ERROR_CHECK(err_code); twi_init(); sensors_init(&m_app_twi, sensors_callback); timers_init(); buttons_leds_init(); // erase_bonds = false; ble_stack_init(); detect_erase_bond_pressed(&erase_bonds); // bool button; // err_code = app_button_is_pushed(0, &button); // APP_ERROR_CHECK(err_code); // uint8_t count = 0; // while (button) { // nrf_delay_ms(100); // count++; // if (count > 20) { // erase_bonds = true; // NRF_LOG_DEBUG("Erasing bonds!\r\n"); // break; // } // err_code = app_button_is_pushed(0, &button); // APP_ERROR_CHECK(err_code); // } // while (button) { // nrf_gpio_pin_clear(LED_1); // nrf_delay_ms(200); // nrf_gpio_pin_set(LED_1); // nrf_delay_ms(200); // err_code = app_button_is_pushed(0, &button); // APP_ERROR_CHECK(err_code); // } // peer_manager_init(erase_bonds); gap_params_init(); advertising_init(); services_init(); conn_params_init(); // radio_notification_init(); nrf_gpio_pin_clear(LED_1); // Start execution. application_timers_start(); advertising_start(); // sensors_measure(); sensors_timers_init(); sensors_timers_start(); // Enter main loop. for (;;) { power_manage(); } }