Exemple #1
0
static void finish(void)
{
    // back to idle
    cc110x_strobe(RF_SIDLE);
    radio_state = RADIO_IDLE;

    restore_conf();

    /* Have to put radio back to WOR/RX if old radio state
     * was WOR/RX, otherwise no action is necessary */
    if ((old_radio_state == RADIO_WOR) || (old_radio_state == RADIO_RX)) {
        cc110x_switch_to_rx();
    }

    radio_release();
    // restoreIRQ(cpsr);
}
Exemple #2
0
static void kcd(pp3d_rob protein, int iteraciones, double tpos, double *initial){
int  j, ncol;
int conf_in_col;
double tcol,tinit; 
double inicio,fin, aux, tiempo,averagecol;
int col_mode_to_be_set;
//printf ("proteina %s, escala: %1.6f , iteraciones %d\n", protein->name, escala, iteraciones);

ChronoOn();
ChronoTimes(&inicio, &aux);
				col_mode_to_be_set = p3d_col_mode_kcd;
	      set_DO_KCD_GJK(TRUE);
				p3d_filter_switch_filter_mechanism(FALSE);
				p3d_col_set_mode(col_mode_to_be_set);
  			p3d_col_start(col_mode_to_be_set);
ChronoTimes(&fin, &aux);	
tinit= fin - inicio;
printf("inicializacion:  %4.4f segundos\n", tinit);

			
ChronoTimes(&inicio, &aux);
conf_in_col=averagecol=0;
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	p3d_col_test();
	//kcd_robot_collides_itself(0 , JUST_BOOL);
	ncol= p3d_col_number();
	if (ncol) conf_in_col++;
	averagecol+= ncol;
	//printf("numero de colisiones es %d \n", ncol);
	}
ChronoTimes(&fin, &aux);
ChronoOff();
tiempo= fin - inicio;
tcol= tiempo - tpos;
averagecol= averagecol / iteraciones;
printf("kcd\n");
printf("%8s %7s %7s %7s %31s\n","col_conf","ncol","tinit","tpos","tcol");
printf(" %7d %7.2f %7.2f %7.2f %31.2f\n", conf_in_col, averagecol, tinit, tpos, tcol);
restore_conf(initial,protein->njoints);
}
Exemple #3
0
static double sistematica2(pp3d_rob protein, double scale,
	int iteraciones, double *initial){
int j,njoints=protein->njoints;
int conf_in_col; 
double inicio,fin, aux, tiempo,averagecol,usual_averagecol,averagecol0;
double tinit,tpos,tposzig,trebuild,tprep,tlongdist,tcol,tcolzig,trebuilt_percent0;
Robot_structure *rob;

p3d_init_random_seed(0);
printf ("numero de joints: %d\n", njoints);
printf ("proteina %s, iteraciones %d, escala %4.3f\n", protein->name, iteraciones,escala_cont_pos);
/*for (i=0;i<njoints;i++){
 printf("%s,%2.2f, %2.2f\n ", protein->joints[i]->name,protein->joints[i]->vmin,protein->joints[i]->vmax);
 } */

charlatan=0;

ChronoOn();
ChronoTimes(&inicio, &aux);
bio_set_col_mode(NORMAL_BIOCOL_MODE);
#ifdef HYDROGEN_BOND
bio_init_molecules(0.8);
printf("compilado con HYDROGEN_BOND", tpos);
#else				
bio_init_molecules(scale);
#endif
rob=bcd_robots[0];
ChronoTimes(&fin, &aux);
tinit= fin - inicio;
printf("inicializacion:  %4.4f segundos\n", tinit);


/**************** unuseful action; only to "inject fuel to the machine" ***********/
/*
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	set_n_collisions_to_zero();
	rebuild(rob);
	preprogr_collisions(rob);
	sup_collision(rob->superroot, rob->superroot);
	}
restore_conf(initial,njoints); */
/****************** end of unuseful action ******************************** */

			/*tpos */
ChronoTimes(&inicio, &aux);
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	}
ChronoTimes(&fin, &aux);
tpos= fin - inicio;
printf("pos:  %4.4f segundos\n", tpos);
restore_conf(initial,njoints);
//goto abrevia;
			/*trbuild */
ChronoTimes(&inicio, &aux);
averagecol=0;
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	set_n_collisions_to_zero();
	rebuild(rob);
	}
ChronoTimes(&fin, &aux);
//ChronoOff();
tiempo= fin - inicio;
averagecol= averagecol / iteraciones;
trebuild= tiempo - tpos;
printf("rebuild:  %4.4f segundos \n", trebuild);
restore_conf(initial,njoints);

			/* tshordistance */
ChronoTimes(&inicio, &aux);
averagecol=0;
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	set_n_collisions_to_zero();
	rebuild(rob);
	preprogr_collisions(rob);
	averagecol+= get_n_collisions();
//	printf("numero de colisiones es %d \n", get_n_collisions());
	}
ChronoTimes(&fin, &aux);
tiempo= fin - inicio;
averagecol= averagecol / iteraciones;
tprep= tiempo - (tpos + trebuild);
printf("preprog:  %4.4f segundos,  %3.2f colisiones\n", tprep, averagecol);
restore_conf(initial,njoints);

