void led_blink(int led_no, int on_duty_cycle, int off_duty_cycle) { int err, idx; idx = decide_led_array_index(led_no); if (idx == -WM_FAIL) return; if (os_timer_is_active(&led_data[idx].timer) == WM_SUCCESS) { err = os_timer_delete(&led_data[idx].timer); if (err != WM_SUCCESS) { return; } } led_data[idx].on_duty_cycle = on_duty_cycle; led_data[idx].off_duty_cycle = off_duty_cycle; board_led_on(led_no); led_data[idx].curr_state = LED_ON; err = os_timer_create(&led_data[idx].timer, "led-timer", os_msec_to_ticks(led_data[idx].on_duty_cycle), led_cb, (void *)idx, OS_TIMER_ONE_SHOT, OS_TIMER_AUTO_ACTIVATE); if (err != WM_SUCCESS) { return; } }
void dcc_can_init(int devfd) { os_mutex_init(&dcc_mutex); mostacan_fd = devfd; DccLoop_Init(); dcc_timer = os_timer_create(&dcc_timer_callback, NULL, NULL); os_timer_start(dcc_timer, MSEC_TO_NSEC(100)); os_thread_create(NULL, "dcc_can_rx", 0, DCC_CAN_THREAD_CAN_STACK_SIZE, dcc_can_thread, NULL); }
void miio_app_thread(void* arg) { static bool has_sync_time = false; g_mum = mum_create(); //*****************************button init*******************************/ os_timer_create(&g_reset_prov_timer, "reset-prov-timer", os_msec_to_ticks(4000), reset_prov, NULL, OS_TIMER_ONE_SHOT, OS_TIMER_NO_ACTIVATE); button_frame_work_init(); register_button_callback(0, button_1_press_handle); if (WM_SUCCESS != os_semaphore_create(&btn_pressed_sem, "btn_pressed_sem")) { LOG_ERROR("btn_pressed_sem creation failed\r\n"); } else if (WM_SUCCESS != os_semaphore_get(&btn_pressed_sem, OS_WAIT_FOREVER)) { LOG_ERROR("first get btn_pressed_sem failed.\r\n"); } //******************************button init end*******************************************/ local_timer_init();//add by [email protected] miio_led_on(); LOG_INFO("miio_app_thread while loop start.\r\n"); #ifdef MIIO_COMMANDS_DEBUG while(!ot_api_is_online())api_os_tick_sleep(100); uart_wifi_debug_init(); #endif while (1) { if (WM_SUCCESS == os_semaphore_get(&btn_pressed_sem, OS_NO_WAIT)) { mum_set_property(g_mum,"button_pressed","\"wifi_rst\""); } if(has_sync_time)//only after sync time, we start check timer check_schedule_and_set_timer(); else if(otn_is_online()) has_sync_time = true; os_thread_sleep(os_msec_to_ticks(PERIOD_CHECK_BUTTON)); } local_timer_deinit();//add by [email protected] //*****************************button deinit*******************************/ mum_destroy(&g_mum); os_timer_delete(&g_reset_prov_timer); os_semaphore_delete(&btn_pressed_sem); //******************************button deinit end*******************************************/ }
static void __init um_timer_setup(void) { int err; err = request_irq(TIMER_IRQ, um_timer, IRQF_TIMER, "hr timer", NULL); if (err != 0) printk(KERN_ERR "register_timer : request_irq failed - " "errno = %d\n", -err); err = os_timer_create(NULL); if (err != 0) { printk(KERN_ERR "creation of timer failed - errno = %d\n", -err); return; } err = clocksource_register_hz(&timer_clocksource, NSEC_PER_SEC/TIMER_MULTIPLIER); if (err) { printk(KERN_ERR "clocksource_register_hz returned %d\n", err); return; } clockevents_register_device(&timer_clockevent); }
STATIC OPERATE_RET device_differ_init(VOID) { OPERATE_RET op_ret; // key process init op_ret = key_init(key_tbl,(CONST INT)CNTSOF(key_tbl),25); if(OPRT_OK != op_ret) { return op_ret; } STATIC TIMER_ID wfl_timer; // wf direct light timer init int ret; // create timer ret = os_timer_create(&wfl_timer, "wfl_timer", \ os_msec_to_ticks(300),\ wfl_timer_cb, NULL,\ OS_TIMER_PERIODIC, OS_TIMER_AUTO_ACTIVATE); if(ret != WM_SUCCESS) { return OPRT_CR_TIMER_ERR; } return OPRT_OK; }
/*********************************************************** * Function: gw_cntl_init * Input: * Output: * Return: ***********************************************************/ OPERATE_RET gw_cntl_init(VOID) { OPERATE_RET op_ret; op_ret = httpc_aes_init(); if(OPRT_OK != op_ret) { PR_ERR("op_ret:%d",op_ret); return op_ret; } op_ret = ws_db_init(); if(OPRT_OK != op_ret) { return op_ret; } memset(&gw_cntl,0,sizeof(gw_cntl)); memset(&gw_mutex,0,sizeof(gw_mutex)); // create mutex int ret; ret = os_mutex_create(&gw_mutex, "gw_mutex", 1); if(ret != WM_SUCCESS) { return OPRT_CR_MUTEX_ERR; } // create gw active timer ret = os_timer_create(&gw_actv_timer, "gw_actv_timer", os_msec_to_ticks(1000), &gw_actv_timer_cb, NULL, OS_TIMER_PERIODIC, OS_TIMER_NO_ACTIVATE); if (ret != WM_SUCCESS) { return OPRT_COM_ERROR; } PROD_IF_REC_S prod_if; #if 1 memset(&prod_if,0,sizeof(prod_if)); ws_db_get_prod_if(&prod_if); if(!prod_if.mac[0] || !prod_if.prod_idx[0]) { // un init set_gw_status(UN_INIT); return OPRT_OK; } #else strcpy(prod_if.mac,"112233445566"); strcpy(prod_if.prod_idx,"0da02001"); #endif op_ret = ws_db_get_gw_actv(&gw_cntl.active); if(OPRT_OK != op_ret) { memset(&gw_cntl.active,0,sizeof(gw_cntl.active)); ws_db_set_gw_actv(&gw_cntl.active); set_gw_status(UN_ACTIVE); }else { if(!gw_cntl.active.key[0] || !gw_cntl.active.uid_cnt) { // un active if(!gw_cntl.active.token[0]) { set_gw_status(UN_ACTIVE); }else { start_active_gateway(); } }else { set_gw_status(STAT_WORK); } } strcpy(gw_cntl.gw.sw_ver,GW_VER); #if 0 strcpy(gw_cntl.gw.name,GW_DEF_NAME); #else snprintf(gw_cntl.gw.name,sizeof(gw_cntl.gw.name),"%s-%s",GW_DEF_NAME,&prod_if.mac[8]); #endif snprintf(gw_cntl.gw.id,sizeof(gw_cntl.gw.id),"%s%s",prod_if.prod_idx,prod_if.mac); gw_cntl.gw.ability = GW_DEF_ABI; // create dev upload timer ret = os_timer_create(&dev_ul_timer, "dev_ul_timer", os_msec_to_ticks(600), &dev_ul_timer_cb, NULL, OS_TIMER_PERIODIC, OS_TIMER_NO_ACTIVATE); if (ret != WM_SUCCESS) { return OPRT_COM_ERROR; } return OPRT_OK; }