Example #1
0
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);
 }
Example #2
0
/** 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
		}
	}	
}
Example #5
0
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 ();
		}
	}
}