abrevia:
		/* tlongdistance */
ChronoTimes(&inicio, &aux);
conf_in_col=averagecol=0;
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	set_n_collisions_to_zero();
	rebuild(rob);
	preprogr_collisions(rob);
	my_robot_autocollision(rob);
	if (get_n_collisions()) conf_in_col++;
	averagecol+= get_n_collisions();
//	printf("numero de colisiones es %d \n", get_n_collisions());
	}
ChronoTimes(&fin, &aux);
tiempo= fin - inicio;
averagecol= averagecol / iteraciones;
tlongdist= tiempo - (tpos + trebuild + tprep);
printf("sup:  %4.4f segundos, conf. en colision %d,  %3.2f colisiones\n", 
			tlongdist,conf_in_col, averagecol);
restore_conf(initial,njoints);

tcol= tiempo - tpos;
usual_averagecol=averagecol;


//goto t0;
		/* tposzig */

ChronoTimes(&inicio, &aux);
for (j=0;j<iteraciones;j++){ 
	zigzag_change_pos(protein);
	}
ChronoTimes(&fin, &aux);
tposzig= fin - inicio;
printf("poszig:  %4.4f segundos\n", tposzig);
restore_conf(initial,njoints);

		/* tzig */

ChronoTimes(&inicio, &aux);
averagecol=0;
for (j=0;j<iteraciones;j++){ 
	zigzag_change_pos(protein);
	set_n_collisions_to_zero();
	rebuild(rob);
	preprogr_collisions(rob);
	my_robot_autocollision(rob);
	averagecol+= get_n_collisions();
	}
ChronoTimes(&fin, &aux);
tiempo= fin - inicio;
printf("tiempo total escala pequegna %5.2f\n", tiempo);
averagecol= averagecol / iteraciones;
tcolzig= tiempo - tposzig;
restore_conf(initial,njoints);

averagecol0= averagecol;
t0:
		/* t0 */
set_n_collisions_to_zero();
rebuild(rob);
preprogr_collisions(rob);
my_robot_autocollision(rob);
if (get_n_collisions() != averagecol0) printf("\n         NO HAY LAS MISMAS COLISIONES!!!\n\n");
printf("colisiones en posicion inicial %d\n", get_n_collisions());
//goto acaba;
ChronoTimes(&inicio, &aux);
for (j=0;j<iteraciones;j++){ 
	set_n_collisions_to_zero();
	//rebuild(rob);
	preprogr_collisions(rob);
	my_robot_autocollision(rob);
	}
ChronoTimes(&fin, &aux);
tiempo= fin - inicio;
printf("tiempo total escala 0:  %5.2f\n", tiempo);

trebuilt_percent0= (100 *(tcolzig - tiempo ))/ tcolzig;
restore_conf(initial,njoints);

acaba:
//free_robot(rob);

printf("bio\n");
printf("%8s %7s %7s %7s %7s %7s %7s %7s %7s %7s\n",	"col_conf", "ncol", "tinit", "tpos", "tbuild", "tshort", "tlong",
 "tcol", "ncol0", "%build0");
printf(" %7d %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.2f %7.1f %7.2f\n",
 conf_in_col,usual_averagecol,tinit,tpos,trebuild,tprep,tlongdist,tcol,averagecol0,trebuilt_percent0);


		/* tiempo surf_distance */
bio_set_col_mode(SURFACE_DISTANCE_BIOCOL_MODE);
bio_set_surface_d(0.8);
ChronoTimes(&inicio, &aux);
conf_in_col=averagecol=0;
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	set_n_collisions_to_zero();
	rebuild(rob);
	preprogr_collisions(rob);
	my_robot_autocollision(rob);
	if (get_n_collisions()) conf_in_col++;
	averagecol+= get_n_collisions();
//	printf("numero de colisiones es %d \n", get_n_collisions());
	}
ChronoTimes(&fin, &aux);
tiempo= fin - inicio;
averagecol= averagecol / iteraciones;
printf("SURF_DISTANCE:  %4.4f segundos,   conf. en colision %d,  %3.2f colisiones\n", 
			tiempo - tpos, conf_in_col, averagecol);
restore_conf(initial,njoints);

		/* tiempo minimum_surf_distance */
bio_set_col_mode(MINIMUM_DISTANCE_BIOCOL_MODE);
ChronoTimes(&inicio, &aux);
conf_in_col=averagecol=0;
for (j=0;j<iteraciones;j++){ 
	random_pos(protein);
	set_n_collisions_to_zero();
	set_minimum_Sdistance_to_max();
	rebuild(rob);
	preprogr_collisions(rob);
	my_robot_autocollision(rob);
	if (get_n_collisions()) conf_in_col++;
	averagecol+= get_n_collisions();
//	printf("numero de colisiones es %d \n", get_n_collisions());
	}
ChronoTimes(&fin, &aux);
tiempo= fin - inicio;
averagecol= averagecol / iteraciones;
printf("MINIMUM_DISTANCE:  %4.4f segundos,   conf. en colision %d,  %3.2f colisiones\n", 
			tiempo - tpos, conf_in_col, averagecol);
restore_conf(initial,njoints);

bio_set_col_mode(NORMAL_BIOCOL_MODE);
ChronoOff();
return tpos;
}