/*--------------------------------------------------------------------------------------------------------------------- Updates the AT command client by flushing pending commands. ---------------------------------------------------------------------------------------------------------------------*/ C_RESULT ardrone_tool_update() { int delta; C_RESULT res = C_OK; // Update subsystems & custom tool if( need_update ) { ardrone_timer_update(&ardrone_tool_timer); ardrone_tool_input_update(); res = ardrone_tool_update_custom(); if( send_com_watchdog == TRUE ) { ardrone_at_reset_com_watchdog(); send_com_watchdog = FALSE; } // Send all pushed messages ardrone_at_send(); need_update = FALSE; } delta = ardrone_timer_delta_ms(&ardrone_tool_timer); if( delta >= ArdroneToolRefreshTimeInMs) { // Render frame res = ardrone_tool_display_custom(); need_update = TRUE; } else { Sleep((ArdroneToolRefreshTimeInMs - delta)); } return res; }
C_RESULT ardrone_tool_update() { int delta; C_RESULT res = C_OK; //C_RESULT 是定义的宏 其对应的是int类型,C_OK也是,其对应的值是0 if( need_update ) { ardrone_timer_update(&ardrone_tool_timer);//更新时间,为什么要这么处理 ardrone_control(); res = ardrone_tool_update_custom(); if( send_com_watchdog == TRUE ) { ardrone_at_reset_com_watchdog(); send_com_watchdog = FALSE; }//watchdog看门狗防止程序出现死循环,不受控制 ardrone_at_send(); need_update = FALSE; } delta = ardrone_timer_delta_ms(&ardrone_tool_timer); if( delta >= ArdroneToolRefreshTimeInMs) { res = ardrone_tool_display_custom(); need_update = TRUE; } else { Sleep((ArdroneToolRefreshTimeInMs - delta)); } return res; }