home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / main / test.c < prev    next >
C/C++ Source or Header  |  1998-06-08  |  4KB  |  145 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /* test.c */
  14.  
  15. #include <stdio.h>
  16. #include <math.h>
  17. #include "imath1.h"
  18. #include "vector1.h"
  19. #include "convert1.h"
  20. #include "tracker.h"
  21. #include "tcal.h"
  22.  
  23. void main(int argc,char ** argv) {
  24. TrackerData td;
  25. TrackerStatus ts;
  26.   
  27.   ts = initTracker(&td,TP_COM1,9600,timerSecs(2));
  28.   printf("%s.\n",trackerInfo(ts));
  29.   if (ts != TS_OK) {
  30.     closeTracker(&td);
  31.     exit(0);
  32.   } // if
  33.  
  34.   ts = sendTrackerCMD(&td,"!M1,P,B\r",timerSecs(2));
  35.   if (ts != TS_OK) {
  36.     printf("%s.\n",trackerInfo(ts));
  37.     closeTracker(&td);
  38.     exit(0);
  39.   } // if
  40.  
  41. #if 0
  42. #if 0
  43.   ts = readTrackerOffsets(&td);
  44.   if (ts != TS_OK) {
  45.     printf("%s.\n",trackerInfo(ts));
  46.     closeTracker(&td);
  47.     exit(0);
  48.   } // if
  49.  
  50.   ts = readTrackerGains(&td);
  51.   if (ts != TS_OK) {
  52.     printf("%s.\n",trackerInfo(ts));
  53.     closeTracker(&td);
  54.     exit(0);
  55.   } // if
  56.  
  57.   ts = readTrackerFilters(&td);
  58.   if (ts != TS_OK) {
  59.     printf("%s.\n",trackerInfo(ts));
  60.     closeTracker(&td);
  61.     exit(0);
  62.   } // if
  63.  
  64.   printf("Offsets: x %5d y %5d z %5d p %5d r %5d\n",
  65.          td.magOff.x,td.magOff.y,td.magOff.z,td.grvOff.x,td.grvOff.y);
  66.  
  67.   printf("Gains:   x %5d y %5d z %5d p %5d r %5d\n",
  68.          td.magGain.x,td.magGain.y,td.magGain.z,td.grvGain.x,td.grvGain.y);
  69.  
  70.   printf("Filters: x %5d y %5d z %5d p %5d r %5d\n",
  71.          td.magFilt.x,td.magFilt.y,td.magFilt.z,td.grvFilt.x,td.grvFilt.y);
  72.  
  73. #else
  74.   ts = readTrackerAllVars(&td);
  75.   if (ts != TS_OK) {
  76.     printf("%s.\n",trackerInfo(ts));
  77.     closeTracker(&td);
  78.     exit(0);
  79.   } // if
  80.   printf("1 %s\n %s\n %s\n",getOffsetsStr(&td),getGainsStr(&td),getFiltersStr(&td));
  81.  
  82. #if 1
  83.   td.magOff.x = atoi(argv[1]);
  84.   ts = writeTrackerOffset(&td,TA_X);
  85.   if (ts != TS_OK) {
  86.     printf("Write: %s.\n",trackerInfo(ts));
  87.     closeTracker(&td);
  88.     exit(0);
  89.   } // if
  90. #endif  
  91.  
  92.   ts = readTrackerAllVars(&td);
  93.   if (ts != TS_OK) {
  94.     printf("%s.\n",trackerInfo(ts));
  95.     closeTracker(&td);
  96.     exit(0);
  97.   } // if
  98.  
  99.   printf("2 %s\n %s\n %s\n",getOffsetsStr(&td),getGainsStr(&td),getFiltersStr(&td));
  100.  
  101. #endif
  102.  
  103.  
  104.   printf("Press a key"); fflush(stdout);
  105.  
  106.   if (getch() == 'q') {
  107.     closeTracker(&td);
  108.     exit(0);
  109.   } // if
  110. #endif
  111.  
  112.   requestTrackerData(&td);
  113.   while (1) {
  114.     float y,p,p2,r;
  115.     if (kbhit() && getch() == 'q') break;
  116. //delayTime(10);    
  117.     ts = readTracker(&td,timerSecs(1));
  118.     if (ts != TS_OK) {
  119.       printf("\n%s.\n",trackerInfo(ts));
  120. //      closeTracker(&td);
  121. //      exit(0);
  122.     } // if
  123.     requestTrackerData(&td);
  124.  
  125.     y = TOFLOAT(td.euler.y);
  126.     p = TOFLOAT(td.euler.x);
  127.     r = TOFLOAT(td.euler.z);
  128.     
  129.     p2 = compAngle(p);
  130.     
  131. //    printf("x %5d y %5d z %5d y %4.2f p %4.2f p2 %4.2f r %4.2f\n",
  132. //      td.magnetic.x,td.magnetic.y,td.magnetic.z,y,p,p2,r);
  133.     printf("x %6d y %6d z %6d y %6.2f p %6.2f r %6.2f\n",
  134.       td.magnetic.x,td.magnetic.y,td.magnetic.z,y,p,r);
  135.   
  136.   
  137.   } // while
  138.  
  139.   closeTracker(&td);
  140.  
  141. } // main
  142.  
  143. /* test.c */
  144.  
  145.