void process_output_command(void) { uint8_t input_bytes[16]; // Process all 16 data bytes (6 bits of data per byte, 96 bits of data total) for (int i = 0; i < 16; i++) { if (! BYTE_IS_DATA(rs485_peek())) return; input_bytes[i] = rs485_getc(); } output_update(input_bytes); }
/** Main loop. */ static void main_loop (void) { main_timer[3] = timer_read (); /* Compute absolute position. */ aux_pos_update (); main_timer[4] = timer_read (); /* Compute trajectory. */ aux_traj_update (); /* Prepare control system. */ cs_update_prepare (); main_timer[5] = timer_read (); /* Wait for next cycle. */ timer_wait (); /* Encoder update. */ encoder_update (); main_timer[0] = timer_read (); /* Control system update. */ cs_update (); main_timer[1] = timer_read (); /* Pwm setup. */ output_update (); main_timer[2] = timer_read (); /* Sequences. */ seq_update (&seq_aux[0], &cs_aux[0].state); seq_update (&seq_aux[1], &cs_aux[1].state); /* Stats. */ if (main_sequence_ack && (seq_aux[0].ack != seq_aux[0].finish || seq_aux[1].ack != seq_aux[1].finish) && !--main_sequence_ack_cpt) { //XXX here proto_send2b ('A', seq_aux[0].finish, seq_aux[1].finish); main_sequence_ack_cpt = main_sequence_ack; } if (main_stat_counter && !--main_stat_counter_cpt) { proto_send2w ('C', encoder_aux[0].cur, encoder_aux[1].cur); main_stat_counter_cpt = main_stat_counter; } if (main_stat_aux_pos && !--main_stat_aux_pos_cpt) { proto_send2w ('Y', aux[0].pos, aux[1].pos); main_stat_aux_pos_cpt = main_stat_aux_pos; } if (main_stat_speed && !--main_stat_speed_cpt) { proto_send2w ('S', cs_aux[0].speed.cur_f >> 8, cs_aux[1].speed.cur_f >> 8); main_stat_speed_cpt = main_stat_speed; }
void input_filters_and_outputs_update(void) { conditional_filter_update(get_filter_by_name((char*)"in_saccade_translated_filter")); if(get_output_by_name((char*)"in_saccade_current_filtered_out")) output_update(get_output_by_name((char*)"in_saccade_current_filtered_out")); conditional_filter_update(get_filter_by_name((char*)"in_saccade_translated_scaled_filter")); if(get_output_by_name((char*)"in_saccade_translated_scaled_out")) output_update(get_output_by_name((char*)"in_saccade_translated_scaled_out")); conditional_filter_update(get_filter_by_name((char*)"in_saccade_translated_scaled_gaussian_filter")); if(get_output_by_name((char*)"in_saccade_translated_scaled_gaussian_out")) output_update(get_output_by_name((char*)"in_saccade_translated_scaled_gaussian_out")); conditional_filter_update(get_filter_by_name((char*)"in_saccade_trained_log_polar_filter")); if(get_output_by_name((char*)"in_saccade_trained_log_polar_out")) output_update(get_output_by_name((char*)"in_saccade_trained_log_polar_out")); }
void input_generator (INPUT_DESC *input, int status) { FILTER_DESC *filter; // Inicializacao executada apenas uma vez por janela if (input->win == 0) { init_face_recog(input); #ifdef NO_INTERFACE input->win = 1; #endif } else { if (status == MOVE) { if (input->wxd < 0) GetNewFace (input, DIRECTION_REWIND); else if (input->wxd >= IMAGE_WIDTH) GetNewFace (input, DIRECTION_FORWARD); // output_update(&out_face_recog_lp); filter = get_filter_by_output(out_face_recog_lp.neuron_layer); filter_update(filter); output_update(&out_face_recog_lp); filter = get_filter_by_output(out_face_recog_lp_f.neuron_layer); filter_update(filter); output_update(&out_face_recog_lp_f); #ifndef NO_INTERFACE glutSetWindow (input->win); input_display (); #endif } } }
void input_generator(INPUT_DESC *input, int status) { static int flag = 0; if (flag == 0) { init_character_input(input); flag = 1; } if (status == MOVE) { if (input->wx >= 0) get_new_char(input, 1); else get_new_char(input, -1); all_filters_update(); output_update(&character_gaussian_out); } }
void input_generator (INPUT_DESC *input, int status) { // Inicializacao executada apenas uma vez por janela if (input->win == 0) { init_class_cnae(input); } else { if (status == MOVE) { if (input->wxd < 0) GetNewDocument (input, DIRECTION_REWIND); else if (input->wxd >= IN_WIDTH) /*BUG => BEFORE: IMAGE_WIDTH, NOW: IN_WIDTH */ GetNewDocument (input, DIRECTION_FORWARD); output_update(&nl_class_cnae_out); glutSetWindow (input->win); input_display (); } } }
void input_generator (INPUT_DESC *input, int status) { FILTER_DESC *filter; // Inicializacao executada apenas uma vez por janela if (input->win == 0) { init_face_recog(input); } else { if (status == MOVE) { if (input->wxd < 0) GetNewFace (input, DIRECTION_REWIND); else if (input->wxd >= IMAGE_WIDTH) GetNewFace (input, DIRECTION_FORWARD); LOG_POLAR_SCALE_FACTOR = sqrtf ((float) ((g_nLeftEyeX - g_nRightEyeX) * (g_nLeftEyeX - g_nRightEyeX) + (g_nLeftEyeY - g_nRightEyeY) * (g_nLeftEyeY - g_nRightEyeY))) / (EYE_BASELINE / FOV_HORIZONTAL * input->neuron_layer->dimentions.x); LOG_POLAR_THETA_CORRECTION = (((g_nLeftEyeX + g_nRightEyeX) / 2 - input->wxd) != 0) ? -atanf ((float) ((g_nLeftEyeX + g_nRightEyeX) / 2 - input->wxd) / (float) ((g_nLeftEyeY + g_nRightEyeY) / 2 - input->wyd)) : 0.0; printf ("LOG_POLAR_SCALE_FACTOR = %f [], LOG_POLAR_THETA_CORRECTION = %f [deg]\n", LOG_POLAR_SCALE_FACTOR, 180.0f / M_PI * LOG_POLAR_THETA_CORRECTION); switch (g_nFacePart) { /*case EYE: { filter = get_filter_by_output(out_eye_v1.neuron_layer); filter_update(filter); output_update(&out_eye_v1); filter = get_filter_by_output(out_eye_h1.neuron_layer); filter_update(filter); output_update(&out_eye_h1); } break;*/ case NOSE: { filter = get_filter_by_output(out_nose_v1.neuron_layer); filter_update(filter); output_update(&out_nose_v1); filter = get_filter_by_output(out_nose_h1.neuron_layer); filter_update(filter); output_update(&out_nose_h1); } break; /*case MOUTH: { filter = get_filter_by_output(out_mouth_v1.neuron_layer); filter_update(filter); output_update(&out_mouth_v1); filter = get_filter_by_output(out_mouth_h1.neuron_layer); filter_update(filter); output_update(&out_mouth_h1); } break;*/ /*case VIEW_LOG_POLAR: { filter = get_filter_by_output(out_face_recog_lp.neuron_layer); filter_update(filter); output_update(&out_face_recog_lp); } break;*/ } glutSetWindow (input->win); input_display (); } } }