TRACKER.H 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. /* tracker.h */
  14. /* Created 12/12/94 */
  15. #ifndef TRACKER_H
  16. #define TRACKER_H
  17. typedef enum {TP_COM1,TP_COM2,TP_COM3,TP_COM4} TrackerPort;
  18. typedef enum {
  19. TS_OK,TS_NO_SERIAL,TS_NO_TRACKER,TS_TIMEOUT,
  20. TS_CHECKSUM,TS_HEADER,TS_WRITEVERIFY,TS_INVALID,TS_CMD_ERROR
  21. } TrackerStatus;
  22. typedef struct {
  23. void * sd; // Serial Data
  24. vec3 magnetic;
  25. vec2 gravimetric;
  26. vec3 euler;
  27. vec3 magOff;
  28. vec3 magGain;
  29. vec2 grvOff;
  30. vec2 grvGain;
  31. long magFilts;
  32. long grvFilts;
  33. } TrackerData;
  34. extern long debugTrackerIO;
  35. TrackerStatus initTracker(TrackerData * td,TrackerPort port,long comRate,long timeout);
  36. void closeTracker(TrackerData * td);
  37. TrackerStatus readPacket(TrackerData * td,char * data,long size,long timeout);
  38. TrackerStatus readTracker(TrackerData * td,long timeout);
  39. TrackerStatus readTrackerEuler(TrackerData * td,long timeout);
  40. void writeSerString(TrackerData * td,char * s);
  41. void requestTrackerData(TrackerData * td);
  42. char * trackerInfo(TrackerStatus ts);
  43. TrackerStatus resetTracker(TrackerData * td,long timeout);
  44. TrackerStatus sendTrackerCMD(TrackerData * td,char * cmd,long timeout);
  45. TrackerStatus getTrackerResponse(TrackerData * td,long timeout);
  46. #endif
  47. /* tracker.h */