PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
ATC3DG.h
Go to the documentation of this file.
1 //*****************************************************************************//
2 //*****************************************************************************//
3 //
4 // Source: C:/PCI driver/msdev6/ATC3DG/rcs/ATC3DG.h
5 //
6 // Author: crobertson
7 //
8 // Revision: 1.6 (required for 1.31.6.13 and higher to be able to use the
9 // extra command functionality
10 //
11 // Date: 2002/02/19 13:27:58
12 //
13 // COPYRIGHT: COPYRIGHT ASCENSION TECHNOLOGY CORPORATION - 2000, 2001
14 //
15 //*****************************************************************************//
16 //*****************************************************************************//
17 //
18 // DESCRIPTION: ATC3DG3.h
19 //
20 // Header file containing function prototypes for the BIRD system API
21 // Also contains definitions of constants and structures required.
22 //
23 //*****************************************************************************//
24 //*****************************************************************************//
25 
26 
27 #ifndef ATC3DG_H // JPB bumper to prevent multiple-inclusion
28 #define ATC3DG_H
29 
30 
31 //#define CPLUSPLUS
32 
33 #ifdef LINUX
34 #define ATC3DG_API
35 #else
36 #ifdef DEF_FILE
37  #ifdef ATC3DG2_EXPORTS
38  #define ATC3DG_API
39  #else
40  #define ATC3DG_API
41  #endif
42 #else
43  #ifdef CPLUSPLUS
44  #ifdef ATC3DG2_EXPORTS
45  #define ATC3DG_API __declspec(dllexport)
46  #else
47  #define ATC3DG_API __declspec(dllimport)
48  #endif
49  #else
50  #ifdef ATC3DG2_EXPORTS
51  #define ATC3DG_API extern "C" __declspec(dllexport)
52  #else
53  #define ATC3DG_API extern "C" __declspec(dllimport)
54  #endif
55  #endif
56 #endif
57 #endif
58 
59 /*****************************************************************************
60  ENUMERATED CONSTANTS
61  *****************************************************************************/
62 
63 //*****************************************************************************
64 //
65 // ERROR MESSAGE format is as follows:
66 // ===================================
67 //
68 // All commands return a 32-bit integer with the following bit definitions:
69 //
70 // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
71 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
72 // +-+-+-+-+-+-+-----------+-------+-------------------------------+
73 // |E|W|X|R|B|M| Reserved |Address| Code |
74 // +-+-+-+-+-+-+-----------+-------+-------------------------------+
75 //
76 // where
77 //
78 // E - indicates an ERROR
79 // (Operation either cannot or will not proceed as intended
80 // e.g. EEPROM error of some kind. Requires hardware reset
81 // of system and/or replacement of hardware)
82 // W - indicates a WARNING
83 // (Operation may proceed but remedial action needs to be taken
84 // e.g. Sensor has been removed. Fix by replacing Sensor)
85 // X - indicates Transmitter related message
86 // R - indicates Sensor related message
87 // (If neither X nor R is set then the message is a SYSTEM message)
88 // B - indicates message originated in the BIRD hardware
89 // M - indicates there are more messages pending (no longer used)
90 //
91 // Address gives the index number of the device generating the message
92 // (Driver and system messages always have address 0)
93 //
94 // Code - is the status code as enumerated in BIRD_ERROR_CODES
95 //
96 //*****************************************************************************
98 {
99  // ERROR CODE DISPOSITION
100  // | (Some error codes have been retired.
101  // | The column below describes which codes
102  // | have been retired and why. O = Obolete,
103  // V I = handled internally)
104  BIRD_ERROR_SUCCESS=0, //00 < > No error
105  BIRD_ERROR_PCB_HARDWARE_FAILURE, //01 < > indeterminate failure on PCB
106  BIRD_ERROR_TRANSMITTER_EEPROM_FAILURE, //02 <I> transmitter bad eeprom
107  BIRD_ERROR_SENSOR_SATURATION_START, //03 <I> sensor has gone into saturation
108  BIRD_ERROR_ATTACHED_DEVICE_FAILURE, //04 <O> either a sensor or transmitter reports bad
109  BIRD_ERROR_CONFIGURATION_DATA_FAILURE, //05 <O> device EEPROM detected but corrupt
110  BIRD_ERROR_ILLEGAL_COMMAND_PARAMETER, //06 < > illegal PARAMETER_TYPE passed to driver
111  BIRD_ERROR_PARAMETER_OUT_OF_RANGE, //07 < > PARAMETER_TYPE legal, but PARAMETER out of range
112  BIRD_ERROR_NO_RESPONSE, //08 <O> no response at all from target card firmware
113  BIRD_ERROR_COMMAND_TIME_OUT, //09 < > time out before response from target board
114  BIRD_ERROR_INCORRECT_PARAMETER_SIZE, //10 < > size of parameter passed is incorrect
115  BIRD_ERROR_INVALID_VENDOR_ID, //11 <O> driver started with invalid PCI vendor ID
116  BIRD_ERROR_OPENING_DRIVER, //12 < > couldn't start driver
117  BIRD_ERROR_INCORRECT_DRIVER_VERSION, //13 < > wrong driver version found
118  BIRD_ERROR_NO_DEVICES_FOUND, //14 < > no BIRDs were found anywhere
119  BIRD_ERROR_ACCESSING_PCI_CONFIG, //15 < > couldn't access BIRDs config space
120  BIRD_ERROR_INVALID_DEVICE_ID, //16 < > device ID out of range
121  BIRD_ERROR_FAILED_LOCKING_DEVICE, //17 < > couldn't lock driver
122  BIRD_ERROR_BOARD_MISSING_ITEMS, //18 < > config space items missing
123  BIRD_ERROR_NOTHING_ATTACHED, //19 <O> card found but no sensors or transmitters attached
124  BIRD_ERROR_SYSTEM_PROBLEM, //20 <O> non specific system problem
125  BIRD_ERROR_INVALID_SERIAL_NUMBER, //21 <O> serial number does not exist in system
126  BIRD_ERROR_DUPLICATE_SERIAL_NUMBER, //22 <O> 2 identical serial numbers passed in set command
127  BIRD_ERROR_FORMAT_NOT_SELECTED, //23 <O> data format not selected yet
128  BIRD_ERROR_COMMAND_NOT_IMPLEMENTED, //24 < > valid command, not implemented yet
129  BIRD_ERROR_INCORRECT_BOARD_DEFAULT, //25 < > incorrect response to reading parameter
130  BIRD_ERROR_INCORRECT_RESPONSE, //26 <O> response received, but data,values in error
131  BIRD_ERROR_NO_TRANSMITTER_RUNNING, //27 < > there is no transmitter running
132  BIRD_ERROR_INCORRECT_RECORD_SIZE, //28 < > data record size does not match data format size
133  BIRD_ERROR_TRANSMITTER_OVERCURRENT, //29 <I> transmitter over-current detected
134  BIRD_ERROR_TRANSMITTER_OPEN_CIRCUIT, //30 <I> transmitter open circuit or removed
135  BIRD_ERROR_SENSOR_EEPROM_FAILURE, //31 <I> sensor bad eeprom
136  BIRD_ERROR_SENSOR_DISCONNECTED, //32 <I> previously good sensor has been removed
137  BIRD_ERROR_SENSOR_REATTACHED, //33 <I> previously good sensor has been reattached
138  BIRD_ERROR_NEW_SENSOR_ATTACHED, //34 <O> new sensor attached
139  BIRD_ERROR_UNDOCUMENTED, //35 <I> undocumented error code received from bird
140  BIRD_ERROR_TRANSMITTER_REATTACHED, //36 <I> previously good transmitter has been reattached
141  BIRD_ERROR_WATCHDOG, //37 < > watchdog timeout
142  BIRD_ERROR_CPU_TIMEOUT_START, //38 <I> CPU ran out of time executing algorithm (start)
143  BIRD_ERROR_PCB_RAM_FAILURE, //39 <I> BIRD on-board RAM failure
144  BIRD_ERROR_INTERFACE, //40 <I> BIRD PCI interface error
145  BIRD_ERROR_PCB_EPROM_FAILURE, //41 <I> BIRD on-board EPROM failure
146  BIRD_ERROR_SYSTEM_STACK_OVERFLOW, //42 <I> BIRD program stack overrun
147  BIRD_ERROR_QUEUE_OVERRUN, //43 <I> BIRD error message queue overrun
148  BIRD_ERROR_PCB_EEPROM_FAILURE, //44 <I> PCB bad EEPROM
149  BIRD_ERROR_SENSOR_SATURATION_END, //45 <I> Sensor has gone out of saturation
150  BIRD_ERROR_NEW_TRANSMITTER_ATTACHED, //46 <O> new transmitter attached
151  BIRD_ERROR_SYSTEM_UNINITIALIZED, //47 < > InitializeBIRDSystem not called yet
152  BIRD_ERROR_12V_SUPPLY_FAILURE, //48 <I > 12V Power supply not within specification
153  BIRD_ERROR_CPU_TIMEOUT_END, //49 <I> CPU ran out of time executing algorithm (end)
154  BIRD_ERROR_INCORRECT_PLD, //50 < > PCB PLD not compatible with this API DLL
155  BIRD_ERROR_NO_TRANSMITTER_ATTACHED, //51 < > No transmitter attached to this ID
156  BIRD_ERROR_NO_SENSOR_ATTACHED, //52 < > No sensor attached to this ID
157 
158  // new error codes added 2/27/03
159  // (Version 1,31,5,01) multi-sensor, synchronized
160  BIRD_ERROR_SENSOR_BAD, //53 < > Non-specific hardware problem
161  BIRD_ERROR_SENSOR_SATURATED, //54 < > Sensor saturated error
162  BIRD_ERROR_CPU_TIMEOUT, //55 < > CPU unable to complete algorithm on current cycle
163  BIRD_ERROR_UNABLE_TO_CREATE_FILE, //56 < > Could not create and open file for saving setup
164  BIRD_ERROR_UNABLE_TO_OPEN_FILE, //57 < > Could not open file for restoring setup
165  BIRD_ERROR_MISSING_CONFIGURATION_ITEM, //58 < > Mandatory item missing from configuration file
166  BIRD_ERROR_MISMATCHED_DATA, //59 < > Data item in file does not match system value
167  BIRD_ERROR_CONFIG_INTERNAL, //60 < > Internal error in config file handler
168  BIRD_ERROR_UNRECOGNIZED_MODEL_STRING, //61 < > Board does not have a valid model string
169  BIRD_ERROR_INCORRECT_SENSOR, //62 < > Invalid sensor type attached to this board
170  BIRD_ERROR_INCORRECT_TRANSMITTER, //63 < > Invalid transmitter type attached to this board
171 
172  // new error code added 1/18/05
173  // (Version 1.31.5.22)
174  // multi-sensor,
175  // synchronized-fluxgate,
176  // integrating micro-sensor,
177  // flat panel transmitter
178  BIRD_ERROR_ALGORITHM_INITIALIZATION, //64 < > Flat panel algorithm initialization failed
179 
180  // new error code for multi-sync
181  BIRD_ERROR_LOST_CONNECTION, //65 < > USB connection has been lost
182  BIRD_ERROR_INVALID_CONFIGURATION, //66 < > Invalid configuration
183 
184  // VPD error code
185  BIRD_ERROR_TRANSMITTER_RUNNING, //67 < > TX running while reading/writing VPD
186 
187  BIRD_ERROR_MAXIMUM_VALUE = 0x7F // ## value = number of error codes ##
188 };
189 
190 // error message defines
191 #define ERROR_FLAG 0x80000000
192 #define WARNING_FLAG 0x40000000
193 
194 #define XMTR_ERROR_SOURCE 0x20000000
195 #define RCVR_ERROR_SOURCE 0x10000000
196 #define BIRD_ERROR_SOURCE 0x08000000
197 
198 #define DIAG_ERROR_SOURCE 0x04000000
199 
200 // SYSTEM error = none of the above
201 
202 // NOTE: The MULTIPLE_ERRORS flag is no longer generated
203 // It has been left in for backwards compatibility
204 #define MULTIPLE_ERRORS 0x04000000
205 
206 // DEVICE STATUS ERROR BIT DEFINITIONS
207 #define VALID_STATUS 0x00000000
208 #define GLOBAL_ERROR 0x00000001
209 #define NOT_ATTACHED 0x00000002
210 #define SATURATED 0x00000004
211 #define BAD_EEPROM 0x00000008
212 #define HARDWARE 0x00000010
213 #define NON_EXISTENT 0x00000020
214 #define UNINITIALIZED 0x00000040
215 //#define NO_TRANSMITTER 0x00000080
216 #define NO_TRANSMITTER_RUNNING 0x00000080
217 #define BAD_12V 0x00000100
218 #define CPU_TIMEOUT 0x00000200
219 #define INVALID_DEVICE 0x00000400
220 #define NO_TRANSMITTER_ATTACHED 0x00000800
221 #define OUT_OF_MOTIONBOX 0x00001000
222 #define ALGORITHM_INITIALIZING 0x00002000
223 
224 #define TRUE 1
225 #define FALSE 0
226 
228 {
229  SIMPLE_MESSAGE, // short string describing error code
230  VERBOSE_MESSAGE, // long string describing error code
231 };
232 
234 {
235  SERIAL_NUMBER_TX, // attached transmitter's serial number
236  REFERENCE_FRAME, // structure of type DOUBLE_ANGLES_RECORD
237  XYZ_REFERENCE_FRAME, // boolean value to select/deselect mode
238  VITAL_PRODUCT_DATA_TX, // single byte parameter to be read/write from VPD section of xmtr EEPROM
239  MODEL_STRING_TX, // 11 byte null terminated character string
240  PART_NUMBER_TX, // 16 byte null terminated character string
242 };
243 
245 {
246  DATA_FORMAT, // enumerated constant of type DATA_FORMAT_TYPE
247  ANGLE_ALIGN, // structure of type DOUBLE_ANGLES_RECORD
248  HEMISPHERE, // enumerated constant of type HEMISPHERE_TYPE
249  FILTER_AC_WIDE_NOTCH, // boolean value to select/deselect filter
250  FILTER_AC_NARROW_NOTCH, // boolean value to select/deselect filter
251  FILTER_DC_ADAPTIVE, // double value in range 0.0 (no filtering) to 1.0 (max)
252  FILTER_ALPHA_PARAMETERS,// structure of type ADAPTIVE_PARAMETERS
253  FILTER_LARGE_CHANGE, // boolean value to select/deselect filter
254  QUALITY, // structure of type QUALITY_PARAMETERS
255  SERIAL_NUMBER_RX, // attached sensor's serial number
256  SENSOR_OFFSET, // structure of type DOUBLE_POSITION_RECORD
257  VITAL_PRODUCT_DATA_RX, // single byte parameter to be read/write from VPD section of sensor EEPROM
258  VITAL_PRODUCT_DATA_PREAMP, // single byte parameter to be read/write from VPD section of preamp EEPROM
259  MODEL_STRING_RX, // 11 byte null terminated character string
260  PART_NUMBER_RX, // 16 byte null terminated character string
261  MODEL_STRING_PREAMP, // 11 byte null terminated character string
262  PART_NUMBER_PREAMP, // 16 byte null terminated character string
264 };
265 
267 {
268  SERIAL_NUMBER_PCB, // installed board's serial number
269  BOARD_SOFTWARE_REVISIONS, // Extra SW_REV's added 10-5-06 JBD
272  VITAL_PRODUCT_DATA_PCB, // single byte parameter to be read/write from VPD section of xmtr EEPROM
273  MODEL_STRING_PCB, // 11 byte null terminated character string
274  PART_NUMBER_PCB, // 16 byte null terminated character string
276 };
277 
279 {
280  SELECT_TRANSMITTER, // short int equal to transmitterID of selected transmitter
281  POWER_LINE_FREQUENCY, // double value (range is hardware dependent)
282  AGC_MODE, // enumerated constant of type AGC_MODE_TYPE
283  MEASUREMENT_RATE, // double value (range is hardware dependent)
284  MAXIMUM_RANGE, // double value (range is hardware dependent)
285  METRIC, // boolean value to select metric units for position
289  REPORT_RATE, // single byte 1-127
290  COMMUNICATIONS_MEDIA, // Media structure
291  LOGGING, // Boolean
292  RESET, // Boolean
293  AUTOCONFIG, // BYTE 1-127
294  END_OF_LIST // end of list place holder
295 };
296 
298 {
299  USB, // Auto select USB driver
300  RS232, // Force to RS232
301  TCPIP // Force to TCP/IP
302 };
303 
305 {
308 };
309 
311 {
318 };
319 
321 {
322  TRANSMITTER_AND_SENSOR_AGC, // Old style normal addressing mode
323  SENSOR_AGC_ONLY // Old style extended addressing mode
324 };
325 
327 {
329 
330  // SHORT (integer) formats
338 
339  // DOUBLE (floating point) formats
344  DOUBLE_POSITION_ANGLES, // system default
347 
348  // DOUBLE (floating point) formats with time stamp appended
356 
357  // DOUBLE (floating point) formats with time stamp appended and quality #
365 
366  // These DATA_FORMAT_TYPE codes contain every format in a single structure
371  DOUBLE_ALL_TIME_STAMP_Q_RAW, // this format contains a raw data matrix and
372  // is for factory use only...
373 
374  // DOUBLE (floating point) formats with time stamp appended, quality # and button
378 
379  // New types for button and wrapper
381 
383 };
384 
386 {
387  ATC3DG_MEDSAFE, // Standalone, DSP, 4 sensor
388  PCIBIRD_STD1, // single standard sensor
389  PCIBIRD_STD2, // dual standard sensor
390  PCIBIRD_8mm1, // single 8mm sensor
391  PCIBIRD_8mm2, // dual 8mm sensor
392  PCIBIRD_2mm1, // single 2mm sensor (microsensor)
393  PCIBIRD_2mm2, // dual 2mm sensor (microsensor)
394  PCIBIRD_FLAT, // flat transmitter, 8mm
395  PCIBIRD_FLAT_MICRO1, // flat transmitter, single TEM sensor (all types)
396  PCIBIRD_FLAT_MICRO2, // flat transmitter, dual TEM sensor (all types)
397  PCIBIRD_DSP4, // Standalone, DSP, 4 sensor
398  PCIBIRD_UNKNOWN, // default
399  ATC3DG_BB // BayBird
400 };
401 
403 {
404  STANDARD_SENSOR, // 25mm standard sensor
405  TYPE_800_SENSOR, // 8mm sensor
406  STANDARD_TRANSMITTER, // TX for 25mm sensor
407  MINIBIRD_TRANSMITTER, // TX for 8mm sensor
408  SMALL_TRANSMITTER, // "compact" transmitter
409  TYPE_500_SENSOR, // 5mm sensor
410  TYPE_180_SENSOR, // 1.8mm microsensor
411  TYPE_130_SENSOR, // 1.3mm microsensor
412  TYPE_TEM_SENSOR, // 1.8mm, 1.3mm, 0.Xmm microsensors
413  UNKNOWN_SENSOR, // default
415  TYPE_800_BB_SENSOR, // BayBird sensor
416  TYPE_800_BB_STD_TRANSMITTER, // BayBird standard TX
417  TYPE_800_BB_SMALL_TRANSMITTER, // BayBird small TX
418  TYPE_090_BB_SENSOR // Baybird 0.9 mm sensor
419 };
420 
421 // Async and Sync sensor id parameter
422 #define ALL_SENSORS 0xffff
423 
424 /*****************************************************************************
425  TYPEDEF DEFINITIONS
426  *****************************************************************************/
427 
428 #ifndef BASETYPES
429 #define BASETYPES
430 typedef unsigned long ULONG;
431 typedef ULONG *PULONG;
432 typedef unsigned short USHORT;
433 typedef USHORT *PUSHORT;
434 typedef short SHORT;
435 typedef SHORT *PSHORT;
436 typedef unsigned char UCHAR;
437 typedef UCHAR *PUCHAR;
438 typedef char *PSZ;
439 #endif /* !BASETYPES */
440 
441 typedef char CHAR;
442 typedef const CHAR *LPCSTR, *PCSTR;
443 typedef int BOOL;
445 
446 typedef unsigned char BYTE;
447 typedef unsigned short WORD;
448 typedef unsigned long DWORD;
449 
450 /*****************************************************************************
451  STRUCTURE DEFINITIONS
452  *****************************************************************************/
453 
454 typedef struct tagTRANSMITTER_CONFIGURATION
455 {
459  enum DEVICE_TYPES type;
460  BOOL attached;
462 
463 typedef struct tagSENSOR_CONFIGURATION
464 {
468  enum DEVICE_TYPES type;
469  BOOL attached;
471 
472 typedef struct tagBOARD_CONFIGURATION
473 {
475  enum BOARD_TYPES type;
481  char modelString[10];
482 
484 
485 typedef struct tagSYSTEM_CONFIGURATION
486 {
487  double measurementRate;
488  double powerLineFrequency;
489  double maximumRange;
490  enum AGC_MODE_TYPE agcMode;
491  int numberBoards;
492  int numberSensors;
493  int numberTransmitters;
495  BOOL metric;
497 
499 {
501  union
502  {
503  struct
504  {
505  CHAR comport[64];
506  } rs232;
507  struct
508  {
509  USHORT port;
510  CHAR ipaddr[64];
511  } tcpip;
512  };
514 
515 typedef struct tagADAPTIVE_PARAMETERS
516 {
517  USHORT alphaMin[7];
518  USHORT alphaMax[7];
519  USHORT vm[7];
520  BOOL alphaOn;
522 
523 typedef struct tagQUALITY_PARAMETERS
524 {
530 
531 // New Drivebay system parameter structure(s)
532 typedef struct tagVPD_COMMAND_PARAMETER
533 {
534  USHORT address;
535  UCHAR value;
537 
538 typedef struct tagPOST_ERROR_PARAMETER
539 {
540  USHORT error;
541  UCHAR channel;
542  UCHAR fatal;
545 
546 typedef struct tagDIAGNOSTIC_TEST_PARAMETER
547 {
548  UCHAR suite; // User sets this, 0 - All Suites
549  UCHAR test; // User sets this, 0 - All Tests
550 
551  UCHAR suites; // set, returns suites run
552  // get, returns num of suites, not used for # test query
553  UCHAR tests; // set, returns tests run in the given suite
554  // get, returns num of tests for given suite, not used for suite query
555  PUCHAR pTestName; // User supplied ptr to 64 bytes, we fill it in
557 
558  USHORT diagError; // set only, result of diagnostic execution
560 
561 typedef struct tagBOARD_REVISIONS
562 {
563  USHORT boot_loader_sw_number; // example 3.1 -> revision is 3, number is 1
576 
577 //
578 // Data formatting structures
579 //
580 typedef struct tagSHORT_POSITION
581 {
582  short x;
583  short y;
584  short z;
586 
587 typedef struct tagSHORT_ANGLES
588 {
589  short a; // azimuth
590  short e; // elevation
591  short r; // roll
593 
594 typedef struct tagSHORT_MATRIX
595 {
596  short s[3][3];
598 
599 typedef struct tagSHORT_QUATERNIONS
600 {
601  short q[4];
603 
604 typedef struct tagSHORT_POSITION_ANGLES
605 {
606  short x;
607  short y;
608  short z;
609  short a;
610  short e;
611  short r;
613 
614 typedef struct tagSHORT_POSITION_MATRIX
615 {
616  short x;
617  short y;
618  short z;
619  short s[3][3];
621 
622 typedef struct tagSHORT_POSITION_QUATERNION
623 {
624  short x;
625  short y;
626  short z;
627  short q[4];
629 
630 
631 
632 
633 
634 
635 
636 
637 typedef struct tagDOUBLE_POSITION
638 {
639  double x;
640  double y;
641  double z;
643 
644 typedef struct tagDOUBLE_ANGLES
645 {
646  double a; // azimuth
647  double e; // elevation
648  double r; // roll
650 
651 typedef struct tagDOUBLE_MATRIX
652 {
653  double s[3][3];
655 
656 typedef struct tagDOUBLE_QUATERNIONS
657 {
658  double q[4];
660 
661 typedef struct tagDOUBLE_POSITION_ANGLES
662 {
663  double x;
664  double y;
665  double z;
666  double a;
667  double e;
668  double r;
670 
671 typedef struct tagDOUBLE_POSITION_MATRIX
672 {
673  double x;
674  double y;
675  double z;
676  double s[3][3];
678 
679 typedef struct tagDOUBLE_POSITION_QUATERNION
680 {
681  double x;
682  double y;
683  double z;
684  double q[4];
686 
687 
688 
689 
690 
691 
692 
693 
694 typedef struct tagDOUBLE_POSITION_TIME_STAMP
695 {
696  double x;
697  double y;
698  double z;
699  double time;
701 
702 typedef struct tagDOUBLE_ANGLES_TIME_STAMP
703 {
704  double a; // azimuth
705  double e; // elevation
706  double r; // roll
707  double time;
709 
710 typedef struct tagDOUBLE_MATRIX_TIME_STAMP
711 {
712  double s[3][3];
713  double time;
715 
717 {
718  double q[4];
719  double time;
721 
723 {
724  double x;
725  double y;
726  double z;
727  double a;
728  double e;
729  double r;
730  double time;
732 
734 {
735  double x;
736  double y;
737  double z;
738  double s[3][3];
739  double time;
741 
743 {
744  double x;
745  double y;
746  double z;
747  double q[4];
748  double time;
750 
751 
752 
753 
754 
755 
756 
757 
758 
759 
760 typedef struct tagDOUBLE_POSITION_TIME_Q
761 {
762  double x;
763  double y;
764  double z;
765  double time;
766  USHORT quality;
768 
769 typedef struct tagDOUBLE_ANGLES_TIME_Q
770 {
771  double a; // azimuth
772  double e; // elevation
773  double r; // roll
774  double time;
775  USHORT quality;
777 
778 typedef struct tagDOUBLE_MATRIX_TIME_Q
779 {
780  double s[3][3];
781  double time;
782  USHORT quality;
784 
785 typedef struct tagDOUBLE_QUATERNIONS_TIME_Q
786 {
787  double q[4];
788  double time;
789  USHORT quality;
791 
793 {
794  double x;
795  double y;
796  double z;
797  double a;
798  double e;
799  double r;
800  double time;
801  USHORT quality;
803 
805 {
806  double x;
807  double y;
808  double z;
809  double s[3][3];
810  double time;
811  USHORT quality;
813 
815 {
816  double x;
817  double y;
818  double z;
819  double q[4];
820  double time;
821  USHORT quality;
823 
825 {
826  double x;
827  double y;
828  double z;
829  double a;
830  double e;
831  double r;
832  double time;
833  USHORT quality;
834  USHORT button;
836 
838 {
839  double x;
840  double y;
841  double z;
842  double s[3][3];
843  double time;
844  USHORT quality;
845  USHORT button;
847 
849 {
850  double x;
851  double y;
852  double z;
853  double q[4];
854  double time;
855  USHORT quality;
856  USHORT button;
858 
860 {
861  double x;
862  double y;
863  double z;
864  double a;
865  double e;
866  double r;
867  double s[3][3];
868  double q[4];
869  double time;
870  USHORT quality;
871  USHORT button;
873 
874 typedef struct tagSHORT_ALL_RECORD
875 {
876  short x;
877  short y;
878  short z;
879  short a; // azimuth
880  short e; // elevation
881  short r; // roll
882  short s[3][3];
883  short q[4];
885 
886 typedef struct tagDOUBLE_ALL_RECORD
887 {
888  double x;
889  double y;
890  double z;
891  double a; // azimuth
892  double e; // elevation
893  double r; // roll
894  double s[3][3];
895  double q[4];
897 
898 typedef struct tagDOUBLE_ALL_TIME_STAMP_RECORD
899 {
900  double x;
901  double y;
902  double z;
903  double a; // azimuth
904  double e; // elevation
905  double r; // roll
906  double s[3][3];
907  double q[4];
908  double time;
910 
912 {
913  double x;
914  double y;
915  double z;
916  double a; // azimuth
917  double e; // elevation
918  double r; // roll
919  double s[3][3];
920  double q[4];
921  double time;
922  USHORT quality;
924 
926 {
927  double x;
928  double y;
929  double z;
930  double a; // azimuth
931  double e; // elevation
932  double r; // roll
933  double s[3][3];
934  double q[4];
935  double time;
936  USHORT quality;
937  double raw[3][3];
939 
940 
941 
942 
943 /*****************************************************************************
944  FUNCTION PROTOTYPES
945  *****************************************************************************/
946 
947 /*
948  InitializeBIRDSystem Starts and initializes driver, resets
949  hardware and interrogates hardware. Builds
950  local database of system resources.
951 
952  Parameters Passed: none
953 
954  Return Value: error status
955 
956  Remarks: Can be used anytime a catastrophic failure
957  has occurred and the system needs to be
958  restarted.
959 
960 */
962 
963 /*
964  GetBIRDSystemConfiguration
965 
966  Parameters Passed: SYSTEM_CONFIGURATION*
967 
968  Return Value: error status
969 
970  Remarks: Returns SYSTEM_CONFIGURATION structure
971  It contains values equal to the number of
972  transmitters, sensors and boards detected
973  in the system. (The board information is for
974  test/diagnostic purposes, all commands
975  reference sensors and transmitters only) Once
976  the number of devices is known, (e.g. n) the
977  range of IDs for those devices becomes 0..(n-1)
978 */
980  SYSTEM_CONFIGURATION* systemConfiguration
981  );
982 
983 /*
984  GetTransmitterConfiguration
985 
986  Parameters Passed: USHORT transmitterID
987  TRANSMITTER_CONFIGURATION *transmitterConfiguration
988 
989  Return Value: error status
990 
991  Remarks: After getting system config the user can then pass
992  the index of a transmitter of interest to this function
993  which will then return the config for that transmitter.
994  Items of interest are the serial number and status.
995 
996 */
998  USHORT transmitterID,
999  TRANSMITTER_CONFIGURATION* transmitterConfiguration
1000  );
1001 
1002 /*
1003  GetSensorConfiguration
1004 
1005  Parameters Passed: USHORT sensorID,
1006  SENSOR_CONFIGURATION* sensorConfiguration
1007 
1008  Return Value: error status
1009 
1010  Remarks: Similar to the transmitter function.
1011 
1012 */
1013 
1015  USHORT sensorID,
1016  SENSOR_CONFIGURATION* sensorConfiguration
1017  );
1018 
1019 /*
1020  GetBoardConfiguration
1021 
1022  Parameters Passed: USHORT boardID,
1023  BOARD_CONFIGURATION* boardConfiguration
1024 
1025  Return Value: error status
1026 
1027  Remarks: Similar to the Sensor and Transmitter
1028  functions. Also returns information on
1029  how many sensors and transmitters are
1030  attached. NOTE: Board information is not
1031  needed during normal operation this is
1032  only provided for "accounting" purposes.
1033 
1034 */
1036  USHORT boardID,
1037  BOARD_CONFIGURATION* boardConfiguration
1038  );
1039 
1040 /*
1041  GetAsynchronousRecord
1042 
1043  Parameters Passed: USHORT sensorID,
1044  void *pRecord,
1045  int recordSize
1046 
1047  Return Value: error status
1048 
1049  Remarks: Returns data immediately in the currently
1050  selected format from the last measurement
1051  cycle. Requires user providing a buffer large
1052  enough for the result otherwise an error is
1053  generated and data lost.
1054  (Old style BIRD POINT mode)
1055 
1056 */
1057 
1059  USHORT sensorID,
1060  void *pRecord,
1061  int recordSize
1062  );
1063 
1064 /*
1065  GetSynchronousRecord
1066 
1067  Parameters Passed: USHORT sensorID,
1068  void *pRecord,
1069  int recordSize
1070 
1071  Return Value: error status
1072 
1073  Remarks: Returns a record after next measurement cycle. Puts
1074  system into mode where records are generated 1/cycle.
1075  Will return one and only one record per measurement
1076  cycle. Will queue the records for each measurement
1077  cycle if command not issued sufficiently often. If
1078  command issued too often will time-out with no data.
1079  (old style BIRD STREAM mode)
1080 
1081 */
1083  USHORT sensorID,
1084  void *pRecord,
1085  int recordSize
1086  );
1087 
1088 
1089 
1090 /*
1091  GetSystemParameter
1092 
1093  Parameters Passed: PARAMETER_TYPE parameterType,
1094  void *pBuffer,
1095  int bufferSize
1096 
1097  Return Value: error status
1098 
1099  Remarks: When a properly enumerated parameter type constant
1100  is used, the command will return the parameter value
1101  to the buffer provided by the user. An error is
1102  generated if the buffer is incorrectly sized
1103 
1104 */
1106  enum SYSTEM_PARAMETER_TYPE parameterType,
1107  void *pBuffer,
1108  int bufferSize
1109  );
1110 
1111 
1112 /*
1113  SetSystemParameter
1114 
1115  Parameters Passed: PARAMETER_TYPE parameterType,
1116  void *pBuffer,
1117  int bufferSize
1118 
1119  Return Value: error status
1120 
1121  Remarks: Similar to GetSystemParameter but allows user
1122  to set (write) the parameter.
1123 
1124 */
1126  enum SYSTEM_PARAMETER_TYPE parameterType,
1127  void *pBuffer,
1128  int bufferSize
1129  );
1130 
1131 
1132 /*
1133  GetSensorParameter
1134 
1135  Parameters Passed: USHORT sensorID,
1136  PARAMETER_TYPE parameterType,
1137  void *pBuffer,
1138  int bufferSize
1139 
1140  Return Value: error status
1141 
1142  Remarks: When a sensor is selected with a valid index (ID)
1143  and a properly enumerated parameter type constant
1144  is used, the command will return the parameter value
1145  to the buffer provided by the user. An error is
1146  generated if the buffer is incorrectly sized
1147 
1148 */
1150  USHORT sensorID,
1151  enum SENSOR_PARAMETER_TYPE parameterType,
1152  void *pBuffer,
1153  int bufferSize
1154  );
1155 
1156 
1157 /*
1158  SetSensorParameter
1159 
1160  Parameters Passed: USHORT sensorID,
1161  PARAMETER_TYPE parameterType,
1162  void *pBuffer,
1163  int bufferSize
1164 
1165  Return Value: error status
1166 
1167  Remarks: Similar to GetSensorParameter but allows user
1168  to set (write) the parameter.
1169 
1170 */
1172  USHORT sensorID,
1173  enum SENSOR_PARAMETER_TYPE parameterType,
1174  void *pBuffer,
1175  int bufferSize
1176  );
1177 
1178 
1179 /*
1180  GetTransmitterParameter
1181 
1182  Parameters Passed: USHORT transmitterID,
1183  PARAMETER_TYPE parameterType,
1184  void *pBuffer,
1185  int bufferSize
1186 
1187  Return Value: error status
1188 
1189  Remarks: Same as Sensor command
1190 
1191 */
1193  USHORT transmitterID,
1194  enum TRANSMITTER_PARAMETER_TYPE parameterType,
1195  void *pBuffer,
1196  int bufferSize
1197  );
1198 
1199 
1200 
1201 
1202 /*
1203  SetTransmitterParameter
1204 
1205  Parameters Passed: USHORT transmitterID,
1206  PARAMETER_TYPE parameterType,
1207  void *pBuffer,
1208  int bufferSize
1209 
1210  Return Value: error status
1211 
1212  Remarks: Same as sensor command
1213 
1214 */
1216  USHORT transmitterID,
1217  enum TRANSMITTER_PARAMETER_TYPE parameterType,
1218  void *pBuffer,
1219  int bufferSize
1220  );
1221 
1222 /*
1223  GetBIRDError
1224 
1225  Parameters Passed: none
1226 
1227  Return Value: error status
1228 
1229  Remarks: Returns next error in queue
1230  if available
1231 
1232 */
1234  void
1235  );
1236 
1237 #define GetPOSTError GetBIRDError
1238 #define GetDIAGError GetBIRDError
1239 
1240 /*
1241  GetErrorText
1242 
1243  Parameters Passed: int errorCode
1244  char *pBuffer
1245  int bufferSize
1246  int type
1247 
1248  Return Value: error status as a text string
1249 
1250  Remarks: ErrorCode contains the error code returned from
1251  either a command or in response to GetBIRDError
1252  and which is to be described by a text string.
1253  Pass a pointer pBuffer to a buffer to contain
1254  the result of the command. The size of the
1255  buffer is contained in bufferSize. The type
1256  parameter is an enumerated constant of
1257  the type MESSAGE_TYPE.
1258 
1259 */
1261  int errorCode,
1262  char *pBuffer,
1263  int bufferSize,
1264  enum MESSAGE_TYPE type
1265  );
1266 
1267 /*
1268 
1269 */
1271  USHORT sensorID
1272  );
1273 
1274 /*
1275 
1276 */
1278  USHORT transmitterID
1279  );
1280 
1281 /*
1282 
1283 */
1285  USHORT boardID
1286  );
1287 
1288 /*
1289 
1290 */
1292  // no id required
1293  );
1294 
1295 /*
1296 
1297 */
1299  LPCSTR lpFileName
1300  );
1301 
1302 /*
1303 
1304 */
1306  LPCSTR lpFileName
1307  );
1308 
1309 /*
1310 
1311 */
1313  USHORT boardID,
1314  enum BOARD_PARAMETER_TYPE parameterType,
1315  void *pBuffer,
1316  int bufferSize
1317  );
1318 
1319 /*
1320 
1321 */
1323  USHORT boardID,
1324  enum BOARD_PARAMETER_TYPE parameterType,
1325  void *pBuffer,
1326  int bufferSize
1327  );
1328 
1329 /*
1330 
1331 */
1332 ATC3DG_API int CloseBIRDSystem(void);
1333 
1334 
1335 
1336 
1337 #endif // ATC3DG_H
1338 
USHORT boot_loader_sw_revision
Definition: ATC3DGm.h:567
struct tagADAPTIVE_PARAMETERS ADAPTIVE_PARAMETERS
ATC3DG_API int SetBoardParameter(USHORT boardID, enum BOARD_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
USHORT numberTransmitters
Definition: ATC3DGm.h:480
enum DEVICE_TYPES type
Definition: ATC3DGm.h:471
USHORT mdsp_sw_revision
Definition: ATC3DGm.h:569
Definition: ATC3DG.h:316
int BOOL
Definition: ATC3DG.h:443
struct tagDOUBLE_POSITION_ANGLES_MATRIX_QUATERNION_TIME_Q_BUTTON_RECORD DOUBLE_POSITION_ANGLES_MATRIX_QUATERNION_TIME_Q_BUTTON_RECORD
unsigned short USHORT
Definition: ATC3DG.h:432
ATC3DG_API int SaveSystemConfiguration(LPCSTR lpFileName)
unsigned char UCHAR
Definition: ATC3DGm.h:438
unsigned short WORD
Definition: ATC3DG.h:447
Definition: ATC3DG.h:299
struct tagDOUBLE_ALL_TIME_STAMP_Q_RAW_RECORD DOUBLE_ALL_TIME_STAMP_Q_RAW_RECORD
Definition: ATC3DG.h:313
struct tagDOUBLE_QUATERNIONS_TIME_Q DOUBLE_QUATERNIONS_TIME_Q_RECORD
struct tagSENSOR_CONFIGURATION SENSOR_CONFIGURATION
USHORT dipole_sw_revision
Definition: ATC3DGm.h:577
struct tagCOMMUNICATIONS_MEDIA_PARAMETERS::@2::@4 rs232
USHORT alphaMin[7]
Definition: ATC3DGm.h:520
struct tagCOMMUNICATIONS_MEDIA_PARAMETERS::@2::@5 tcpip
unsigned char UCHAR
Definition: ATC3DG.h:436
ATC3DG_API int InitializeBIRDSystem(void)
struct tagBOARD_REVISIONS BOARD_REVISIONS
struct tagDOUBLE_QUATERNIONS_TIME_STAMP DOUBLE_QUATERNIONS_TIME_STAMP_RECORD
struct tagPOST_ERROR_PARAMETER POST_ERROR_PARAMETER
ATC3DG_API DEVICE_STATUS GetTransmitterStatus(USHORT transmitterID)
const CHAR * LPCSTR
Definition: ATC3DGm.h:444
struct tagDOUBLE_POSITION_TIME_STAMP DOUBLE_POSITION_TIME_STAMP_RECORD
struct tagDOUBLE_POSITION_ANGLES DOUBLE_POSITION_ANGLES_RECORD
double s[3][3]
Definition: ATC3DGm.h:649
USHORT sixdof_sw_number
Definition: ATC3DGm.h:574
double s[3][3]
Definition: ATC3DGm.h:874
struct tagVPD_COMMAND_PARAMETER VPD_COMMAND_PARAMETER
char * PSZ
Definition: ATC3DG.h:438
struct tagSHORT_POSITION_MATRIX SHORT_POSITION_MATRIX_RECORD
Definition: ATC3DG.h:301
struct tagDOUBLE_ALL_TIME_STAMP_RECORD DOUBLE_ALL_TIME_STAMP_RECORD
#define ATC3DG_API
Definition: ATC3DG.h:53
struct tagDOUBLE_POSITION_MATRIX DOUBLE_POSITION_MATRIX_RECORD
ATC3DG_API int GetBoardConfiguration(USHORT boardID, BOARD_CONFIGURATION *boardConfiguration)
struct tagSYSTEM_CONFIGURATION SYSTEM_CONFIGURATION
ATC3DG_API int SetSensorParameter(USHORT sensorID, enum SENSOR_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
struct tagBOARD_CONFIGURATION BOARD_CONFIGURATION
USHORT mdsp_sw_number
Definition: ATC3DGm.h:568
ATC3DG_API int GetSynchronousRecord(USHORT sensorID, void *pRecord, int recordSize)
ATC3DG_API int GetBoardParameter(USHORT boardID, enum BOARD_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
ATC3DG_API int GetBIRDSystemConfiguration(SYSTEM_CONFIGURATION *systemConfiguration)
struct tagSHORT_POSITION_QUATERNION SHORT_POSITION_QUATERNION_RECORD
unsigned char BYTE
Definition: ATC3DG.h:446
struct tagDOUBLE_POSITION_MATRIX_STAMP_RECORD DOUBLE_POSITION_MATRIX_TIME_STAMP_RECORD
USHORT dipole_sw_number
Definition: ATC3DGm.h:576
Definition: ATC3DG.h:292
char CHAR
Definition: ATC3DGm.h:443
struct tagSHORT_QUATERNIONS SHORT_QUATERNIONS_RECORD
BOARD_PARAMETER_TYPE
Definition: ATC3DGm.h:266
UCHAR * PUCHAR
Definition: ATC3DGm.h:439
const CHAR * LPCSTR
Definition: ATC3DG.h:442
struct tagDOUBLE_POSITION DOUBLE_POSITION_RECORD
TRANSMITTER_PARAMETER_TYPE
Definition: ATC3DGm.h:233
BOARD_TYPES
Definition: ATC3DGm.h:388
ULONG * PULONG
Definition: ATC3DG.h:431
struct tagDOUBLE_POSITION_QUATERNION_TIME_Q_BUTTON_RECORD DOUBLE_POSITION_QUATERNION_TIME_Q_BUTTON_RECORD
ATC3DG_API int GetTransmitterParameter(USHORT transmitterID, enum TRANSMITTER_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
struct tagDOUBLE_POSITION_MATRIX_TIME_Q_RECORD DOUBLE_POSITION_MATRIX_TIME_Q_RECORD
short s[3][3]
Definition: ATC3DGm.h:862
ATC3DG_API int CloseBIRDSystem(void)
struct tagDOUBLE_MATRIX_TIME_Q DOUBLE_MATRIX_TIME_Q_RECORD
struct tagDOUBLE_QUATERNIONS DOUBLE_QUATERNIONS_RECORD
USHORT sixdof_sw_revision
Definition: ATC3DGm.h:575
struct tagSHORT_POSITION_ANGLES SHORT_POSITION_ANGLES_RECORD
struct tagQUALITY_PARAMETERS QUALITY_PARAMETERS
MESSAGE_TYPE
Definition: ATC3DGm.h:227
USHORT fivedof_sw_number
Definition: ATC3DGm.h:572
struct tagDOUBLE_POSITION_QUATERNION_TIME_Q_RECORD DOUBLE_POSITION_QUATERNION_TIME_Q_RECORD
SYSTEM_PARAMETER_TYPE
Definition: ATC3DGm.h:280
ATC3DG_API int GetBIRDError(void)
struct tagDOUBLE_ANGLES_TIME_Q DOUBLE_ANGLES_TIME_Q_RECORD
FILTER_OPTION
Definition: ATC3DGm.h:307
struct tagDOUBLE_POSITION_ANGLES_TIME_Q_BUTTON_RECORD DOUBLE_POSITION_ANGLES_TIME_Q_BUTTON_RECORD
struct tagDOUBLE_ANGLES DOUBLE_ANGLES_RECORD
Definition: ATC3DG.h:315
Definition: ATC3DG.h:312
struct tagCOMMUNICATIONS_MEDIA_PARAMETERS COMMUNICATIONS_MEDIA_PARAMETERS
ULONG DEVICE_STATUS
Definition: ATC3DGm.h:447
ATC3DG_API int GetTransmitterConfiguration(USHORT transmitterID, TRANSMITTER_CONFIGURATION *transmitterConfiguration)
double s[3][3]
Definition: ATC3DGm.h:760
Definition: ATC3DG.h:285
AGC_MODE_TYPE
Definition: ATC3DGm.h:323
struct tagDOUBLE_POSITION_QUATERNION DOUBLE_POSITION_QUATERNION_RECORD
struct tagTRANSMITTER_CONFIGURATION TRANSMITTER_CONFIGURATION
COMMUNICATIONS_MEDIA_TYPE mediaType
Definition: ATC3DGm.h:503
short s[3][3]
Definition: ATC3DGm.h:599
unsigned short USHORT
Definition: ATC3DGm.h:434
struct tagDOUBLE_ALL_TIME_STAMP_Q_RECORD DOUBLE_ALL_TIME_STAMP_Q_RECORD
ATC3DG_API int GetSensorParameter(USHORT sensorID, enum SENSOR_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
USHORT alphaMax[7]
Definition: ATC3DGm.h:521
SHORT * PSHORT
Definition: ATC3DG.h:435
USHORT fivedof_sw_revision
Definition: ATC3DGm.h:573
struct tagDOUBLE_ANGLES_TIME_STAMP DOUBLE_ANGLES_TIME_STAMP_RECORD
ATC3DG_API int GetErrorText(int errorCode, char *pBuffer, int bufferSize, enum MESSAGE_TYPE type)
Definition: ATC3DG.h:300
struct tagDIAGNOSTIC_TEST_PARAMETER DIAGNOSTIC_TEST_PARAMETER
ATC3DG_API int GetSensorConfiguration(USHORT sensorID, SENSOR_CONFIGURATION *sensorConfiguration)
unsigned long ULONG
Definition: ATC3DGm.h:432
USHORT nondipole_sw_revision
Definition: ATC3DGm.h:571
char CHAR
Definition: ATC3DG.h:441
ULONG DEVICE_STATUS
Definition: ATC3DG.h:444
USHORT nondipole_sw_number
Definition: ATC3DGm.h:570
struct tagDOUBLE_MATRIX_TIME_STAMP DOUBLE_MATRIX_TIME_STAMP_RECORD
struct tagDOUBLE_POSITION_MATRIX_TIME_Q_BUTTON_RECORD DOUBLE_POSITION_MATRIX_TIME_Q_BUTTON_RECORD
COMMUNICATIONS_MEDIA_TYPE
Definition: ATC3DGm.h:299
enum DEVICE_TYPES type
Definition: ATC3DGm.h:462
enum BOARD_TYPES type
Definition: ATC3DGm.h:478
struct tagDOUBLE_POSITION_TIME_Q DOUBLE_POSITION_TIME_Q_RECORD
Definition: ATC3DG.h:314
unsigned long ULONG
Definition: ATC3DG.h:430
short SHORT
Definition: ATC3DGm.h:436
enum AGC_MODE_TYPE agcMode
Definition: ATC3DGm.h:493
HEMISPHERE_TYPE
Definition: ATC3DGm.h:313
ATC3DG_API int SetTransmitterParameter(USHORT transmitterID, enum TRANSMITTER_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
struct tagSHORT_ALL_RECORD SHORT_ALL_RECORD
Definition: ATC3DG.h:317
ATC3DG_API int SetSystemParameter(enum SYSTEM_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
ATC3DG_API DEVICE_STATUS GetBoardStatus(USHORT boardID)
unsigned long DWORD
Definition: ATC3DG.h:448
USHORT * PUSHORT
Definition: ATC3DG.h:433
struct tagDOUBLE_POSITION_ANGLES_TIME_STAMP DOUBLE_POSITION_ANGLES_TIME_STAMP_RECORD
UCHAR * PUCHAR
Definition: ATC3DG.h:437
ATC3DG_API int RestoreSystemConfiguration(LPCSTR lpFileName)
USHORT boot_loader_sw_number
Definition: ATC3DGm.h:566
DATA_FORMAT_TYPE
Definition: ATC3DGm.h:329
struct tagSHORT_ANGLES SHORT_ANGLES_RECORD
ATC3DG_API DEVICE_STATUS GetSensorStatus(USHORT sensorID)
ATC3DG_API int GetAsynchronousRecord(USHORT sensorID, void *pRecord, int recordSize)
struct tagDOUBLE_ALL_RECORD DOUBLE_ALL_RECORD
const CHAR * PCSTR
Definition: ATC3DG.h:442
DEVICE_TYPES
Definition: ATC3DGm.h:405
ATC3DG_API int GetSystemParameter(enum SYSTEM_PARAMETER_TYPE parameterType, void *pBuffer, int bufferSize)
struct tagSHORT_POSITION SHORT_POSITION_RECORD
SENSOR_PARAMETER_TYPE
Definition: ATC3DGm.h:244
USHORT error_sensitivity
Definition: ATC3DGm.h:530
int BOOL
Definition: ATC3DGm.h:446
char modelString[10]
Definition: ATC3DGm.h:484
BIRD_ERROR_CODES
Definition: ATC3DGm.h:92
struct tagSHORT_MATRIX SHORT_MATRIX_RECORD
struct tagDOUBLE_MATRIX DOUBLE_MATRIX_RECORD
struct tagDOUBLE_POSITION_QUATERNION_STAMP_RECORD DOUBLE_POSITION_QUATERNION_TIME_STAMP_RECORD
ATC3DG_API DEVICE_STATUS GetSystemStatus()
short SHORT
Definition: ATC3DG.h:434
struct tagDOUBLE_POSITION_ANGLES_TIME_Q_RECORD DOUBLE_POSITION_ANGLES_TIME_Q_RECORD