Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #include <math.h>
00022 #include <stdio.h>
00023 #include <unistd.h>
00024 #include <ypspur.h>
00025 
00026 int main(int argc, char *argv[])
00027 {
00028   double x, y, theta;
00029 
00030   
00031   setvbuf(stdout, 0, _IONBF, 0);
00032 
00033   
00034   if (Spur_init() < 0)
00035   {
00036     fprintf(stderr, "ERROR : cannot open spur.\n");
00037     return -1;
00038   }
00039 
00040   Spur_set_vel(0.2);
00041   Spur_set_accel(1.0);
00042   Spur_set_angvel(M_PI / 2.0);
00043   Spur_set_angaccel(M_PI / 2.0);
00044 
00045   Spur_set_pos_GL(0, 0, 0);
00046   printf("line\n");
00047   
00048   Spur_stop_line_GL(1.0, 0, 0);
00049   while (!Spur_over_line_GL(1.0 - 0.005, 0.0, 0.0))
00050     usleep(100000);
00051 
00052   
00053   printf("spin\n");
00054   Spur_spin_GL(M_PI / 2);
00055   while (!Spur_near_ang_GL(M_PI / 2, M_PI / 18.0))
00056     usleep(100000);
00057 
00058   
00059   Spur_set_vel(0.3);
00060   Spur_set_accel(1.0);
00061   Spur_set_angvel(M_PI);
00062   Spur_set_angaccel(M_PI);
00063 
00064   
00065   Spur_stop_line_GL(1.0, 0.1, M_PI / 2.0);
00066   while (!Spur_over_line_GL(1.0, 0.1 - 0.005, M_PI / 2.0))
00067     usleep(100000);
00068 
00069   
00070   printf("spin\n");
00071   Spur_spin_GL(M_PI);
00072   while (!Spur_near_ang_GL(M_PI, M_PI / 18.0))
00073     usleep(100000);
00074 
00075   
00076   printf("line\n");
00077   Spur_stop_line_GL(0, 0.1, M_PI);
00078   while (!Spur_over_line_GL(0.0 + 0.005, 0.1, M_PI))
00079     usleep(100000);
00080 
00081   
00082   printf("spin\n");
00083   Spur_spin_GL(-M_PI / 2.0);
00084   while (!Spur_near_ang_GL(-M_PI / 2.0, M_PI / 18.0))
00085     usleep(100000);
00086 
00087   
00088   printf("line\n");
00089   Spur_stop_line_GL(0, 0.0, -M_PI / 2.0);
00090   while (!Spur_over_line_GL(0.0, 0.0 + 0.005, -M_PI / 2.0))
00091     usleep(100000);
00092 
00093   
00094   printf("spin\n");
00095   Spur_spin_GL(0);
00096   while (!Spur_near_ang_GL(0, M_PI / 18.0))
00097     usleep(100000);
00098 
00099   Spur_stop();
00100   usleep(4000000);
00101   Spur_free();
00102   printf("Hit Ctrl-C to exit.\n");
00103   while (1)
00104   {
00105     Spur_get_pos_GL(&x, &y, &theta);
00106     printf("%f %f %f\n", x, y, theta * 180.0 / M_PI);
00107     usleep(1000000);
00108   }
00109 
00110   return 0;
00111 }