Exemple #1
0
// script to trace an arc of radius rad until deg is reach
// NOTE: if the turn is not in the direction of deg, the arc won't end
void create_script_arc(int rad, int deg, int speed) { // rad in mm, degrees, vel in mm/sec
    int sangle, dangle;
    create_angle();
    sangle=gc_total_angle;
    dangle=sangle+deg;
    create_drive(rad,speed);
    if(deg>0){
        while(gc_total_angle<dangle)create_angle();
    }
    else{
        while(gc_total_angle>dangle)create_angle();
    }
    create_stop();
}
Exemple #2
0
// script to rotate in place through deg degrees
// deg > 0 turn CCW; deg < 0 turn CW
void create_script_turn(int deg, int speed) { // degrees, vel in mm/sec
    int sangle, dangle;
    create_angle();
    sangle=gc_total_angle;
    dangle=sangle+deg;
    if(deg>0){
        create_spin_CCW(speed);
        while(gc_total_angle<dangle)create_angle();
    }
    else{
        create_spin_CW(speed);
        while(gc_total_angle>dangle)create_angle();
    }
    create_stop();
}
/*
 * Class:     cbccore_low_Create
 * Method:    create_angle
 * Signature: ()I
 */
JNIEXPORT jint JNICALL Java_cbccore_low_Create_create_1angle(JNIEnv *env, jobject obj)
{
#ifdef CBC
    return create_angle();
#else
    printf("Java_cbccore_low_Create_create_1angle stub\n");
    return -1;
#endif
}
Exemple #4
0
//this function will update the values for many of the sensor globals above
//serial connection failure codes are
// -1:create_mode, -2:create_wall, -3:create_buttons, -4:create_bumpdrop, -5:create_cliffs,
// -6:create_angle, -7:create_distance, -8:create_velocity, -9:create_read_IR 
int create_sensor_update()
{
	int r=0; // if serial connection times out, bit positions give the functions where it occurred
	r=r-2*create_wall();
	r=r-4*create_buttons();
	r=r-8*create_bumpdrop();
	r=r-16*create_cliffs();
	r=r-32*create_angle();
	r=r-64*create_distance();
	r=r-128*create_velocity();
	return(r);
}
Exemple #5
0
//this function will update the values for all of the sensor globals above
//serial connection failure codes are
// -1:create_mode, -2:create_wall, -3:create_buttons, -4:create_bumpdrop, -5:create_cliffs,
// -6:create_angle, -7:create_distance, -8:create_velocity, -9:create_read_IR 
int create_sensor_update()
{
    float diff_angle;
    //defer();
    create_angle();
     //create_bumpdrop();
    gc_lbump=robot.lcbump;
    gc_rbump=robot.rcbump;
    //create_distance();
    gc_distance=gc_distance+(int)((robot.lenc+robot.renc)/2L);
    robot.lenc=0;
    robot.renc=0;
	gc_play_button=robot.play;
	gc_advance_button = robot.adv;
    return(0);
}