Gocator API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
GoSdkDef.h
Go to the documentation of this file.
1 /**
2  * @file GoSdkDef.h
3  * @brief Essential SDK declarations.
4  *
5  * For each defined value (ie "#define foo <some value>"), it must be followed
6  * on the same line with the three (3) '/', followed by a '<' followed by a
7  * comment about the line, in order
8  * for Doxygen to parse the definitions properly. Otherwise you will get
9  * Doxygen warnings about explicit link request to 'blah blah' could not be
10  * resolved.
11  *
12  * @internal
13  * Copyright (C) 2017 by LMI Technologies Inc.
14  * Licensed under the MIT License.
15  * Redistributed files must retain the above copyright notice.
16  */
17 #ifndef GO_SDK_DEF_H
18 #define GO_SDK_DEF_H
19 
20 #include <kApi/kApiDef.h>
21 #include <kApi/Io/kNetwork.h>
22 
23 kBeginHeader()
24 
25 #if defined (GO_EMIT)
26 # define GoFx(TYPE) kExportFx(TYPE) ///< GoSdk function declaration helper.
27 # define GoCx(TYPE) kExportCx(TYPE) ///< GoSdk dynamic function declaration helper.
28 # define GoDx(TYPE) kExportDx(TYPE) ///< GoSdk data declaration helper.
29 #elif defined (GO_STATIC)
30 # define GoFx(TYPE) kInFx(TYPE)
31 # define GoCx(TYPE) kInCx(TYPE)
32 # define GoDx(TYPE) kInDx(TYPE)
33 #else
34 # define GoFx(TYPE) kImportFx(TYPE)
35 # define GoCx(TYPE) kImportCx(TYPE)
36 # define GoDx(TYPE) kImportDx(TYPE)
37 #endif
38 
39 /**
40  * Returns the SDK version.
41  *
42  * @public @memberof GoSdk
43  * @version Introduced in firmware 4.0.10.27
44  * @return SDK version.
45  */
46 GoFx(kVersion) GoSdk_Version();
47 
48 /**
49  * Returns the protocol version associated with the SDK.
50  *
51  * @public @memberof GoSdk
52  * @version Introduced in firmware 4.0.10.27
53  * @return Protocol version.
54  */
55 GoFx(kVersion) GoSdk_ProtocolVersion();
56 
57 /**
58  * Frees the memory associated with a given kObject sourced class handle.
59  *
60  * @public @memberof GoSdk
61  * @version Introduced in firmware 4.0.10.27
62  * @param object A kObject.
63  * @return Operation status.
64  */
65 GoFx(kStatus) GoDestroy(kObject object);
66 
67 /**
68  * @struct GoUpgradeFxArgs
69  * @extends kValue
70  * @ingroup GoSdk
71  * @brief Represents arguments provided to an upgrade callback function.
72  */
73 typedef struct GoUpgradeFxArgs
74 {
75  k64f progress; ///< Upgrade progress (percentage).
77 
78 typedef kStatus (kCall* GoUpgradeFx) (kPointer receiver, kObject sender, GoUpgradeFxArgs* args);
79 
80 
81 /**
82  * @struct GoUser
83  * @extends kValue
84  * @ingroup GoSdk
85  * @brief Represents a user id.
86  *
87  * The following enumerators are defined:
88  * - #GO_USER_NONE
89  * - #GO_USER_ADMIN
90  * - #GO_USER_TECH
91  */
92 typedef k32s GoUser;
93 /** @name GoUser
94  *@{*/
95 #define GO_USER_NONE (0) ///< No user.
96 #define GO_USER_ADMIN (1) ///< Administrator user.
97 #define GO_USER_TECH (2) ///< Technician user.
98 /**@}*/
99 
100 typedef k32s Buddyable;
101 /** @name Buddyable
102 *@{*/
103 #define GO_NOT_BUDDYABLE (0) ///< Not Buddyable.
104 #define GO_BUDDYABLE (1) ///< Buddyable.
105 #define GO_ALREADY_BUDDIED (-100) ///< Already Buddied.
106 #define GO_INVALID_STATE (-99) ///< Error: Invalid State.
107 #define GO_VERSION_MISMATCH (-98) ///< Error: Version Mismatch.
108 #define GO_MODEL_MISMATCH (-97) ///< Error: Model Mismatch.
109 #define GO_UNREACHABLE_ADDRESS (-96) ///< Error: Unreachable Address.
110 
111 /**@}*/
112 
113 
114 /**
115  * @struct GoState
116  * @extends kValue
117  * @ingroup GoSdk
118  * @brief Represents the current state of a sensor object.
119  *
120  * The following enumerators are defined:
121  * - #GO_STATE_ONLINE
122  * - #GO_STATE_OFFLINE
123  * - #GO_STATE_RESETTING
124  * - #GO_STATE_INCOMPATIBLE
125  * - #GO_STATE_INCONSISTENT
126  * - #GO_STATE_UNRESPONSIVE
127  * - #GO_STATE_CANCELLED
128  * - #GO_STATE_INCOMPLETE
129  * - #GO_STATE_BUSY
130  * - #GO_STATE_READY
131  * - #GO_STATE_RUNNING
132  */
133 typedef k32s GoState;
134 /** @name GoState
135  *@{*/
136 #define GO_STATE_ONLINE (0) ///< Sensor disconnected, but detected via discovery.
137 #define GO_STATE_OFFLINE (1) ///< Sensor disconnected and no longer detected via discovery (refresh system to eliminate sensor).
138 #define GO_STATE_RESETTING (2) ///< Sensor disconnected and currently resetting (wait for completion).
139 #define GO_STATE_INCOMPATIBLE (4) ///< Sensor connected, but protocol incompatible with client (upgrade required).
140 #define GO_STATE_INCONSISTENT (5) ///< Sensor connected, but remote state was changed (refresh sensor).
141 #define GO_STATE_UNRESPONSIVE (6) ///< Sensor connected, but no longer detected via health or discovery (disconnect).
142 #define GO_STATE_CANCELLED (7) ///< Sensor connected, but communication aborted via GoSensor_Cancel function (disconnect or refresh sensor).
143 #define GO_STATE_INCOMPLETE (8) ///< Sensor connected, but a required buddy sensor is not present (wait or remove buddy association).
144 #define GO_STATE_BUSY (9) ///< Sensor connected, but currently controlled by another sensor (cannot be configured directly).
145 #define GO_STATE_READY (10) ///< Sensor connected and ready to accept configuration commands.
146 #define GO_STATE_RUNNING (11) ///< Sensor connected and currently running.
147 #define GO_STATE_UPGRADING (12) ///< Sensor is currently being upgraded.
148 /**@}*/
149 
150 typedef k32s GoBuddyState;
151 /** @name GoBuddyState
152 *@{*/
153 #define GO_BUDDY_STATE_ERROR (0) ///< General Error.
154 #define GO_BUDDY_STATE_CONNECTING (3) ///< Buddy is currently connecting.
155 #define GO_BUDDY_STATE_CONNECTABLE (2) ///< Sensor can be buddied to.
156 #define GO_BUDDY_STATE_CONNECTED (1) ///< Buddy is connected.
157 #define GO_BUDDY_STATE_ALREADY_BUDDIED (-100) ///< Sensor is already buddied to something else.
158 #define GO_BUDDY_STATE_INVALID_STATE (-99) ///< Buddy is in an invalid state.
159 #define GO_BUDDY_STATE_VERSION_MISMATCH (-98) ///< The sensors are not currently running the same Gocator firmware version.
160 #define GO_BUDDY_STATE_MODEL_MISMATCH (-97) ///< Sensors are not of the same model number and cannot be buddied.
161 #define GO_BUDDY_STATE_UNREACHABLE_ADDRESS (-96) ///< Sensor cannot be connected to.
162 #define GO_BUDDY_STATE_DEVICE_MISSING (-95) ///< Buddied sensor cannot be detected.
163 /**@}*/
164 
165 
166 /**
167  * @struct GoRole
168  * @extends kValue
169  * @ingroup GoSdk
170  * @brief Represents a user role.
171  *
172  * The following enumerators are defined:
173  * - #GO_ROLE_MAIN
174  * - #GO_ROLE_BUDDY
175  */
176 typedef k32s GoRole;
177 /** @name GoRole
178  *@{*/
179 #define GO_ROLE_MAIN (0) ///< Sensor is operating as a main sensor.
180 #define GO_ROLE_BUDDY (1) ///< Sensor is operating as a buddy sensor.
181 #define GOROLE_BUDDYIDX(buddyidx) ((GoRole)GO_ROLE_BUDDY + buddyidx) //finds buddy by index, this expects a zero buddy index as the first index to all buddies
182 /**@}*/
183 
184 /**
185  * @struct GoAcceleratorConnectionStatus
186  * @extends kValue
187  * @ingroup GoSdk
188  * @brief Represents the status of the Accelerator connection.
189  * These are applicable only when using the GoAccelerator class.
190  *
191  * The following enumerators are defined:
192  * - #GO_ACCELERATOR_CONNECTION_STATUS_CONNECTED
193  * - #GO_ACCELERATOR_CONNECTION_STATUS_DISCONNECTED
194  * - #GO_ACCELERATOR_CONNECTION_STATUS_ERROR
195  */
197 /** @name GoAcceleratorConnectionStatus
198  *@{*/
199 #define GO_ACCELERATOR_CONNECTION_STATUS_CONNECTED (0) ///< Accelerated sensor has connected.
200 #define GO_ACCELERATOR_CONNECTION_STATUS_DISCONNECTED (1) ///< Accelerated sensor has disconnected.
201 #define GO_ACCELERATOR_CONNECTION_STATUS_ERROR (2) ///< An error occurred with the accelerated sensor connection.
202 /**@}*/
203 
204 /**
205  * @struct GoAlignmentState
206  * @extends kValue
207  * @ingroup GoSdk
208  * @brief Represents an alignment state.
209  *
210  * The following enumerators are defined:
211  * - #GO_ALIGNMENT_STATE_NOT_ALIGNED
212  * - #GO_ALIGNMENT_STATE_ALIGNED
213  */
214 typedef k32s GoAlignmentState;
215 /** @name GoAlignmentState
216  *@{*/
217 #define GO_ALIGNMENT_STATE_NOT_ALIGNED (0) ///< Sensor is not aligned.
218 #define GO_ALIGNMENT_STATE_ALIGNED (1) ///< Sensor is aligned.
219 /**@}*/
220 
221 /**
222  * @struct GoAlignmentRef
223  * @extends kValue
224  * @ingroup GoSdk
225  * @brief Represents an alignment reference.
226  *
227  * The following enumerators are defined:
228  * - #GO_ALIGNMENT_REF_FIXED
229  * - #GO_ALIGNMENT_REF_DYNAMIC
230  */
231 typedef k32s GoAlignmentRef;
232 /** @name GoAlignmentRef
233  *@{*/
234 #define GO_ALIGNMENT_REF_FIXED (0) ///< The alignment used will be specific to the sensor.
235 #define GO_ALIGNMENT_REF_DYNAMIC (1) ///< The alignment used will be specific to the current job if saved.
236 /**@}*/
237 
238 /**
239  * @struct GoMode
240  * @extends kValue
241  * @ingroup GoSdk
242  * @brief Represents a scan mode.
243  *
244  * The following enumerators are defined:
245  * - #GO_MODE_UNKNOWN
246  * - #GO_MODE_VIDEO
247  * - #GO_MODE_RANGE
248  * - #GO_MODE_PROFILE
249  * - #GO_MODE_SURFACE
250  */
251 typedef k32s GoMode;
252 /** @name GoMode
253  *@{*/
254 #define GO_MODE_UNKNOWN (-1) ///< Unknown scan mode.
255 #define GO_MODE_VIDEO (0) ///< Video scan mode.
256 #define GO_MODE_RANGE (1) ///< Range scan mode.
257 #define GO_MODE_PROFILE (2) ///< Profile scan mode.
258 #define GO_MODE_SURFACE (3) ///< Surface scan mode.
259 /**@}*/
260 
261 
262 /**
263  * @struct GoTrigger
264  * @extends kValue
265  * @ingroup GoSdk
266  * @brief Represents a trigger.
267  *
268  * The following enumerators are defined:
269  * - #GO_TRIGGER_TIME
270  * - #GO_TRIGGER_ENCODER
271  * - #GO_TRIGGER_INPUT
272  * - #GO_TRIGGER_SOFTWARE
273  */
274 typedef k32s GoTrigger;
275 /** @name GoTrigger
276  *@{*/
277 #define GO_TRIGGER_TIME (0) ///< The sensor will be time triggered.
278 #define GO_TRIGGER_ENCODER (1) ///< The sensor will be encoder triggered.
279 #define GO_TRIGGER_INPUT (2) ///< The sensor will be digital input triggered.
280 #define GO_TRIGGER_SOFTWARE (3) ///< The sensor will be software triggered.
281 /** @} */
282 
283 /**
284  * @struct GoEncoderTriggerMode
285  * @extends kValue
286  * @ingroup GoSdk
287  * @brief Represents an encoder's triggering behavior.
288  *
289  * The following enumerators are defined:
290  * - #GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE
291  * - #GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE
292  * - #GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL
293  */
294 typedef k32s GoEncoderTriggerMode;
295 /** @name GoEncoderTriggerMode
296  *@{*/
297 #define GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE (0) ///< Do not reverse trigger. Track reverse motion to prevent repeat forward triggers.
298 #define GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE (1) ///< Do not reverse trigger. Forward trigger unconditionally.
299 #define GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL (2) ///< Forward and reverse trigger.
300 /** @} */
301 
302 /**
303  * @struct GoFrameRateMaxSource
304  * @extends kValue
305  * @ingroup GoSdk
306  * @brief Represents the current maximum frame rate limiting source.
307  *
308  * The following enumerators are defined:
309  * - #GO_FRAME_RATE_MAX_SOURCE_CAMERA
310  * - #GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION
311  */
312 typedef k32s GoFrameRateMaxSource;
313 /** @name GoFrameRateMaxSource
314  *@{*/
315 #define GO_FRAME_RATE_MAX_SOURCE_CAMERA (0) ///< Limited by the sensor's camera configuration.
316 #define GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
317 /** @} */
318 
319 /**
320  * @struct GoEncoderSpacingMinSource
321  * @extends kValue
322  * @ingroup GoSdk
323  * @brief Represents the current encoder period limiting source.
324  *
325  * The following enumerators are defined:
326  * - #GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION
327  * - #GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION
328  */
330 /** @name GoEncoderSpacingMinSource
331  *@{*/
332 #define GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION (0) ///< Limited by encoder resolution.
333 #define GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
334 /**@}*/
335 
336 /**
337  * @struct GoTriggerUnits
338  * @extends kValue
339  * @ingroup GoSdk
340  * @brief Represents the system's primary synchronization domain
341  *
342  * The following enumerators are defined:
343  * - #GO_TRIGGER_UNIT_TIME
344  * - #GO_TRIGGER_UNIT_ENCODER
345  */
346 typedef k32s GoTriggerUnits;
347 /** @name GoTriggerUnits
348  *@{*/
349 #define GO_TRIGGER_UNIT_TIME (0) ///< Base the system on the internal clock.
350 #define GO_TRIGGER_UNIT_ENCODER (1) ///< Base the system on the encoder.
351 /**@}*/
352 
353 /**
354  * @struct GoExposureMode
355  * @extends kValue
356  * @ingroup GoSdk
357  * @brief Represents all possible exposure modes.
358  *
359  * The following enumerators are defined:
360  * - #GO_EXPOSURE_MODE_SINGLE
361  * - #GO_EXPOSURE_MODE_MULTIPLE
362  * - #GO_EXPOSURE_MODE_DYNAMIC
363  */
364 typedef k32s GoExposureMode;
365 /** @name GoExposureMode
366  *@{*/
367 #define GO_EXPOSURE_MODE_SINGLE (0) ///< Single exposure mode.
368 #define GO_EXPOSURE_MODE_MULTIPLE (1) ///< Multiple exposure mode.
369 #define GO_EXPOSURE_MODE_DYNAMIC (2) ///< Dynamic exposure mode.
370 /**@}*/
371 
372 /**
373  * @struct GoOrientation
374  * @extends kValue
375  * @ingroup GoSdk
376  * @brief Represents a sensor orientation type.
377  *
378  * The following enumerators are defined:
379  * - #GO_ORIENTATION_WIDE
380  * - #GO_ORIENTATION_OPPOSITE
381  * - #GO_ORIENTATION_REVERSE
382  */
383 typedef k32s GoOrientation;
384 /** @name GoOrientation
385  *@{*/
386 #define GO_ORIENTATION_WIDE (0) ///< Wide sensor orientation.
387 #define GO_ORIENTATION_OPPOSITE (1) ///< Opposite sensor orientation.
388 #define GO_ORIENTATION_REVERSE (2) ///< Reverse sensor orientation.
389 /**@}*/
390 
391 /**
392  * @struct GoInputSource
393  * @extends kValue
394  * @ingroup GoSdk
395  * @brief Represents a data input source.
396  *
397  * The following enumerators are defined:
398  * - #GO_INPUT_SOURCE_LIVE
399  * - #GO_INPUT_SOURCE_RECORDING
400  */
401 typedef k32s GoInputSource;
402 /** @name GoInputSource
403  *@{*/
404 #define GO_INPUT_SOURCE_LIVE (0) ///< The current data input source is from live sensor data.
405 #define GO_INPUT_SOURCE_RECORDING (1) ///< The current data source is from a replay.
406 /**@}*/
407 
408 /**
409  * @struct GoSeekDirection
410  * @extends kValue
411  * @ingroup GoSdk
412  * @brief Represents a playback seek direction.
413  *
414  * The following enumerators are defined:
415  * - #GO_SEEK_DIRECTION_FORWARD
416  * - #GO_SEEK_DIRECTION_BACKWARD
417  */
418 typedef k32s GoSeekDirection;
419 /** @name GoSeekDirection
420  *@{*/
421 #define GO_SEEK_DIRECTION_FORWARD (0) ///< Seek forward in the current replay.
422 #define GO_SEEK_DIRECTION_BACKWARD (1) ///< Seek backward in the current replay.
423 /**@}*/
424 
425 /**
426  * @struct GoDataSource
427  * @extends kValue
428  * @ingroup GoSdk
429  * @brief Represents a data source.
430  *
431  * The following enumerators are defined:
432  * #GO_DATA_SOURCE_NONE
433  * #GO_DATA_SOURCE_TOP
434  * #GO_DATA_SOURCE_BOTTOM
435  * #GO_DATA_SOURCE_TOP_LEFT
436  * #GO_DATA_SOURCE_TOP_RIGHT
437  * #GO_DATA_SOURCE_TOP_BOTTOM
438  * #GO_DATA_SOURCE_LEFT_RIGHT
439  */
440 typedef k32s GoDataSource;
441 /** @name GoDataSource
442  *@{*/
443 #define GO_DATA_SOURCE_NONE (-1) ///< Used to represent a buddy device when the buddy is not connected
444 #define GO_DATA_SOURCE_TOP (0) ///< Represents main device when in a single sensor or opposite orientation buddy setup. Also represents the combined main and buddy in a wide or reverse orientation
445 #define GO_DATA_SOURCE_BOTTOM (1) ///< Represents the buddy device in an opposite orientation buddy configuration
446 #define GO_DATA_SOURCE_TOP_LEFT (2) ///< Represents the main device in a wide or reverse orientation buddy configuration
447 #define GO_DATA_SOURCE_TOP_RIGHT (3) ///< Represents the buddy device in a wide or reverse orientation buddy configuration
448 #define GO_DATA_SOURCE_TOP_BOTTOM (4) ///< Represents both the main and buddy devices in a opposite orientation
449 #define GO_DATA_SOURCE_LEFT_RIGHT (5) ///< Represents a buddy configuration where data from the two devices are not merged (e.g. buddied 1000 series sensors in a wide layout)
450 /**@}*/
451 
452 /**
453  * @struct GoSpacingIntervalType
454  * @extends kValue
455  * @ingroup GoSdk
456  * @brief Represents spacing interval types.
457  *
458  * The following enumerators are defined:
459  * - #GO_SPACING_INTERVAL_TYPE_MAX_RES
460  * - #GO_SPACING_INTERVAL_TYPE_BALANCED
461  * - #GO_SPACING_INTERVAL_TYPE_MAX_SPEED
462  */
464 /** @name GoSpacingIntervalType
465  *@{*/
466 #define GO_SPACING_INTERVAL_TYPE_MAX_RES (0) ///< Maximum resolution spacing interval type.
467 #define GO_SPACING_INTERVAL_TYPE_BALANCED (1) ///< Balanced spacing interval type.
468 #define GO_SPACING_INTERVAL_TYPE_MAX_SPEED (2) ///< Maximum speed spacing interval type.
469 #define GO_SPACING_INTERVAL_TYPE_CUSTOM (3) ///< The user specified custom interval.
470 /**@}*/
471 
472 /**
473  * @struct GoTriggerSource
474  * @extends kValue
475  * @ingroup GoSdk
476  * @brief Represents a trigger source type.
477  *
478  * The following enumerators are defined:
479  * - #GO_TRIGGER_SOURCE_TIME
480  * - #GO_TRIGGER_SOURCE_ENCODER
481  * - #GO_TRIGGER_SOURCE_INPUT
482  * - #GO_TRIGGER_SOURCE_SOFTWARE
483  */
484 typedef k32s GoTriggerSource;
485 /** @name GoTriggerSource
486  *@{*/
487 #define GO_TRIGGER_SOURCE_TIME (0) ///< Trigger on internal clock.
488 #define GO_TRIGGER_SOURCE_ENCODER (1) ///< Trigger on encoder.
489 #define GO_TRIGGER_SOURCE_INPUT (2) ///< Trigger on digital input.
490 #define GO_TRIGGER_SOURCE_SOFTWARE (3) ///< Trigger on software messages.
491 /**@}*/
492 
493 /**
494  * @struct GoAlignmentType
495  * @extends kValue
496  * @ingroup GoSdk
497  * @brief Represents an alignment type.
498  *
499  * The following enumerators are defined:
500  * - #GO_ALIGNMENT_TYPE_STATIONARY
501  * - #GO_ALIGNMENT_TYPE_MOVING
502  */
503 typedef k32s GoAlignmentType;
504 /** @name GoAlignmentType
505  *@{*/
506 #define GO_ALIGNMENT_TYPE_STATIONARY (0) ///< Stationary target alignment type.
507 #define GO_ALIGNMENT_TYPE_MOVING (1) ///< Moving target alignment type.
508 /**@}*/
509 
510 /**
511  * @struct GoAlignmentTarget
512  * @extends kValue
513  * @ingroup GoSdk
514  * @brief Represents an alignment target type.
515  *
516  * The following enumerators are defined:
517  * - #GO_ALIGNMENT_TARGET_NONE
518  * - #GO_ALIGNMENT_TARGET_DISK
519  * - #GO_ALIGNMENT_TARGET_BAR
520  * - #GO_ALIGNMENT_TARGET_PLATE
521  * - #GO_ALIGNMENT_TARGET_POLYGON
522  */
523 
524 typedef k32s GoAlignmentTarget;
525 /** @name GoAlignmentTarget
526  *@{*/
527 #define GO_ALIGNMENT_TARGET_NONE (0) ///< No calibration target.
528 #define GO_ALIGNMENT_TARGET_DISK (1) ///< Calibration disk.
529 #define GO_ALIGNMENT_TARGET_BAR (2) ///< Calibration bar.
530 #define GO_ALIGNMENT_TARGET_PLATE (3) ///< Calibration plate.
531 #define GO_ALIGNMENT_TARGET_POLYGON (5) ///< Calibration polygon.
532 /**@}*/
533 
534 
535 /**
536  * @struct GoAlignmentDegreesOfFreedom
537  * @extends kValue
538  * @ingroup GoSdk
539  * @brief Represents an alignment degree of freedom setting.
540  *
541  * The following enumerators are defined:
542  * - #GO_ALIGNMENT_DOF_NONE
543  * - #GO_ALIGNMENT_3DOF_XZ_Y
544  * - #GO_ALIGNMENT_4DOF_XYZ_Y
545  * - #GO_ALIGNMENT_5DOF_XYZ_YZ
546  * - #GO_ALIGNMENT_6DOF_XYZ_XYZ
547  */
549 /** @name GoAlignmentDegreesOfFreedom
550  * Enumerations are 6-bit bit masks representing (left to right) axis xyz followed by angles xyz
551  *@{*/
552 #define GO_ALIGNMENT_DOF_NONE (0x00) ///< No degrees of freedom selected.
553 #define GO_ALIGNMENT_3DOF_XZ_Y (0x2A) ///< 3 degrees of freedom: x,z angle y.
554 #define GO_ALIGNMENT_4DOF_XYZ_Y (0x3A) ///< 4 degrees of freedom: x,y,z angle y.
555 #define GO_ALIGNMENT_5DOF_XYZ_YZ (0x3B) ///< 5 degrees of freedom: x,y,z angles y,z.
556 #define GO_ALIGNMENT_6DOF_XYZ_XYZ (0x3F) ///< 6 degrees of freedom: x,y,z angles x,y,z.
557 /**@}*/
558 
559 /**
560  * @struct GoPolygonCornerParameters
561  * @extends kValue
562  * @ingroup GoSdk
563  * @brief Corner parameters for polygon corner alignment.
564  */
566 {
567  kPoint64f point;
568  kArrayList deviceIdxs; // of type kSize
570 
571 /**
572  * @struct GoReplayExportSourceType
573  * @extends kValue
574  * @ingroup GoSdk
575  * @brief Represents the replay export source type.
576  *
577  * The following enumerators are defined:
578  * - #GO_REPLAY_EXPORT_SOURCE_PRIMARY
579  * - #GO_REPLAY_EXPORT_SOURCE_INTENSITY
580  */
582 /** @name GoReplayExportSourceType
583  *@{*/
584 #define GO_REPLAY_EXPORT_SOURCE_PRIMARY (0) ///< Primary data(relevant to the current scan mode) replay export.
585 #define GO_REPLAY_EXPORT_SOURCE_INTENSITY (1) ///< Intensity data replay export.
586 /**@}*/
587 
588 /**
589  * @struct GoFamily
590  * @extends kValue
591  * @ingroup GoSdk
592  * @brief Represents the supported Gocator hardware families.
593  *
594  * The following enumerators are defined:
595  * - #GO_FAMILY_1000
596  * - #GO_FAMILY_2000
597  * - #GO_FAMILY_3000
598  */
599 typedef k32s GoFamily;
600 /** @name GoFamily
601  *@{*/
602 #define GO_FAMILY_UNKNOWN (-1) ///< Unidentified sensor family.
603 #define GO_FAMILY_1000 (0) ///< 1x00 series sensors.
604 #define GO_FAMILY_2000 (1) ///< 2x00 series sensors.
605 #define GO_FAMILY_3000 (2) ///< 3x00 series sensors.
606 /**@}*/
607 
608 /**
609  * @struct GoDecision
610  * @extends kValue
611  * @ingroup GoSdk
612  * @brief Represents the measurement output decision values. Bit 0 represents the decision value, while bits 1 through 7 represent the decision code, outlined by GoDecisionCode.
613  * @see GoDecisionCode
614  *
615  * The following enumerators are defined:
616  * - #GO_DECISION_FAIL
617  * - #GO_DECISION_PASS
618  */
619 typedef k8u GoDecision;
620 /** @name GoDecision
621  *@{*/
622 #define GO_DECISION_FAIL (0) ///< The measurement value is either valid and falls outside the defined passing decision range or is invalid. The failure error code can be used to determine whether the value was valid.
623 #define GO_DECISION_PASS (1) ///< The measurement value is valid and it falls within the defined passing decision range.
624 /**@}*/
625 
626 
627 /**
628  * @struct GoDecisionCode
629  * @extends kValue
630  * @ingroup GoSdk
631  * @brief Represents the possible measurement decision codes.
632  *
633  * The following enumerators are defined:
634  * - #GO_DECISION_CODE_OK
635  * - #GO_DECISION_CODE_INVALID_ANCHOR
636  * - #GO_DECISION_CODE_INVALID_VALUE
637  */
638 typedef k8u GoDecisionCode;
639 /** @name GoDecisionCode
640  *@{*/
641 #define GO_DECISION_CODE_OK (0) ///< The measurement value is valid and it falls outside the defined passing decision range.
642 #define GO_DECISION_CODE_INVALID_VALUE (1) ///< The measurement value is invalid.
643 #define GO_DECISION_CODE_INVALID_ANCHOR (2) ///< The tool associated with the measurement is anchored is has received invalid measurement data from its anchoring source(s).
644 /**@}*/
645 
646 /**
647 * @struct GoIntensitySource
648 * @extends kValue
649 * @ingroup GoSdk
650 * @brief Represents all possible sources of intensity data.
651 *
652 * The following enumerators are defined:
653 * - #GO_INTENSITY_SOURCE_BOTH
654 * - #GO_INTENSITY_SOURCE_FRONT
655 * - #GO_INTENSITY_SOURCE_BACK
656 */
657 typedef k32s GoIntensitySource;
658 /** @name GoIntensitySource
659 *@{*/
660 #define GO_INTENSITY_SOURCE_BOTH (0) ///< Intensity data based on both cameras.
661 #define GO_INTENSITY_SOURCE_FRONT (1) ///< Intensity data based on front camera.
662 #define GO_INTENSITY_SOURCE_BACK (2) ///< Intensity data based on back camera.
663 /**@}*/
664 
665 /**
666 * @struct GoIntensityMode
667 * @extends kValue
668 * @ingroup GoSdk
669 * @brief Represents all possible intensity generation modes for multiple exposures.
670 *
671 * The following enumerators are defined:
672 * - #GO_INTENSITY_MODE_AUTO
673 * - #GO_INTENSITY_MODE_PRESERVE_ORIGINAL
674 */
675 typedef k32s GoIntensityMode;
676 
677 /** @name GoIntensityMode
678 *@{*/
679 #define GO_INTENSITY_MODE_AUTO (0) ///< Automatically pick and scale the most reliable intensity data.
680 #define GO_INTENSITY_MODE_PRESERVE_ORIGINAL (1) ///< Preserve the original values as much as possible.
681 /**@}*/
682 
683 
684 /** @name GoSecurityLevel
685 *@{*/
686 typedef k32u GoSecurityLevel;
687 #define GO_SECURITY_NONE (0) ///< No security, any user type can access system.
688 #define GO_SECURITY_BASIC (1) ///< Basic security level, only authorized user types can access system.
689 /**@}*/
690 
691 #define GO_ERROR_AUTHENTICATION (-2001) ///< logged in user does not have required privileges to performed specific action
692 
693 /**
694 * @struct GoVoltageSetting
695 * @extends kValue
696 * @ingroup GoSdk
697 * @brief Represents either 48V or 24V (with cable length) operation.
698 * Only relevant on G3210
699 *
700 * The following enumerators are defined:
701 * - #GO_VOLTAGE_48
702 * - #GO_VOLTAGE_24
703 */
704 typedef k16u GoVoltageSetting;
705 /** @name GoVoltageSetting
706 *@{*/
707 #define GO_VOLTAGE_48 (0) ///< 48V (No Cable length input required)
708 #define GO_VOLTAGE_24 (1) ///< 24V (Cable Length required + projector dimming)
709 /**@}*/
710 
711 /**
712  * @struct GoStates
713  * @extends kValue
714  * @ingroup GoSdk
715  * @brief Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
716  */
717 typedef struct GoStates
718 {
719  GoState sensorState; ///< The state of the sensor.
720  GoUser loginType; ///< The logged in user.
721  GoAlignmentRef alignmentReference; ///< The alignment reference of the sensor.
722  GoAlignmentState alignmentState; ///< The alignment state of the sensor.
723  kBool recordingEnabled; ///< The current state of recording on the sensor.
724  k32s playbackSource; ///< The current playback source of the sensor.
725  k32u uptimeSec; ///< Sensor uptime in seconds.
726  k32u uptimeMicrosec; ///< Sensor uptime in microseconds.
727  k32u playbackPos; ///< The playback position index.
728  k32u playbackCount; ///< The playback count.
729  kBool autoStartEnabled; ///< The auto-start enabled state.
730  kBool isAccelerator; ///< The accelerated state of the sensor.
731  GoVoltageSetting voltage; ///< Power Source Voltage: 24 or 48 V
732  k32u cableLength; ///< length of the cable from the Sensor to the Master in
733  kBool quickEditEnabled; ///< The current state of editting.
734  GoSecurityLevel security; ///< security level setup on the sensor: none/basic; when basic level does not allow anonymous users accessing system.
735 } GoStates;
736 
737 /**
738  * @struct GoAddressInfo
739  * @extends kValue
740  * @ingroup GoSdk
741  * @brief Sensor network address settings.
742  */
743 typedef struct GoAddressInfo
744 {
745  kBool useDhcp; ///< Sensor uses DHCP?
746  kIpAddress address; ///< Sensor IP address.
747  kIpAddress mask; ///< Sensor subnet bit-mask.
748  kIpAddress gateway; ///< Sensor gateway address.
749 } GoAddressInfo;
750 
751 /**
752  * @struct GoPortInfo
753  * @extends kValue
754  * @ingroup GoSdk
755  * @brief Ports used from a source device.
756  */
757 typedef struct GoPortInfo
758 {
759  k16u controlPort; ///< Control channel port.
760  k16u upgradePort; ///< Upgrade channel port.
761  k16u webPort; ///< Web channel port.
762  k16u dataPort; ///< Data channel port.
763  k16u healthPort; ///< Health channel port.
764 } GoPortInfo;
765 
766 /**
767 * @struct GoBuddyInfo
768 * @extends kValue
769 * @ingroup GoSdk
770 * @brief Buddy related status of another sensor.
771 */
772 typedef struct GoBuddyInfo
773 {
774  k32u id; ///< Serial number of the device.
775  GoBuddyState state;///< Buddy state of this device.
776 } GoBuddyInfo;
777 
778 /**
779  * @struct GoElement64f
780  * @extends kValue
781  * @ingroup GoSdk
782  * @brief Represents a 64-bit floating point configuration element with a range and enabled state.
783  */
784 typedef struct GoElement64f
785 {
786  kBool enabled; ///< Represents whether the element value is currently used. (not always applicable)
787  k64f systemValue; ///< The system value. (not always applicable)
788  k64f value; ///< The element's double field value.
789  k64f max; ///< The maximum allowable value that can be set for this element.
790  k64f min; ///< The minimum allowable value that can be set for this element.
791 } GoElement64f;
792 
793 /**
794  * @struct GoElement32u
795  * @extends kValue
796  * @ingroup GoSdk
797  * @brief Represents a 32-bit unsigned integer configuration element with a range and enabled state.
798  */
799 typedef struct GoElement32u
800 {
801  kBool enabled; ///< Represents whether the element value is currently used.
802  k32u systemValue; ///< The system value. (not always applicable)
803  k32u value; ///< The element's 32-bit unsigned field value.
804  k32u max; ///< The maximum allowable value that can be set for this element.
805  k32u min; ///< The minimum allowable value that can be set for this element.
806 } GoElement32u;
807 
808 /**
809  * @struct GoElementBool
810  * @extends kValue
811  * @ingroup GoSdk
812  * @brief Represents a boolean configuration element with an enabled state.
813  */
814 typedef struct GoElementBool
815 {
816  kBool enabled; ///< Represents whether the element value is currently used.
817  kBool systemValue; ///< The system value. (not always applicable)
818  kBool value; ///< The element's boolean field value.
819 } GoElementBool;
820 
821 /**
822  * @struct GoFilter
823  * @extends kValue
824  * @ingroup GoSdk
825  * @brief Represents a filter configuration element.
826  */
827 typedef struct GoFilter
828 {
829  kBool used; ///< Represents whether the filter field is currently used.
830  GoElement64f value; ///< The filter's configuration properties
831 } GoFilter;
832 
833 /**
834  * @struct GoActiveAreaConfig
835  * @extends kValue
836  * @ingroup GoSdk
837  * @brief Represents an active area configuration element.
838  */
839 typedef struct GoActiveAreaConfig
840 {
841  GoElement64f x; ///< The X offset of the active area. (mm)
842  GoElement64f y; ///< The Y offset of the active area. (mm)
843  GoElement64f z; ///< The Z offset of the active area. (mm)
844  GoElement64f height; ///< The height of the active area. (mm)
845  GoElement64f length; ///< The length of the active area. (mm)
846  GoElement64f width; ///< The width of the active area. (mm)
848 
849 /**
850  * @struct GoTransformation
851  * @extends kValue
852  * @ingroup GoSdk
853  * @brief Represents an alignment element.
854  */
855 typedef struct GoTransformation
856 {
857  k64f x; ///< The X offset of the transformation. (mm)
858  k64f y; ///< The Y offset of the transformation. (mm)
859  k64f z; ///< The Z offset of the transformation. (mm)
860  k64f xAngle; ///< The X angle of the transformation. (degrees)
861  k64f yAngle; ///< The Y angle of the transformation. (degrees)
862  k64f zAngle; ///< The Z angle of the transformation. (degrees)
864 
865 /**
866  * @struct GoTransformedDataRegion
867  * @extends kValue
868  * @ingroup GoSdk
869  * @brief Represents a transformed data region.
870  */
872 {
873  k64f x; ///< The X offset of the transformed data region. (mm)
874  k64f y; ///< The Y offset of the transformed data region. (mm)
875  k64f z; ///< The Z offset of the transformed data region. (mm)
876  k64f width; ///< The width of the transformed data region. (mm)
877  k64f length; ///< The length of the transformed data region. (mm)
878  k64f height; ///< The height of the transformed data region. (mm)
880 
881 /**
882  * @struct GoOutputCompositeSource
883  * @extends kValue
884  * @ingroup GoSdk
885  * @brief Represents a composite data source.
886  */
888 {
889  k32s id; ///< The ID of the underlying data source.
890  GoDataSource dataSource; ///< The data source of the composite data source.
892 
893 /**
894  * @struct GoAsciiOperation
895  * @extends kValue
896  * @ingroup GoSdk-Output
897  * @brief Represents an ASCII protocol operational type.
898  *
899  * The following enumerators are defined:
900  * - #GO_ASCII_OPERATION_ASYNCHRONOUS
901  * - #GO_ASCII_OPERATION_POLLING
902  */
903 typedef k32s GoAsciiOperation;
904 /** @name GoAsciiOperation
905  *@{*/
906 #define GO_ASCII_OPERATION_ASYNCHRONOUS (0) ///< Selected measurement output will be sent upon sensor start.
907 #define GO_ASCII_OPERATION_POLLING (1) ///< Measurement output will only be sent as requested.
908 /**@}*/
909 
910 /**
911  * @struct GoAsciiStandardFormatMode
912  * @extends kValue
913  * @ingroup GoSdk-Output
914  * @brief Represents an ASCII standard format type.
915  *
916  * The following enumerators are defined:
917  * - #GS_ASCII_FORMAT_MODE_MEAS
918  * - #GS_ASCII_FORMAT_MODE_ENCODER_AND_FRAME
919  */
921 /** @name GoAsciiStandardFormatMode
922  *@{*/
923 #define GS_ASCII_FORMAT_MODE_MEAS (0) ///< Standard format will output with measurement values and decisions.
924 #define GS_ASCII_FORMAT_MODE_ENCODER_AND_FRAME (1) ///< Standard format will output with Encoder and Frame, then measurement values and decisions.
925 /**@}*/
926 
927 /**
928  * @struct GoSelcomFormat
929  * @extends kValue
930  * @ingroup GoSdk-Serial
931  * @brief Represents the selcom format followed on the serial output.
932  *
933  * The following enumerators are defined:
934  * - #GO_SELCOM_FORMAT_SLS
935  * - #GO_SELCOM_FORMAT_12BIT_ST
936  * - #GO_SELCOM_FORMAT_14BIT
937  * - #GO_SELCOM_FORMAT_14BIT_ST
938  */
939 typedef k32s GoSelcomFormat;
940 /** @name GoSelcomFormat
941  *@{*/
942 #define GO_SELCOM_FORMAT_SLS (0) ///< Selcom uses the SLS format
943 #define GO_SELCOM_FORMAT_12BIT_ST (1) ///< Selcom uses the 12-Bit Search/Track format
944 #define GO_SELCOM_FORMAT_14BIT (2) ///< Selcom uses the 14-Bit format
945 #define GO_SELCOM_FORMAT_14BIT_ST (3) ///< Selcom uses the 14-Bit Search/Track format
946 /**@}*/
947 
948 /**
949  * @struct GoSerialProtocol
950  * @extends kValue
951  * @ingroup GoSdk-Serial
952  * @brief Represents all serial output protocols.
953  *
954  * The following enumerators are defined:
955  * - #GO_SERIAL_PROTOCOL_GOCATOR
956  * - #GO_SERIAL_PROTOCOL_SELCOM
957  */
958 typedef k32s GoSerialProtocol;
959 /** @name GoSerialProtocol
960  *@{*/
961 #define GO_SERIAL_PROTOCOL_GOCATOR (0) ///< Gocator serial protocol.
962 #define GO_SERIAL_PROTOCOL_SELCOM (1) ///< Selcom serial protocol.
963 /**@}*/
964 
965 
966 /**
967  * @struct GoAnalogTrigger
968  * @extends kValue
969  * @ingroup GoSdk-Analog
970  * @brief Represents an analog output trigger.
971  *
972  * The following enumerators are defined:
973  * - #GO_ANALOG_TRIGGER_MEASUREMENT
974  * - #GO_ANALOG_TRIGGER_SOFTWARE
975  */
976 typedef k32s GoAnalogTrigger;
977 /** @name GoAnalogTrigger
978  *@{*/
979 #define GO_ANALOG_TRIGGER_MEASUREMENT (0) ///< Analog output triggered by measurement data.
980 #define GO_ANALOG_TRIGGER_SOFTWARE (1) ///< Analog output triggered by software.
981 /**@}*/
982 
983 /**
984  * @struct GoDigitalPass
985  * @extends kValue
986  * @ingroup GoSdk-Digital
987  * @brief Represents a digital output condition.
988  *
989  * The following enumerators are defined:
990  * - #GO_DIGITAL_PASS_TRUE
991  * - #GO_DIGITAL_PASS_FALSE
992  * - #GO_DIGITAL_PASS_ALWAYS
993  */
994 typedef k32s GoDigitalPass;
995 /** @name GoDigitalPass
996  *@{*/
997 #define GO_DIGITAL_PASS_TRUE (0) ///< Digital output triggers when all selected measurements pass.
998 #define GO_DIGITAL_PASS_FALSE (1) ///< Digital output triggers when all selected measurements fail.
999 #define GO_DIGITAL_PASS_ALWAYS (2) ///< Digital output triggers on every scan.
1000 /**@}*/
1001 
1002 /**
1003  * @struct GoDigitalSignal
1004  * @extends kValue
1005  * @ingroup GoSdk-Digital
1006  * @brief Represents a digital output signal type.
1007  *
1008  * The following enumerators are defined:
1009  * - #GO_DIGITAL_SIGNAL_PULSED
1010  * - #GO_DIGITAL_SIGNAL_CONTINUOUS
1011  */
1012 typedef k32s GoDigitalSignal;
1013 /** @name GoDigitalSignal
1014  *@{*/
1015 #define GO_DIGITAL_SIGNAL_PULSED (0) ///< Digital output is pulsed when triggered.
1016 #define GO_DIGITAL_SIGNAL_CONTINUOUS (1) ///< Digital output is continuous when triggered.
1017 /**@}*/
1018 
1019 /**
1020  * @struct GoDigitalEvent
1021  * @extends kValue
1022  * @ingroup GoSdk-Digital
1023  * @brief Represents a digital output event.
1024  *
1025  * The following enumerators are defined:
1026  * - #GO_DIGITAL_EVENT_MEASUREMENT
1027  * - #GO_DIGITAL_EVENT_SOFTWARE
1028  * - #GO_DIGITAL_EVENT_ALIGNMENT
1029  * - #GO_DIGITAL_EVENT_EXPOSURE_BEGIN
1030  * - #GO_DIGITAL_EVENT_EXPOSURE_END
1031  */
1032 typedef k32s GoDigitalEvent;
1033 /** @name GoDigitalEvent
1034  *@{*/
1035 #define GO_DIGITAL_EVENT_MEASUREMENT (1) ///< Digital output is triggered by measurement data.
1036 #define GO_DIGITAL_EVENT_SOFTWARE (2) ///< Digital output is triggered by software.
1037 #define GO_DIGITAL_EVENT_ALIGNMENT (3) ///< Digital output represents the alignment status.
1038 #define GO_DIGITAL_EVENT_EXPOSURE_BEGIN (4) ///< Digital output is triggered at the start of exposure.
1039 #define GO_DIGITAL_EVENT_EXPOSURE_END (5) ///< Digital output is triggered at the end of exposure, prior to processing.
1040 /**@}*/
1041 
1042 /**
1043  * @struct GoAnalogEvent
1044  * @extends kValue
1045  * @ingroup GoSdk-Analog
1046  * @brief Represents a analog output event.
1047  *
1048  * The following enumerators are defined:
1049  * - #GO_ANALOG_EVENT_MEASURMENT
1050  * - #GO_ANALOG_EVENT_SOFTWARE
1051  */
1052 typedef k32s GoAnalogEvent;
1053 /** @name GoAnalogEvent
1054  *@{*/
1055 #define GO_ANALOG_EVENT_MEASURMENT (1) ///< Analog output is triggered by measurement data.
1056 #define GO_ANALOG_EVENT_SOFTWARE (2) ///< Analog output is triggered by software.
1057 /**@}*/
1058 
1059 /**
1060  * @struct GoEthernetProtocol
1061  * @extends kValue
1062  * @ingroup GoSdk-Ethernet
1063  * @brief Represents a ethernet output protocol.
1064  *
1065  * The following enumerators are defined:
1066  * - #GO_ETHERNET_PROTOCOL_GOCATOR
1067  * - #GO_ETHERNET_PROTOCOL_MODBUS
1068  * - #GO_ETHERNET_PROTOCOL_ETHERNET_IP
1069  * - #GO_ETHERNET_PROTOCOL_ASCII
1070  * - #GO_ETHERNET_PROTOCOL_PROFINET
1071  */
1072 typedef k32s GoEthernetProtocol;
1073 /** @name GoEthernetProtocol
1074  *@{*/
1075 #define GO_ETHERNET_PROTOCOL_GOCATOR (0) ///< Gocator ethernet protocol.
1076 #define GO_ETHERNET_PROTOCOL_MODBUS (1) ///< Modbus ethernet protocol.
1077 #define GO_ETHERNET_PROTOCOL_ETHERNET_IP (2) ///< EthernetIP ethernet protocol.
1078 #define GO_ETHERNET_PROTOCOL_ASCII (3) ///< ASCII ethernet protocol.
1079 #define GO_ETHERNET_PROTOCOL_PROFINET (4) ///< Profinet ethernet protocol.
1080  /**@}*/
1081 
1082 
1083 /**
1084  * @struct GoEndianType
1085  * @extends kValue
1086  * @ingroup GoSdk-Ethernet
1087  * @brief Represents an endian output type.
1088  *
1089  * The following enumerators are defined:
1090  * - #GO_ENDIAN_TYPE_BIG
1091  * - #GO_ENDIAN_TYPE_LITTLE
1092  */
1093 typedef k32s GoEndianType;
1094 /** @name GoEndianType
1095  *@{*/
1096 #define GO_ENDIAN_TYPE_BIG (0) ///< Big Endian output.
1097 #define GO_ENDIAN_TYPE_LITTLE (1) ///< Little Endian output.
1098 /**@}*/
1099 
1100 
1101 /**
1102  * @struct GoOutputSource
1103  * @extends kValue
1104  * @ingroup GoSdk-Output
1105  * @brief Represents output sources.
1106  *
1107  * The following enumerators are defined:
1108  * - #GO_OUTPUT_SOURCE_NONE
1109  * - #GO_OUTPUT_SOURCE_VIDEO
1110  * - #GO_OUTPUT_SOURCE_RANGE
1111  * - #GO_OUTPUT_SOURCE_PROFILE
1112  * - #GO_OUTPUT_SOURCE_SURFACE
1113  * - #GO_OUTPUT_SOURCE_SECTION
1114  * - #GO_OUTPUT_SOURCE_RANGE_INTENSITY
1115  * - #GO_OUTPUT_SOURCE_PROFILE_INTENSITY
1116  * - #GO_OUTPUT_SOURCE_SURFACE_INTENSITY
1117  * - #GO_OUTPUT_SOURCE_SECTION_INTENSITY
1118  * - #GO_OUTPUT_SOURCE_MEASUREMENT
1119  * - #GO_OUTPUT_SOURCE_TRACHEID
1120  */
1121 typedef k32s GoOutputSource;
1122 /** @name GoOutputSource
1123  *@{*/
1124 #define GO_OUTPUT_SOURCE_NONE (0) ///< Unknown output source.
1125 #define GO_OUTPUT_SOURCE_VIDEO (1) ///< Output video data.
1126 #define GO_OUTPUT_SOURCE_RANGE (2) ///< Output range data.
1127 #define GO_OUTPUT_SOURCE_PROFILE (3) ///< Output profile data.
1128 #define GO_OUTPUT_SOURCE_SURFACE (4) ///< Output surface data.
1129 #define GO_OUTPUT_SOURCE_RANGE_INTENSITY (5) ///< Output range intensity data.
1130 #define GO_OUTPUT_SOURCE_PROFILE_INTENSITY (6) ///< Output profile intensity data.
1131 #define GO_OUTPUT_SOURCE_SURFACE_INTENSITY (7) ///< Output surface intensity data.
1132 #define GO_OUTPUT_SOURCE_MEASUREMENT (8) ///< Output measurement data.
1133 #define GO_OUTPUT_SOURCE_SECTION (9) ///< Output section data.
1134 #define GO_OUTPUT_SOURCE_SECTION_INTENSITY (10) ///< Output section intensity data.
1135 #define GO_OUTPUT_SOURCE_TRACHEID (11) ///< Output tracheid data.
1136 #define GO_OUTPUT_SOURCE_EVENT (12) ///< Output event data.
1137 #define GO_OUTPUT_SOURCE_FEATURE (13) ///< Output feature data.
1138 #define GO_OUTPUT_SOURCE_TOOLDATA (14) ///< Output tool data.
1139  /**@}*/
1140 
1141 /**
1142  * @struct GoDataStep
1143  * @extends kValue
1144  * @ingroup GoSdk-Tools
1145  * @brief Represents possible data streams.
1146  *
1147  * The following enumerators are defined:
1148  * - #GO_DATA_STEP_NONE
1149  * - #GO_DATA_STEP_VIDEO
1150  * - #GO_DATA_STEP_RANGE
1151  * - #GO_DATA_STEP_PROFILE
1152  * - #GO_DATA_STEP_SURFACE
1153  * - #GO_DATA_STEP_SECTION
1154  * - #GO_DATA_STEP_PROFILE_RAW
1155  * - #GO_DATA_STEP_SURFACE_RAW
1156  * - #GO_DATA_STEP_TRACHEID
1157  * - #GO_DATA_STEP_TOOLDATA_OUTPUTS
1158  * - #GO_DATA_STEP_PROFILE_UNMERGED_HDR
1159  * - #GO_DATA_STEP_SURFACE_ORIGINAL
1160  */
1161 typedef k32s GoDataStep;
1162 /** @name GoDataStep
1163  *@{*/
1164 #define GO_DATA_STEP_NONE (-1) ///< Indicates that no specific stream has been specified.
1165 #define GO_DATA_STEP_VIDEO (0) ///< Video data stream.
1166 #define GO_DATA_STEP_RANGE (1) ///< Range data stream.
1167 #define GO_DATA_STEP_PROFILE (2) ///< Profile data stream.
1168 #define GO_DATA_STEP_SURFACE (3) ///< Surface data stream.
1169 #define GO_DATA_STEP_SECTION (4) ///< Section data stream.
1170 #define GO_DATA_STEP_PROFILE_RAW (5) ///< Raw profile data stream.
1171 #define GO_DATA_STEP_SURFACE_RAW (6) ///< Raw surface data stream.
1172 #define GO_DATA_STEP_TRACHEID (7) ///< Tracheid data stream.
1173 #define GO_DATA_STEP_TOOLDATA_OUTPUTS (8) ///< Tool Data Output data stream.
1174 #define GO_DATA_STEP_PROFILE_UNMERGED_HDR (9) ///< Unmerged profile data stream.
1175 #define GO_DATA_STEP_SURFACE_ORIGINAL (11) ///< Original surface data stream.
1176 
1177  /**@}*/
1178 
1179 
1180 /**
1181  * @struct GoDataStream
1182  * @extends kValue
1183  * @ingroup GoSdk-Output
1184  * @brief Represents a data stream which consists of a data step and ID.
1185  */
1186 typedef struct GoDataStream
1187 {
1188  GoDataStep step;
1189  k32s id;
1190 } GoDataStream;
1191 
1192 /**
1193  * @struct GoDataStreamId
1194  * @extends kValue
1195  * @ingroup GoSdk-ExtTool
1196  * @brief Represents a data stream id which consists of a data step, step id and source id.
1197  */
1198 typedef struct GoDataStreamId
1199 {
1200  k32s step;
1201  k32s id;
1202  k32s source;
1203 } GoDataStreamId;
1204 
1205 /**
1206  * @struct GoOutputDelayDomain
1207  * @extends kValue
1208  * @ingroup GoSdk-Output
1209  * @brief Represents an output delay domain.
1210  *
1211  * The following enumerators are defined:
1212  * - #GO_OUTPUT_DELAY_DOMAIN_TIME
1213  * - #GO_OUTPUT_DELAY_DOMAIN_ENCODER
1214  */
1215 typedef k32s GoOutputDelayDomain;
1216 /** @name GoOutputDelayDomain
1217  *@{*/
1218 #define GO_OUTPUT_DELAY_DOMAIN_TIME (0) ///< Time(uS) based delay domain.
1219 #define GO_OUTPUT_DELAY_DOMAIN_ENCODER (1) ///< Encoder tick delay domain.
1220 /**@}*/
1221 
1222 /**
1223  * @struct GoPixelType
1224  * @ingroup GoSdk
1225  * @brief Represents a video message pixel type.
1226  *
1227  * The following enumerators are defined:
1228  * - #GO_PIXEL_TYPE_8U
1229  * - #GO_PIXEL_TYPE_RGB
1230  */
1231 typedef k32s GoPixelType;
1232 /** @name GoPixelType
1233  *@{*/
1234 #define GO_PIXEL_TYPE_UNKNOWN (-1)
1235 #define GO_PIXEL_TYPE_8U (0) ///< Each pixel is represented as unsigned 8-bit values.
1236 #define GO_PIXEL_TYPE_RGB (1) ///< Each pixel is represented as three unsigned 8-bit values.
1237 /**@}*/
1238 
1239 /**
1240  * @struct GoToolType
1241  * @extends kValue
1242  * @ingroup GoSdk-Tools
1243  * @brief Lists all tool types.
1244  *
1245  * The following enumerators are defined:
1246  * - #GO_TOOL_UNKNOWN
1247  * - #GO_TOOL_RANGE_POSITION
1248  * - #GO_TOOL_RANGE_THICKNESS
1249  * - #GO_TOOL_PROFILE_AREA
1250  * - #GO_TOOL_PROFILE_BOUNDING_BOX
1251  * - #GO_TOOL_PROFILE_BRIDGE_VALUE
1252  * - #GO_TOOL_PROFILE_CIRCLE
1253  * - #GO_TOOL_PROFILE_DIMENSION
1254  * - #GO_TOOL_PROFILE_GROOVE
1255  * - #GO_TOOL_PROFILE_INTERSECT
1256  * - #GO_TOOL_PROFILE_LINE
1257  * - #GO_TOOL_PROFILE_PANEL
1258  * - #GO_TOOL_PROFILE_POSITION
1259  * - #GO_TOOL_PROFILE_STRIP
1260  * - #GO_TOOL_PROFILE_X_LINE
1261  * - #GO_TOOL_SURFACE_BOUNDING_BOX
1262  * - #GO_TOOL_SURFACE_COUNTERSUNK_HOLE
1263  * - #GO_TOOL_SURFACE_ELLIPSE
1264  * - #GO_TOOL_SURFACE_HOLE
1265  * - #GO_TOOL_SURFACE_OPENING
1266  * - #GO_TOOL_SURFACE_PLANE
1267  * - #GO_TOOL_SURFACE_POSITION
1268  * - #GO_TOOL_SURFACE_STUD
1269  * - #GO_TOOL_SURFACE_VOLUME
1270  * - #GO_TOOL_SCRIPT
1271  */
1272 typedef k32s GoToolType;
1273 /** @name GoToolType
1274  *@{*/
1275 #define GO_TOOL_UNKNOWN (-1) ///< Unknown tool.
1276 #define GO_TOOL_RANGE_POSITION (0) ///< Range Position tool.
1277 #define GO_TOOL_RANGE_THICKNESS (1) ///< Range Thickness tool.
1278 #define GO_TOOL_PROFILE_AREA (2) ///< Profile Area tool.
1279 #define GO_TOOL_PROFILE_BOUNDING_BOX (21) ///< Profile Bounding Box tool.
1280 #define GO_TOOL_PROFILE_BRIDGE_VALUE (24) ///< Profile Bridge Value tool.
1281 #define GO_TOOL_PROFILE_CIRCLE (3) ///< Profile Circle tool.
1282 #define GO_TOOL_PROFILE_DIMENSION (4) ///< Profile Dimension tool.
1283 #define GO_TOOL_PROFILE_GROOVE (5) ///< Profile Groove tool.
1284 #define GO_TOOL_PROFILE_INTERSECT (6) ///< Profile Intersect tool.
1285 #define GO_TOOL_PROFILE_LINE (7) ///< Profile Line tool.
1286 #define GO_TOOL_PROFILE_PANEL (8) ///< Profile Panel tool.
1287 #define GO_TOOL_PROFILE_POSITION (9) ///< Profile Position tool.
1288 #define GO_TOOL_PROFILE_STRIP (10) ///< Profile Strip tool.
1289 #define GO_TOOL_PROFILE_X_LINE (23) ///< Profile X-Line tool.
1290 #define GO_TOOL_SURFACE_BOUNDING_BOX (11) ///< Surface Bounding Box tool.
1291 #define GO_TOOL_SURFACE_COUNTERSUNK_HOLE (20) ///< Surface Countersunk Hole tool.
1292 #define GO_TOOL_SURFACE_DIMENSION (25) ///< Surface Dimension tool.
1293 #define GO_TOOL_SURFACE_ELLIPSE (12) ///< Surface Ellipse tool.
1294 #define GO_TOOL_SURFACE_HOLE (13) ///< Surface Hole tool.
1295 #define GO_TOOL_SURFACE_OPENING (14) ///< Surface Opening tool.
1296 #define GO_TOOL_SURFACE_PLANE (15) ///< Surface Plane tool.
1297 #define GO_TOOL_SURFACE_POSITION (16) ///< Surface Position tool.
1298 #define GO_TOOL_SURFACE_RIVET (22) ///< Surface Rivet tool.
1299 #define GO_TOOL_SURFACE_STUD (17) ///< Surface Stud tool.
1300 #define GO_TOOL_SURFACE_VOLUME (18) ///< Surface Volume tool.
1301 #define GO_TOOL_SCRIPT (19) ///< Script tool.
1302 #define GO_TOOL_PROFILE_ROUND_CORNER (26) ///< Profile Round Corner tool.
1303 
1304 #define GO_TOOL_EXTENSIBLE (1000)
1305 #define GO_TOOL_TOOL (1001)
1306 /**@}*/
1307 
1308 /**
1309 * @struct GoDataType
1310 * @extends kValue
1311 * @ingroup GoSdk-Tools
1312 * @brief Represents data source selections. Used as a bitmask.
1313 */
1314 typedef k32s GoDataType;
1315 /** @name GoDataType
1316 *@{*/
1317 #define GO_DATA_TYPE_NONE (0x1) ///< None.
1318 #define GO_DATA_TYPE_RANGE (0x2) ///< Range data.
1319 #define GO_DATA_TYPE_UNIFORM_PROFILE (0x4) ///< Uniformly-spaced (resampled) profile data.
1320 #define GO_DATA_TYPE_PROFILE_POINT_CLOUD (0x8) ///< Unresampled profile data.
1321 #define GO_DATA_TYPE_UNIFORM_SURFACE (0x10) ///< Uniformly-spaced height map.
1322 #define GO_DATA_TYPE_SURFACE_POINT_CLOUD (0x20) ///< Unresampled point cloud.
1323 #define GO_DATA_TYPE_UNMERGED_PROFILE_POINT_CLOUD (0x40) ///< Unmerged raw profile data. Reserved for future use.
1324 #define GO_DATA_TYPE_VIDEO (0x80) ///< Video data.
1325 #define GO_DATA_TYPE_TRACHEID (0x100) ///< Tracheid data. Reserved for internal use.
1326 #define GO_DATA_TYPE_GENERIC (0x4000) ///< Generic data.
1327 #define GO_DATA_TYPE_FEATURES_ONLY (0x10000000) ///< Geometric features only. No scan data.
1328 
1329 #define GO_DATA_TYPE_RAW_PROFILE (GO_DATA_TYPE_PROFILE_POINT_CLOUD) ///< Unresampled profile data. (Deprecated)
1330 #define GO_DATA_TYPE_RAW_SURFACE (GO_DATA_TYPE_SURFACE_POINT_CLOUD) ///< Unresampled point cloud. (Deprecated)
1331 #define GO_DATA_TYPE_UNMERGED_RAW_PROFILE (GO_DATA_TYPE_UNMERGED_PROFILE_POINT_CLOUD) ///< Unmerged raw profile data. (Deprecated)
1332 /**@}*/
1333 
1334 /**
1335 * @struct GoFeatureDataType
1336 * @extends kValue
1337 * @ingroup GoSdk-Tools
1338 * @brief Lists all feature data types.
1339 *
1340 * The following enumerators are defined:
1341 * - #GO_FEATURE_DATA_UNKNOWN
1342 * - #GO_FEATURE_DATA_POINT
1343 * - #GO_FEATURE_DATA_LINE
1344 * - #GO_FEATURE_DATA_CIRCLE
1345 * - #GO_FEATURE_DATA_PLANE
1346 */
1347 typedef k32s GoFeatureDataType;
1348 /** @name GoFeatureDataType
1349 *@{*/
1350 #define GO_FEATURE_DATA_UNKNOWN (-1) ///< Unknown feature.
1351 #define GO_FEATURE_DATA_POINT (0) ///< Point feature.
1352 #define GO_FEATURE_DATA_LINE (1) ///< Linear feature.
1353 #define GO_FEATURE_DATA_CIRCLE (2) ///< Circular feature.
1354 #define GO_FEATURE_DATA_PLANE (3) ///< Planar feature.
1355 /**@}*/
1356 
1357 /**
1358 * @struct GoFeatureType
1359 * @extends kValue
1360 * @ingroup GoSdk-Tools
1361 * @brief Lists all feature types.
1362 *
1363 * The following enumerators are defined:
1364 * - #GO_FEATURE_UNKNOWN
1365 * - #GO_FEATURE_EXTENSIBLE
1366 */
1367 typedef k32s GoFeatureType;
1368 /** @name GoFeatureType
1369 *@{*/
1370 #define GO_FEATURE_UNKNOWN (-1) ///< Unknown feature.
1371 #define GO_FEATURE_EXTENSIBLE (0) ///< Extensible feature.
1372 /**@}*/
1373 
1374 
1375 /**
1376  * @struct GoMeasurementType
1377  * @extends kValue
1378  * @ingroup GoSdk-Tools
1379  * @brief Lists all measurement types.
1380  *
1381  * The following enumerators are defined:
1382  * - #GO_MEASUREMENT_UNKNOWN
1383  * - #GO_MEASUREMENT_RANGE_POSITION_Z
1384  * - #GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS
1385  * - #GO_MEASUREMENT_PROFILE_AREA_AREA
1386  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_X
1387  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z
1388  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_X
1389  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_Z
1390  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_HEIGHT
1391  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_WIDTH
1392  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_X
1393  * - #GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_ANGLE
1394  * - #GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_BRIDGE_VALUE
1395  * - #GO_MEASUREMENT_PROFILE_CIRCLE_X
1396  * - #GO_MEASUREMENT_PROFILE_CIRCLE_Z
1397  * - #GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS
1398  * - #GO_MEASUREMENT_PROFILE_CIRCLE_STDDEV
1399  * - #GO_MEASUREMENT_PROFILE_CIRCLE_MIN_ERROR
1400  * - #GO_MEASUREMENT_PROFILE_CIRCLE_MIN_ERROR_X
1401  * - #GO_MEASUREMENT_PROFILE_CIRCLE_MIN_ERROR_Z
1402  * - #GO_MEASUREMENT_PROFILE_CIRCLE_MAX_ERROR
1403  * - #GO_MEASUREMENT_PROFILE_CIRCLE_MAX_ERROR_X
1404  * - #GO_MEASUREMENT_PROFILE_CIRCLE_MAX_ERROR_Z
1405  * - #GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH
1406  * - #GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT
1407  * - #GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE
1408  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X
1409  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z
1410  * - #GO_MEASUREMENT_PROFILE_GROOVE_X
1411  * - #GO_MEASUREMENT_PROFILE_GROOVE_Z
1412  * - #GO_MEASUREMENT_PROFILE_GROOVE_WIDTH
1413  * - #GO_MEASUREMENT_PROFILE_GROOVE_DEPTH
1414  * - #GO_MEASUREMENT_PROFILE_INTERSECT_X
1415  * - #GO_MEASUREMENT_PROFILE_INTERSECT_Z
1416  * - #GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE
1417  * - #GO_MEASUREMENT_PROFILE_LINE_STDDEV
1418  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN
1419  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX
1420  * - #GO_MEASUREMENT_PROFILE_LINE_PERCENTILE
1421  * - #GO_MEASUREMENT_PROFILE_PANEL_GAP
1422  * - #GO_MEASUREMENT_PROFILE_PANEL_FLUSH
1423  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_X
1424  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_Z
1425  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_X
1426  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_Z
1427  * - #GO_MEASUREMENT_PROFILE_PANEL_LEFT_SURFACE_ANGLE
1428  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_X
1429  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_Z
1430  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_X
1431  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_Z
1432  * - #GO_MEASUREMENT_PROFILE_PANEL_RIGHT_SURFACE_ANGLE
1433  * - #GO_MEASUREMENT_PROFILE_POSITION_X
1434  * - #GO_MEASUREMENT_PROFILE_POSITION_Z
1435  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_X
1436  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z
1437  * - #GO_MEASUREMENT_PROFILE_STRIP_WIDTH
1438  * - #GO_MEASUREMENT_PROFILE_STRIP_HEIGHT
1439  * - #GO_MEASUREMENT_PROFILE_X_LINE_Z
1440  * - #GO_MEASUREMENT_PROFILE_X_LINE_VALIDITY
1441  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X
1442  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y
1443  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z
1444  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE
1445  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT
1446  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH
1447  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH
1448  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X
1449  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y
1450  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Z_ANGLE
1451  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X
1452  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y
1453  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Z
1454  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_OUTER_RADIUS
1455  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_DEPTH
1456  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_RADIUS
1457  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_ANGLE
1458  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X_ANGLE
1459  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y_ANGLE
1460  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_COUNTERBORE_DEPTH
1461  * - #GO_MEASUREMENT_SURFACE_DIMENSION_WIDTH
1462  * - #GO_MEASUREMENT_SURFACE_DIMENSION_HEIGHT
1463  * - #GO_MEASUREMENT_SURFACE_DIMENSION_LENGTH
1464  * - #GO_MEASUREMENT_SURFACE_DIMENSION_DISTANCE
1465  * - #GO_MEASUREMENT_SURFACE_DIMENSION_PLANE_DISTANCE
1466  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_X
1467  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Y
1468  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Z
1469  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR
1470  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR
1471  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO
1472  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE
1473  * - #GO_MEASUREMENT_SURFACE_HOLE_X
1474  * - #GO_MEASUREMENT_SURFACE_HOLE_Y
1475  * - #GO_MEASUREMENT_SURFACE_HOLE_Z
1476  * - #GO_MEASUREMENT_SURFACE_HOLE_RADIUS
1477  * - #GO_MEASUREMENT_SURFACE_OPENING_X
1478  * - #GO_MEASUREMENT_SURFACE_OPENING_Y
1479  * - #GO_MEASUREMENT_SURFACE_OPENING_Z
1480  * - #GO_MEASUREMENT_SURFACE_OPENING_WIDTH
1481  * - #GO_MEASUREMENT_SURFACE_OPENING_LENGTH
1482  * - #GO_MEASUREMENT_SURFACE_OPENING_ANGLE
1483  * - #GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE
1484  * - #GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE
1485  * - #GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET
1486  * - #GO_MEASUREMENT_SURFACE_PLANE_STD_DEV
1487  * - #GO_MEASUREMENT_SURFACE_PLANE_ERROR_MIN
1488  * - #GO_MEASUREMENT_SURFACE_PLANE_ERROR_MAX
1489  * - #GO_MEASUREMENT_SURFACE_PLANE_X_NORMAL
1490  * - #GO_MEASUREMENT_SURFACE_PLANE_Y_NORMAL
1491  * - #GO_MEASUREMENT_SURFACE_PLANE_Z_NORMAL
1492  * - #GO_MEASUREMENT_SURFACE_PLANE_DISTANCE
1493  * - #GO_MEASUREMENT_SURFACE_POSITION_X
1494  * - #GO_MEASUREMENT_SURFACE_POSITION_Y
1495  * - #GO_MEASUREMENT_SURFACE_POSITION_Z
1496  * - #GO_MEASUREMENT_SURFACE_RIVET_X
1497  * - #GO_MEASUREMENT_SURFACE_RIVET_Y
1498  * - #GO_MEASUREMENT_SURFACE_RIVET_Z
1499  * - #GO_MEASUREMENT_SURFACE_RIVET_TILT_ANGLE
1500  * - #GO_MEASUREMENT_SURFACE_RIVET_TILT_DIRECTION
1501  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIUS
1502  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MIN
1503  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MAX
1504  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MEAN
1505  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_STD_DEV
1506  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MIN
1507  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MAX
1508  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MEAN
1509  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_STD_DEV
1510  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MIN
1511  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MAX
1512  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MEAN
1513  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_STD_DEV
1514  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_X
1515  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Y
1516  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Z
1517  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_X
1518  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Y
1519  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Z
1520  * - #GO_MEASUREMENT_SURFACE_STUD_RADIUS
1521  * - #GO_MEASUREMENT_SURFACE_VOLUME_AREA
1522  * - #GO_MEASUREMENT_SURFACE_VOLUME_VOLUME
1523  * - #GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS
1524  * - #GO_MEASUREMENT_SCRIPT_OUTPUT
1525  */
1526 typedef k32s GoMeasurementType;
1527 /** @name GoMeasurementType
1528  *@{*/
1529 #define GO_MEASUREMENT_UNKNOWN (-1) ///< Unknown measurement.
1530 #define GO_MEASUREMENT_RANGE_POSITION_Z (0) ///< Range Position tool Z measurement.
1531 #define GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS (1) ///< Range Thickness tool Thickness measurement.
1532 #define GO_MEASUREMENT_PROFILE_AREA_AREA (2) ///< Profile Area tool Area measurement.
1533 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_X (3) ///< Profile Area tool Centroid X measurement.
1534 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z (4) ///< Profile Area tool Centroid Z measurement.
1535 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_X (82) ///< Profile Bounding Box X measurement.
1536 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_Z (83) ///< Profile Bounding Box Z measurement.
1537 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_HEIGHT (84) ///< Profile Bounding Box Height measurement.
1538 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_WIDTH (85) ///< Profile Bounding Box Width measurement.
1539 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_X (86) ///< Profile Bounding Box Global X measurement.
1540 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_Y (112) ///< Profile Bounding Box Global Y measurement.
1541 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_ANGLE (113) ///< Profile Bounding Box Global Angle measurement.
1542 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_BRIDGE_VALUE (106) ///< Profile Bridge Value measurement.
1543 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_ANGLE (107) ///< Profile Bridge Value measurement.
1544 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_WINDOW (146) ///< Profile Bridge Value measurement.
1545 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_STDDEV (147) ///< Profile Bridge Value measurement.
1546 #define GO_MEASUREMENT_PROFILE_CIRCLE_X (5) ///< Profile Circle tool X measurement.
1547 #define GO_MEASUREMENT_PROFILE_CIRCLE_Z (6) ///< Profile Circle tool Z measurement.
1548 #define GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS (7) ///< Profile Circle tool Radius measurement.
1549 #define GO_MEASUREMENT_PROFILE_CIRCLE_STDDEV (148) ///< Profile Circle tool StdDev measurement.
1550 #define GO_MEASUREMENT_PROFILE_CIRCLE_MIN_ERROR (149) ///< Profile Circle tool Minimum Error measurement.
1551 #define GO_MEASUREMENT_PROFILE_CIRCLE_MIN_ERROR_X (150) ///< Profile Circle tool Minimum Error X measurement.
1552 #define GO_MEASUREMENT_PROFILE_CIRCLE_MIN_ERROR_Z (151) ///< Profile Circle tool Minimum Error Z measurement.
1553 #define GO_MEASUREMENT_PROFILE_CIRCLE_MAX_ERROR (152) ///< Profile Circle tool Maximum Error measurement.
1554 #define GO_MEASUREMENT_PROFILE_CIRCLE_MAX_ERROR_X (153) ///< Profile Circle tool Maximum Error X measurement.
1555 #define GO_MEASUREMENT_PROFILE_CIRCLE_MAX_ERROR_Z (154) ///< Profile Circle tool Maximum Error Z measurement.
1556 #define GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH (8) ///< Profile Dimension tool Width measurement.
1557 #define GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT (9) ///< Profile Dimension tool Height measurement.
1558 #define GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE (10) ///< Profile Dimension tool Distance measurement.
1559 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X (11) ///< Profile Dimension tool Center X measurement.
1560 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z (12) ///< Profile Dimension tool Center Z measurement.
1561 #define GO_MEASUREMENT_PROFILE_GROOVE_X (13) ///< Profile Groove tool X measurement.
1562 #define GO_MEASUREMENT_PROFILE_GROOVE_Z (14) ///< Profile Groove tool Z measurement.
1563 #define GO_MEASUREMENT_PROFILE_GROOVE_WIDTH (15) ///< Profile Groove tool Width measurement.
1564 #define GO_MEASUREMENT_PROFILE_GROOVE_DEPTH (16) ///< Profile Groove tool Depth measurement.
1565 #define GO_MEASUREMENT_PROFILE_INTERSECT_X (17) ///< Profile Intersect tool X measurement.
1566 #define GO_MEASUREMENT_PROFILE_INTERSECT_Z (18) ///< Profile Intersect tool Z measurement.
1567 #define GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE (19) ///< Profile Intersect tool Angle measurement.
1568 #define GO_MEASUREMENT_PROFILE_LINE_STDDEV (20) ///< Profile Line tool Standard Deviation measurement.
1569 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN (21) ///< Profile Line tool Minimum Error measurement.
1570 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX (22) ///< Profile Line tool Maximum Error measurement.
1571 #define GO_MEASUREMENT_PROFILE_LINE_PERCENTILE (23) ///< Profile Line tool Percentile measurement.
1572 #define GO_MEASUREMENT_PROFILE_LINE_OFFSET (130) ///< Profile Line tool Offset measurement.
1573 #define GO_MEASUREMENT_PROFILE_LINE_ANGLE (131) ///< Profile Line tool Angle measurement.
1574 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN_X (132) ///< Profile Line tool Minimum X Error measurement.
1575 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN_Z (133) ///< Profile Line tool Minimum Z Error measurement.
1576 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX_X (134) ///< Profile Line tool Maximum X Error measurement.
1577 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX_Z (135) ///< Profile Line tool Maximum Z Error measurement.
1578 #define GO_MEASUREMENT_PROFILE_PANEL_GAP (24) ///< Profile Panel tool Gap measurement.
1579 #define GO_MEASUREMENT_PROFILE_PANEL_FLUSH (25) ///< Profile Panel tool Flush measurement.
1580 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_X (136) ///< Profile Panel tool Left Gap X measurement.
1581 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_GAP_Z (137) ///< Profile Panel tool Left Gap Z measurement.
1582 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_X (138) ///< Profile Panel tool Left Flush X measurement.
1583 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_FLUSH_Z (139) ///< Profile Panel tool Left Flush Z measurement.
1584 #define GO_MEASUREMENT_PROFILE_PANEL_LEFT_SURFACE_ANGLE (140) ///< Profile Panel tool Left Surface Angle measurement.
1585 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_X (141) ///< Profile Panel tool Right Gap X measurement.
1586 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_GAP_Z (142) ///< Profile Panel tool Right Gap Z measurement.
1587 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_X (143) ///< Profile Panel tool Right Flush X measurement.
1588 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_FLUSH_Z (144) ///< Profile Panel tool Right Flush Z measurement.
1589 #define GO_MEASUREMENT_PROFILE_PANEL_RIGHT_SURFACE_ANGLE (145) ///< Profile Panel tool Right Surface Angle measurement.
1590 #define GO_MEASUREMENT_PROFILE_POSITION_X (26) ///< Profile Position tool X measurement.
1591 #define GO_MEASUREMENT_PROFILE_POSITION_Z (27) ///< Profile Position tool Z measurement.
1592 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_X (28) ///< Profile Strip tool X Position measurement.
1593 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z (29) ///< Profile Strip tool Z Position measurement.
1594 #define GO_MEASUREMENT_PROFILE_STRIP_WIDTH (30) ///< Profile Strip tool Width measurement.
1595 #define GO_MEASUREMENT_PROFILE_STRIP_HEIGHT (31) ///< Profile Strip tool Height measurement.
1596 #define GO_MEASUREMENT_PROFILE_X_LINE_Z (87) ///< Profile X-Line tool Z measurement.
1597 #define GO_MEASUREMENT_PROFILE_X_LINE_VALIDITY (88) ///< Profile X-Line tool Validity measurement.
1598 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X (32) ///< Surface Bounding Box X measurement.
1599 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y (33) ///< Surface Bounding Box Y measurement.
1600 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z (34) ///< Surface Bounding Box Z measurement.
1601 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE (35) ///< Surface Bounding Box Z Angle measurement.
1602 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT (36) ///< Surface Bounding Box Height measurement.
1603 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH (37) ///< Surface Bounding Box Width measurement.
1604 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH (38) ///< Surface Bounding Box Length measurement.
1605 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X (39) ///< Surface Bounding Box Global X measurement.
1606 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y (40) ///< Surface Bounding Box Global Y measurement.
1607 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Z_ANGLE (41) ///< Surface Bounding Box Global Z Angle measurement.
1608 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X (42) ///< Surface Countersunk Hole tool X position measurement.
1609 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y (43) ///< Surface Countersunk Hole tool Y position measurement.
1610 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Z (44) ///< Surface Countersunk Hole tool Z position measurement.
1611 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_OUTER_RADIUS (45) ///< Surface Countersunk Hole tool Outer Radius measurement.
1612 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_DEPTH (46) ///< Surface Countersunk Hole tool Depth measurement.
1613 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_COUNTERBORE_DEPTH (108) ///< Surface Countersunk Hole tool Counterbore Depth measurement.
1614 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_RADIUS (47) ///< Surface Countersunk Hole tool Bevel Radius measurement.
1615 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_ANGLE (48) ///< Surface Countersunk Hole tool Bevel Angle measurement.
1616 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X_ANGLE (49) ///< Surface Countersunk Hole tool X Angle measurement.
1617 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y_ANGLE (50) ///< Surface Countersunk Hole tool Y Angle measurement.
1618 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_AXIS_TILT (122) ///< Surface Countersunk Hole tool axis tilt measurement.
1619 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_AXIS_ORIENTATION (123) ///< Surface Countersunk Hole tool axis orientation measurement.
1620 #define GO_MEASUREMENT_SURFACE_DIMENSION_WIDTH (114) ///< Surface Dimension tool Width measurement.
1621 #define GO_MEASUREMENT_SURFACE_DIMENSION_HEIGHT (115) ///< Surface Dimension tool Height measurement.
1622 #define GO_MEASUREMENT_SURFACE_DIMENSION_LENGTH (116) ///< Surface Dimension tool Length measurement.
1623 #define GO_MEASUREMENT_SURFACE_DIMENSION_DISTANCE (117) ///< Surface Dimension tool Distance measurement.
1624 #define GO_MEASUREMENT_SURFACE_DIMENSION_PLANE_DISTANCE (118) ///< Surface Dimension tool Plane Distance measurement.
1625 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_X (119) ///< Surface Dimension tool Center X measurement.
1626 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Y (120) ///< Surface Dimension tool Center Y measurement.
1627 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Z (121) ///< Surface Dimension tool Center Z measurement.
1628 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR (51) ///< Surface Ellipse tool Major measurement.
1629 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR (52) ///< Surface Ellipse tool Minor measurement.
1630 #define GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO (53) ///< Surface Ellipse tool Ratio measurement.
1631 #define GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE (54) ///< Surface Ellipse tool Z Angle measurement.
1632 #define GO_MEASUREMENT_SURFACE_HOLE_X (55) ///< Surface Hole tool X measurement.
1633 #define GO_MEASUREMENT_SURFACE_HOLE_Y (56) ///< Surface Hole tool Y measurement.
1634 #define GO_MEASUREMENT_SURFACE_HOLE_Z (57) ///< Surface Hole tool Z measurement.
1635 #define GO_MEASUREMENT_SURFACE_HOLE_RADIUS (58) ///< Surface Hole tool Radius measurement.
1636 #define GO_MEASUREMENT_SURFACE_OPENING_X (59) ///< Surface Opening tool X measurement.
1637 #define GO_MEASUREMENT_SURFACE_OPENING_Y (60) ///< Surface Opening tool Y measurement.
1638 #define GO_MEASUREMENT_SURFACE_OPENING_Z (61) ///< Surface Opening tool Z measurement.
1639 #define GO_MEASUREMENT_SURFACE_OPENING_WIDTH (62) ///< Surface Opening tool Width measurement.
1640 #define GO_MEASUREMENT_SURFACE_OPENING_LENGTH (63) ///< Surface Opening tool Length measurement.
1641 #define GO_MEASUREMENT_SURFACE_OPENING_ANGLE (64) ///< Surface Opening tool Angle measurement.
1642 #define GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE (65) ///< Surface Plane tool X Angle measurement.
1643 #define GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE (66) ///< Surface Plane tool Y Angle measurement.
1644 #define GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET (67) ///< Surface Plane tool Z Offset measurement.
1645 #define GO_MEASUREMENT_SURFACE_PLANE_STD_DEV (109) ///< Surface Plane tool Standard Deviation measurement.
1646 #define GO_MEASUREMENT_SURFACE_PLANE_ERROR_MIN (110) ///< Surface Plane tool Minimum Error measurement.
1647 #define GO_MEASUREMENT_SURFACE_PLANE_ERROR_MAX (111) ///< Surface Plane tool Maximum Error measurement.
1648 #define GO_MEASUREMENT_SURFACE_PLANE_X_NORMAL (126) ///< Surface Plane tool X Normal measurement.
1649 #define GO_MEASUREMENT_SURFACE_PLANE_Y_NORMAL (127) ///< Surface Plane tool Y Normal measurement.
1650 #define GO_MEASUREMENT_SURFACE_PLANE_Z_NORMAL (128) ///< Surface Plane tool Z Normal measurement.
1651 #define GO_MEASUREMENT_SURFACE_PLANE_DISTANCE (129) ///< Surface Plane tool X Normal measurement.
1652 #define GO_MEASUREMENT_SURFACE_EDGE_X (130) ///< Surface Position edge tool X measurement.
1653 #define GO_MEASUREMENT_SURFACE_EDGE_Y (131) ///< Surface Position edge tool Y measurement.
1654 #define GO_MEASUREMENT_SURFACE_EDGE_Z (132) ///< Surface Position edge tool Z measurement.
1655 #define GO_MEASUREMENT_SURFACE_INTERSECT_X (133) ///< Surface Position intersect tool X measurement.
1656 #define GO_MEASUREMENT_SURFACE_INTERSECT_Y (134) ///< Surface Position intersect tool Y measurement.
1657 #define GO_MEASUREMENT_SURFACE_INTERSECT_Z (135) ///< Surface Position intersect tool Z measurement.
1658 #define GO_MEASUREMENT_SURFACE_INTERSECT_ANGLE (136) ///< Surface Position intersect tool angle.
1659 
1660 #define GO_MEASUREMENT_SURFACE_POSITION_X (68) ///< Surface Position tool X measurement.
1661 #define GO_MEASUREMENT_SURFACE_POSITION_Y (69) ///< Surface Position tool Y measurement.
1662 #define GO_MEASUREMENT_SURFACE_POSITION_Z (70) ///< Surface Position tool Z measurement.
1663 #define GO_MEASUREMENT_SURFACE_RIVET_X (88) ///< Surface Rivet tool X measurement.
1664 #define GO_MEASUREMENT_SURFACE_RIVET_Y (89) ///< Surface Rivet tool Y measurement.
1665 #define GO_MEASUREMENT_SURFACE_RIVET_Z (90) ///< Surface Rivet tool Z measurement.
1666 #define GO_MEASUREMENT_SURFACE_RIVET_TILT_ANGLE (91) ///< Surface Rivet tool X Angle measurement.
1667 #define GO_MEASUREMENT_SURFACE_RIVET_TILT_DIRECTION (92) ///< Surface Rivet tool Y Angle measurement.
1668 #define GO_MEASUREMENT_SURFACE_RIVET_RADIUS (93) ///< Surface Rivet tool Radius measurement.
1669 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MIN (94) ///< Surface Rivet tool Top Offset Minimum measurement.
1670 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MAX (95) ///< Surface Rivet tool Top Offset Maximum measurement.
1671 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MEAN (96) ///< Surface Rivet tool Top Offset Mean measurement.
1672 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_STD_DEV (97) ///< Surface Rivet tool Top Offset Standard Deviation measurement.
1673 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MIN (98) ///< Surface Rivet tool Radial Height Minimum measurement.
1674 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MAX (99) ///< Surface Rivet tool Radial Height Maximum measurement.
1675 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MEAN (100) ///< Surface Rivet tool Radial Height Mean measurement.
1676 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_STD_DEV (101) ///< Surface Rivet tool Radial Height Standard Deviation measurement.
1677 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MIN (102) ///< Surface Rivet tool Radial Slope Minimum measurement.
1678 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MAX (103) ///< Surface Rivet tool Radial Slope Maximum measurement.
1679 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MEAN (104) ///< Surface Rivet tool Radial Slope Mean measurement.
1680 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_STD_DEV (105) ///< Surface Rivet tool Radial Slope Standard Deviation measurement.
1681 #define GO_MEASUREMENT_SURFACE_STUD_BASE_X (71) ///< Surface Stud tool Base X measurement.
1682 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Y (72) ///< Surface Stud tool Base Y measurement.
1683 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Z (73) ///< Surface Stud tool Base Z measurement.
1684 #define GO_MEASUREMENT_SURFACE_STUD_TIP_X (74) ///< Surface Stud tool Tip X measurement.
1685 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Y (75) ///< Surface Stud tool Tip Y measurement.
1686 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Z (76) ///< Surface Stud tool Tip Z measurement.
1687 #define GO_MEASUREMENT_SURFACE_STUD_RADIUS (77) ///< Surface Stud tool Radius measurement.
1688 #define GO_MEASUREMENT_SURFACE_VOLUME_AREA (78) ///< Surface Volume tool Area measurement.
1689 #define GO_MEASUREMENT_SURFACE_VOLUME_VOLUME (79) ///< Surface Volume tool Volume measurement.
1690 #define GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS (80) ///< Surface Volume tool Thickness measurement.
1691 #define GO_MEASUREMENT_SCRIPT_OUTPUT (81) ///< Script tool Output.
1692 #define GO_MEASUREMENT_EXTENSIBLE (87) ///< Extensible tool measurement.
1693 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_X (123) ///< Profile Round Corner tool X measurement.
1694 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_Z (124) ///< Profile Round Corner tool Z measurement.
1695 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_ANGLE (125) ///< Profile Round Corner tool Angle measurement.
1696 
1697 
1698 
1699 #define GO_FEATURE_DIMENSION_WIDTH (140) ///< Dimension tool width Intersect angle.
1700 #define GO_FEATURE_DIMENSION_LENGTH (141) ///< Dimension tool length Intersect angle.
1701 #define GO_FEATURE_DIMENSION_HEIGHT (142) ///< Dimension tool height Intersect angle.
1702 #define GO_FEATURE_DIMENSION_DISTANCE (143) ///< Dimension tool distance Intersect angle.
1703 #define GO_FEATURE_DIMENSION_PLANEDISTANCE (144) ///< Dimension tool plane distance Intersect angle.
1704 #define GO_FEATURE_DIMENSION_CENTERX (145) ///< Dimension tool center x Intersect angle.
1705 #define GO_FEATURE_DIMENSION_CENTERY (146) ///< Dimension tool center y Intersect angle.
1706 #define GO_FEATURE_DIMENSION_CENTERZ (147) ///< Dimension tool center z Intersect angle.
1707 
1708 /**@}*/
1709 
1710 /**
1711 * @struct GoFeatureType
1712 * @extends kValue
1713 * @ingroup GoSdk-Tools
1714 * @brief Lists all tool feature types.
1715 *
1716 * The following enumerators are defined:
1717 * - #GO_FEATURE_UNKNOWN
1718 * - #GO_FEATURE_EXTENSIBLE
1719 * - #GO_FEATURE_SURFACE_EDGE_EDGE_LINE
1720 * - #GO_FEATURE_SURFACE_CENTER_POINT
1721 * - #GO_FEATURE_SURFACE_BOUNDING_BOX_CENTER_POINT
1722 * - #GO_FEATURE_SURFACE_COUNTERSUNKHOLE_CENTER_POINT
1723 * - #GO_FEATURE_SURFACE_DIMENSION_CENTER_POINT
1724 * - #GO_FEATURE_SURFACE_ELLIPSE_CENTER_POINT
1725 * - #GO_FEATURE_SURFACE_ELLIPSE_MAJOR_AXIS_LINE
1726 * - #GO_FEATURE_SURFACE_ELLIPSE_MINOR_AXIS_LINE
1727 * - #GO_FEATURE_SURFACE_HOLE_CENTER_POINT
1728 * - #GO_FEATURE_SURFACE_OPENING_CENTER_POINT
1729 * - #GO_FEATURE_SURFACE_PLANE_PLANE
1730 * - #GO_FEATURE_SURFACE_POSITION_POINT
1731 * - #GO_FEATURE_SURFACE_STUD_TIP_POINT
1732 * - #GO_FEATURE_SURFACE_STUD_BASE_POINT
1733 * - #GO_FEATURE_PROFILE_POSITION_POINT
1734 * - #GO_FEATURE_PROFILE_LINE_LINE
1735 * - #GO_FEATURE_PROFILE_LINE_MIN_ERROR_POINT
1736 * - #GO_FEATURE_PROFILE_LINE_MAX_ERROR_POINT
1737 * - #GO_FEATURE_PROFILE_INTERSECT_INTERSECT_POINT
1738 * - #GO_FEATURE_PROFILE_INTERSECT_LINE
1739 * - #GO_FEATURE_PROFILE_INTERSECT_BASE_LINE
1740 * - #GO_FEATURE_PROFILE_BOUNDING_BOX_CENTER_POINT
1741 * - #GO_FEATURE_PROFILE_BOUNDING_BOX_CORNER_POINT
1742 * - #GO_FEATURE_PROFILE_AREA_CENTER_POINT
1743 * - #GO_FEATURE_PROFILE_CIRCLE_CENTER_POINT
1744 * - #GO_FEATURE_PROFILE_DIMENSION_CENTER_POINT
1745 * - #GO_FEATURE_PROFILE_PANEL_LEFT_GAP_POINT
1746 * - #GO_FEATURE_PROFILE_PANEL_LEFT_FLUSH_POINT
1747 * - #GO_FEATURE_PROFILE_PANEL_RIGHT_GAP_POINT
1748 * - #GO_FEATURE_PROFILE_PANEL_RIGHT_FLUSH_POINT
1749 * - #GO_FEATURE_PROFILE_ROUND_CORNER_POINT
1750 * - #GO_FEATURE_PROFILE_ROUND_CORNER_EDGE_POINT
1751 * - #GO_FEATURE_PROFILE_ROUND_CORNER_CENTER_POINT
1752 */
1753 typedef k32s GoFeatureType;
1754 /** @name GoFeatureType
1755 *@{*/
1756 #define GO_FEATURE_UNKNOWN (-1) ///< Unknown feature.
1757 #define GO_FEATURE_EXTENSIBLE (0) ///< Extensible feature.
1758 #define GO_FEATURE_SURFACE_EDGE_EDGE_LINE (1) ///< Surface Edge Edge Line feature.
1759 #define GO_FEATURE_SURFACE_CENTER_POINT (2) ///< Surface Center Point feature.
1760 #define GO_FEATURE_SURFACE_BOUNDING_BOX_CENTER_POINT (3) ///< Surface Bounding Box Center Point feature.
1761 #define GO_FEATURE_SURFACE_COUNTERSUNKHOLE_CENTER_POINT (4) ///< Surface Countersunk Hole Center Point feature.
1762 #define GO_FEATURE_SURFACE_DIMENSION_CENTER_POINT (5) ///< Surface Dimension Center Point feature.
1763 #define GO_FEATURE_SURFACE_ELLIPSE_CENTER_POINT (6) ///< Surface Ellipse Center Point feature.
1764 #define GO_FEATURE_SURFACE_ELLIPSE_MAJOR_AXIS_LINE (7) ///< Surface Ellipse Major Axis feature.
1765 #define GO_FEATURE_SURFACE_ELLIPSE_MINOR_AXIS_LINE (8) ///< Surface Ellipse Minor Axis feature.
1766 #define GO_FEATURE_SURFACE_HOLE_CENTER_POINT (9) ///< Surface Hole Center Point feature.
1767 #define GO_FEATURE_SURFACE_OPENING_CENTER_POINT (10) ///< Surface Opening Center Point feature.
1768 #define GO_FEATURE_SURFACE_PLANE_PLANE (11) ///< Surface Plane Plane feature.
1769 #define GO_FEATURE_SURFACE_POSITION_POINT (12) ///< Surface Position Point feature.
1770 #define GO_FEATURE_SURFACE_STUD_TIP_POINT (13) ///< Surface Stud Tip Point feature.
1771 #define GO_FEATURE_SURFACE_STUD_BASE_POINT (14) ///< Surface Stud Base Point feature.
1772 
1773 #define GO_FEATURE_PROFILE_POSITION_POINT (50) ///< Profile Position Point feature.
1774 #define GO_FEATURE_PROFILE_LINE_LINE (51) ///< Profile Line Line feature.
1775 #define GO_FEATURE_PROFILE_LINE_MIN_ERROR_POINT (52) ///< Profile Line Minimum Error Point feature.
1776 #define GO_FEATURE_PROFILE_LINE_MAX_ERROR_POINT (53) ///< Profile Line Maximum Error Point feature.
1777 #define GO_FEATURE_PROFILE_INTERSECT_INTERSECT_POINT (54) ///< Profile Intersect Intersect Point feature.
1778 #define GO_FEATURE_PROFILE_INTERSECT_LINE (55) ///< Profile Intersect Line feature.
1779 #define GO_FEATURE_PROFILE_INTERSECT_BASE_LINE (56) ///< Profile Intersect Base Line feature.
1780 #define GO_FEATURE_PROFILE_BOUNDING_BOX_CENTER_POINT (57) ///< Profile Bounding Box Center Point feature.
1781 #define GO_FEATURE_PROFILE_BOUNDING_BOX_CORNER_POINT (58) ///< Profile Bounding Box Corner Point feature.
1782 #define GO_FEATURE_PROFILE_AREA_CENTER_POINT (59) ///< Profile Area Center Point feature.
1783 #define GO_FEATURE_PROFILE_CIRCLE_CENTER_POINT (60) ///< Profile Circle Center Point feature.
1784 #define GO_FEATURE_PROFILE_DIMENSION_CENTER_POINT (61) ///< Profile Dimension Center Point feature.
1785 #define GO_FEATURE_PROFILE_PANEL_LEFT_GAP_POINT (62) ///< Profile Panel Left Gap Point feature.
1786 #define GO_FEATURE_PROFILE_PANEL_LEFT_FLUSH_POINT (63) ///< Profile Panel Left Flush Point feature.
1787 #define GO_FEATURE_PROFILE_PANEL_RIGHT_GAP_POINT (64) ///< Profile Panel Right Gap Point feature.
1788 #define GO_FEATURE_PROFILE_PANEL_RIGHT_FLUSH_POINT (65) ///< Profile Panel Right Flush Point feature.
1789 #define GO_FEATURE_PROFILE_ROUND_CORNER_POINT (66) ///< Profile Panel Round Corner Point feature.
1790 #define GO_FEATURE_PROFILE_ROUND_CORNER_EDGE_POINT (67) ///< Profile Panel Round Corner Edge Point feature.
1791 #define GO_FEATURE_PROFILE_ROUND_CORNER_CENTER_POINT (68) ///< Profile Panel Round Corner Center Point feature.
1792 /**@}*/
1793 
1794 
1795 #define GO_MEASUREMENT_ID_NONE (-1)
1796 /**
1797  * @struct GoDataMessageType
1798  * @extends kValue
1799  * @ingroup GoSdk-DataChannel
1800  * @brief Lists all data message types.
1801  *
1802  * The following enumerators are defined:
1803  * - #GO_DATA_MESSAGE_TYPE_UNKNOWN
1804  * - #GO_DATA_MESSAGE_TYPE_STAMP
1805  * - #GO_DATA_MESSAGE_TYPE_HEALTH
1806  * - #GO_DATA_MESSAGE_TYPE_VIDEO
1807  * - #GO_DATA_MESSAGE_TYPE_RANGE
1808  * - #GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY
1809  * - #GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD
1810  * - #GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY
1811  * - #GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE
1812  * - #GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE
1813  * - #GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY
1814  * - #GO_DATA_MESSAGE_TYPE_MEASUREMENT
1815  * - #GO_DATA_MESSAGE_TYPE_ALIGNMENT
1816  * - #GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL
1817  * - #GO_DATA_MESSAGE_TYPE_EDGE_MATCH
1818  * - #GO_DATA_MESSAGE_TYPE_BOUNDING_BOX_MATCH
1819  * - #GO_DATA_MESSAGE_TYPE_ELLIPSE_MATCH
1820  * - #GO_DATA_MESSAGE_TYPE_SECTION
1821  * - #GO_DATA_MESSAGE_TYPE_SECTION_INTENSITY
1822  * - #GO_DATA_MESSAGE_TYPE_EVENT
1823  * - #GO_DATA_MESSAGE_TYPE_TRACHEID
1824  * - #GO_DATA_MESSAGE_TYPE_FEATURE_POINT
1825  * - #GO_DATA_MESSAGE_TYPE_FEATURE_LINE
1826  * - #GO_DATA_MESSAGE_TYPE_FEATURE_PLANE
1827  * - #GO_DATA_MESSAGE_TYPE_FEATURE_CIRCLE
1828  * - #GO_DATA_MESSAGE_TYPE_SURFACE_POINT_CLOUD
1829  * - #GO_DATA_MESSAGE_TYPE_GENERIC
1830  * - #GO_DATA_MESSAGE_TYPE_PROFILE //Deprecated use GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD instead
1831  * - #GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE //Deprecated use GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE instead
1832  * - #GO_DATA_MESSAGE_TYPE_SURFACE //Deprecated use GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE
1833  */
1834 /* These definitions are similar to the GO_COMPACT_MESSAGE_XXX but are not
1835  * guaranteed to be the same.
1836  *
1837  * This set of GO_DATA_MESSAGE_TYPE_xxx definitions are external (customer)
1838  * facing and must NEVER be renumbered. Some SDK applications hardcode these values.
1839  *
1840  */
1841 typedef k32s GoDataMessageType;
1842 /** @name GoDataMessageType
1843  *@{*/
1844 #define GO_DATA_MESSAGE_TYPE_UNKNOWN -1 ///< Unknown message type.
1845 #define GO_DATA_MESSAGE_TYPE_STAMP 0 ///< Stamp message type.
1846 #define GO_DATA_MESSAGE_TYPE_HEALTH 1 ///< Health message type.
1847 #define GO_DATA_MESSAGE_TYPE_VIDEO 2 ///< Video message type.
1848 #define GO_DATA_MESSAGE_TYPE_RANGE 3 ///< Range message type.
1849 #define GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY 4 ///< Range Intensity message type.
1850 #define GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD 5 ///< Unresampled Profile message type.
1851 #define GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY 6 ///< Profile Point Cloud (or Uniform Profile) Intensity message type.
1852 #define GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE 7 ///< Uniform (resampled) Profile message type.
1853 #define GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE 8 ///< Uniform (resampled) Surface message type.
1854 #define GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY 9 ///< Surface Point Cloud (or Uniform Surface) Intensity message type.
1855 #define GO_DATA_MESSAGE_TYPE_MEASUREMENT 10 ///< Measurement message type.
1856 #define GO_DATA_MESSAGE_TYPE_ALIGNMENT 11 ///< Alignment result message type.
1857 #define GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL 12 ///< Exposure AutoSet/Calibration result message type.
1858 #define GO_DATA_MESSAGE_TYPE_EDGE_MATCH 16 ///< Part matching edge algorithm message type.
1859 #define GO_DATA_MESSAGE_TYPE_BOUNDING_BOX_MATCH 17 ///< Part matching bounding box algorithm message type.
1860 #define GO_DATA_MESSAGE_TYPE_ELLIPSE_MATCH 18 ///< Part matching ellipse algorithm message type.
1861 #define GO_DATA_MESSAGE_TYPE_SECTION 20 ///< Section message type.
1862 #define GO_DATA_MESSAGE_TYPE_SECTION_INTENSITY 21 ///< Section Intensity message type.
1863 #define GO_DATA_MESSAGE_TYPE_EVENT 22 ///< Event message type.
1864 #define GO_DATA_MESSAGE_TYPE_TRACHEID 23 ///< Tracheid message type.
1865 #define GO_DATA_MESSAGE_TYPE_FEATURE_POINT 24 ///< Point Feature message type.
1866 #define GO_DATA_MESSAGE_TYPE_FEATURE_LINE 25 ///< Line Feature message type.
1867 #define GO_DATA_MESSAGE_TYPE_FEATURE_PLANE 26 ///< Plane Feature message type.
1868 #define GO_DATA_MESSAGE_TYPE_FEATURE_CIRCLE 27 ///< Circle Feature message type.
1869 #define GO_DATA_MESSAGE_TYPE_SURFACE_POINT_CLOUD 28 ///< Surface Point Cloud (Un-Resampled surface) message type.
1870 #define GO_DATA_MESSAGE_TYPE_GENERIC 29 ///< Generic message type.
1871 
1872 #define GO_DATA_MESSAGE_TYPE_PROFILE GO_DATA_MESSAGE_TYPE_PROFILE_POINT_CLOUD ///< Deprecated Unresampled Profile message type.
1873 #define GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE GO_DATA_MESSAGE_TYPE_UNIFORM_PROFILE ///< Deprecated Uniform (resampled) Profile message type.
1874 #define GO_DATA_MESSAGE_TYPE_SURFACE GO_DATA_MESSAGE_TYPE_UNIFORM_SURFACE ///< Deprecated Surface message type.
1875 /**@}*/
1876 
1877 /**
1878 * @struct GoReplayConditionType
1879 * @extends kValue
1880 * @ingroup GoSdk-Replay
1881 * @brief Represents a replay condition type.
1882 *
1883 * The following enumerators are defined:
1884 * - #GO_REPLAY_CONDITION_TYPE_ANY_MEASUREMENT
1885 * - #GO_REPLAY_CONDITION_TYPE_ANY_DATA
1886 * - #GO_REPLAY_CONDITION_TYPE_MEASUREMENT
1887 */
1888 typedef k32s GoReplayConditionType;
1889 /** @name GoReplayConditionType
1890 *@{*/
1891 #define GO_REPLAY_CONDITION_TYPE_ANY_MEASUREMENT (0) ///< Any Measurement condition.
1892 #define GO_REPLAY_CONDITION_TYPE_ANY_DATA (1) ///< Any Data condition.
1893 #define GO_REPLAY_CONDITION_TYPE_MEASUREMENT (2) ///< Measurement condition.
1894 
1895 /**@}*/
1896 
1897 /**
1898 * @struct GoReplayCombineType
1899 * @extends kValue
1900 * @ingroup GoSdk-Replay
1901 * @brief Represents a replay combine type.
1902 *
1903 * The following enumerators are defined:
1904 * - #GO_REPLAY_COMBINE_TYPE_ANY
1905 * - #GO_REPLAY_COMBINE_TYPE_ALL
1906 */
1907 typedef k32s GoReplayCombineType;
1908 /** @name GoReplayCombineType
1909 *@{*/
1910 #define GO_REPLAY_COMBINE_TYPE_ANY (0) ///< Any
1911 #define GO_REPLAY_COMBINE_TYPE_ALL (1) ///< All
1912 /**@}*/
1913 
1914 /**
1915 * @struct GoReplayMeasurementResult
1916 * @extends kValue
1917 * @ingroup GoSdk-Replay
1918 * @brief Represents a replay measurement result.
1919 *
1920 * The following enumerators are defined:
1921 * - #GO_REPLAY_MEASUREMENT_RESULT_PASS
1922 * - #GO_REPLAY_MEASUREMENT_RESULT_FAIL
1923 * - #GO_REPLAY_MEASUREMENT_RESULT_VALID
1924 * - #GO_REPLAY_MEASUREMENT_RESULT_INVALID
1925 * - #GO_REPLAY_MEASUREMENT_RESULT_FAIL_OR_INVALID
1926 */
1928 /** @name GoReplayMeasurementResult
1929 *@{*/
1930 #define GO_REPLAY_MEASUREMENT_RESULT_PASS (0) ///< Pass
1931 #define GO_REPLAY_MEASUREMENT_RESULT_FAIL (1) ///< Fail
1932 #define GO_REPLAY_MEASUREMENT_RESULT_VALID (2) ///< Valid
1933 #define GO_REPLAY_MEASUREMENT_RESULT_INVALID (3) ///< Invalid
1934 #define GO_REPLAY_MEASUREMENT_RESULT_FAIL_OR_INVALID (4) ///< Fail or Invalid
1935 /**@}*/
1936 
1937 /**
1938 * @struct GoReplayRangeCountCase
1939 * @extends kValue
1940 * @ingroup GoSdk-Replay
1941 * @brief Represents a replay range count case.
1942 *
1943 * The following enumerators are defined:
1944 * - #GO_REPLAY_RANGE_COUNT_CASE_AT_ABOVE
1945 * - #GO_REPLAY_RANGE_COUNT_CASE_BELOW
1946 */
1948 /** @name GoReplayRangeCountCase
1949 *@{*/
1950 #define GO_REPLAY_RANGE_COUNT_CASE_AT_ABOVE (0) ///< Case at above
1951 #define GO_REPLAY_RANGE_COUNT_CASE_BELOW (1) ///< Case below
1952 /**@}*/
1953 
1954 /**
1955 * @struct GoSensorAccelState
1956 * @extends kValue
1957 * @ingroup GoSdk
1958 * @brief Lists all sensor acceleration states that a sensor can be in.
1959 * When a sensor is being accelerated, GoSensorAccelStatus
1960 * provides more detail on the status of the acceleration.
1961 * These are applicable only when using the GoAcceleratorMgr class.
1962 *
1963 * The following enumerators are defined:
1964 * - #GO_SENSOR_ACCEL_STATE_UNKNOWN
1965 * - #GO_SENSOR_ACCEL_STATE_AVAILABLE
1966 * - #GO_SENSOR_ACCEL_STATE_ACCELERATED
1967 * - #GO_SENSOR_ACCEL_STATE_ACCELERATED_BY_OTHER
1968 * - #GO_SENSOR_ACCEL_STATE_FW_MISMATCH
1969 */
1970 typedef k32s GoSensorAccelState;
1971 /** @name GoSensorAccelState
1972 *@{*/
1973 #define GO_SENSOR_ACCEL_STATE_UNKNOWN (0) ///< State could not be determined.
1974 #define GO_SENSOR_ACCEL_STATE_AVAILABLE (1) ///< Sensor is a candidate for acceleration.
1975 #define GO_SENSOR_ACCEL_STATE_ACCELERATED (2) ///< Sensor is accelerated by this host.
1976 #define GO_SENSOR_ACCEL_STATE_ACCELERATED_BY_OTHER (3) ///< Sensor is accelerated by another host.
1977 #define GO_SENSOR_ACCEL_STATE_FW_MISMATCH (4) ///< Sensor firmware does not match accelerator program version.
1978 /**@}*/
1979 
1980 /**
1981 * @struct GoSensorAccelStatus
1982 * @extends kValue
1983 * @ingroup GoSdk
1984 * @brief Represents the acceleration status of a sensor that is available or
1985 * being accelerated by the local host. The corresponding acceleration state
1986 * can be GO_SENSOR_ACCEL_STATE_AVAILABLE (while acceleration has not
1987 * yet) or GO_SENSOR_ACCEL_STATE_ACCELERATED (acceleration completed).
1988 * These status values are not applicable for a sensor
1989 * accelerated by another host (ie. state is GO_SENSOR_ACCEL_STATE_ACCELERATED_BY_OTHER)).
1990 * These statuses are applicable only when using the GoAcceleratorMgr class.
1991 *
1992 * The following enumerators are defined:
1993 * - #GO_SENSOR_ACCEL_STATUS_SUCCESS
1994 * - #GO_SENSOR_ACCEL_STATUS_ACCELERATING
1995 * - #GO_SENSOR_ACCEL_STATUS_DECELERATING
1996 * - #GO_SENSOR_ACCEL_STATUS_MISSING
1997 * - #GO_SENSOR_ACCEL_STATUS_STOPPED
1998 * - #GO_SENSOR_ACCEL_STATUS_FAIL_TO_ACCEL
1999 * - #GO_SENSOR_ACCEL_STATUS_STOPPED_AVAILABLE
2000 * - #GO_SENSOR_ACCEL_STATUS_STOPPED_ACCELERATED_BY_OTHER
2001 * - #GO_SENSOR_ACCEL_STATUS_STOPPED_FW_MISMATCH
2002 * - #GO_SENSOR_ACCEL_STATUS_STOPPED_PORT_IN_USE
2003 * - #GO_SENSOR_ACCEL_STATUS_STOPPED_UNREACHABLE
2004 */
2005 typedef k32s GoSensorAccelStatus;
2006 /** @name GoSensorAccelStatus
2007 *@{*/
2008 #define GO_SENSOR_ACCEL_STATUS_SUCCESS (0) ///< Sensor accelerated successfully.
2009 #define GO_SENSOR_ACCEL_STATUS_ACCELERATING (-1) ///< Sensor is in the process of being accelerated.
2010 #define GO_SENSOR_ACCEL_STATUS_DECELERATING (-2) ///< Sensor is in the process of being unaccelerated.
2011 #define GO_SENSOR_ACCEL_STATUS_MISSING (-3) ///< Sensor is accelerated, but has disappeared from network.
2012 #define GO_SENSOR_ACCEL_STATUS_STOPPED (-4) ///< Sensor was accelerated but unexpectedly stopped (eg. crashed).
2013 #define GO_SENSOR_ACCEL_STATUS_FAIL_TO_ACCEL (-5) ///< Generic failure to accelerate sensor.
2014 #define GO_SENSOR_ACCEL_STATUS_STOPPED_AVAILABLE (-6) ///< Acceleration stopped and sensor is unaccelerated. Status is only for client use to elaborate on a STOPPED status.
2015 #define GO_SENSOR_ACCEL_STATUS_STOPPED_ACCELERATED_BY_OTHER (-7) ///< Acceleration stopped and sensor is now accelerated by another host. Status is only for client use to elaborate on a STOPPED status.
2016 #define GO_SENSOR_ACCEL_STATUS_STOPPED_FW_MISMATCH (-8) ///< Acceleration stopped and sensor now has an incompatible firmware version. Status is only for client use to elaborate on a STOPPED status.
2017 #define GO_SENSOR_ACCEL_STATUS_STOPPED_PORT_IN_USE (-9) ///< Acceleration stopped because sensor ports are in use by another application. Status is only for client use to elaborate on a STOPPED status.
2018 #define GO_SENSOR_ACCEL_STATUS_STOPPED_UNREACHABLE (-10) ///< Acceleration stopped because sensor in on an unreachable network. Status is only for client use to elaborate on a STOPPED status.
2019 
2020 /// @cond (Gocator_1x00 || Gocator_2x00)
2021 
2022 /**
2023 * @struct GoAdvancedType
2024 * @extends kValue
2025 * @ingroup GoSdk
2026 * @brief Represents advanced acquisition type.
2027 *
2028 * The following enumerators are defined:
2029 * - #GO_ADVANCED_TYPE_CUSTOM
2030 * - #GO_ADVANCED_TYPE_DIFFUSE
2031 * - #GO_ADVANCED_TYPE_REFLECTIVE
2032 */
2033 typedef k32s GoAdvancedType;
2034 /** @name GoAdvancedType
2035 *@{*/
2036 #define GO_ADVANCED_TYPE_CUSTOM (0) ///< Custom advanced acquisition type.
2037 #define GO_ADVANCED_TYPE_DIFFUSE (1) ///< Diffuse advanced acquisition type.
2038 #define GO_ADVANCED_TYPE_REFLECTIVE (3) ///< Reflective advanced acquisition type.
2039 /**@}*/
2040 
2041 /**
2042  * @struct GoMaterialType
2043  * @deprecated
2044  * @extends kValue
2045  * @ingroup GoSdk
2046  * @brief Represents a material acquisition type.
2047  *
2048  * The following enumerators are defined:
2049  * - #GO_MATERIAL_TYPE_CUSTOM
2050  * - #GO_MATERIAL_TYPE_DIFFUSE
2051  */
2052 typedef k32s GoMaterialType;
2053 /** @name GoMaterialType
2054  *@{*/
2055 #define GO_MATERIAL_TYPE_CUSTOM (0) ///< Custom material acquisition type.
2056 #define GO_MATERIAL_TYPE_DIFFUSE (1) ///< Diffuse material acquisition type.
2057 /**@}*/
2058 
2059 /**
2060  * @struct GoSpotSelectionType
2061  * @extends kValue
2062  * @ingroup GoSdk
2063  * @brief Represents a spot selection type.
2064  *
2065  * The following enumerators are defined:
2066  * - #GO_SPOT_SELECTION_TYPE_BEST
2067  * - #GO_SPOT_SELECTION_TYPE_TOP
2068  * - #GO_SPOT_SELECTION_TYPE_BOTTOM
2069  * - #GO_SPOT_SELECTION_TYPE_NONE
2070  * - #GO_SPOT_SELECTION_TYPE_CONTINUITY
2071  */
2072 typedef k32s GoSpotSelectionType;
2073 /** @name GoSpotSelectionType
2074  *@{*/
2075 #define GO_SPOT_SELECTION_TYPE_BEST (0) ///< Select the spot with the best value.
2076 #define GO_SPOT_SELECTION_TYPE_TOP (1) ///< Select the top-most spot.
2077 #define GO_SPOT_SELECTION_TYPE_BOTTOM (2) ///< Select the bottom-most spot.
2078 #define GO_SPOT_SELECTION_TYPE_NONE (3) ///< Disable spot selection.
2079 #define GO_SPOT_SELECTION_TYPE_CONTINUITY (4) ///< Select most continuous spot
2080  /**@}*/
2081 /// @endcond
2082 
2083 /// @cond (Gocator_1x00 || Gocator_2x00)
2084 /**
2085  * @struct GoProfileStripBaseType
2086  * @extends kValue
2087  * @ingroup GoSdk-ProfileTools
2088  * @brief Represents a profile strip tool base type.
2089  *
2090  * The following enumerators are defined:
2091  * - #GO_PROFILE_STRIP_BASE_TYPE_NONE
2092  * - #GO_PROFILE_STRIP_BASE_TYPE_FLAT
2093  */
2094 typedef k32s GoProfileStripBaseType;
2095 /** @name GoProfileStripBaseType
2096  *@{*/
2097 #define GO_PROFILE_STRIP_BASE_TYPE_NONE (0) ///< No strip base type.
2098 #define GO_PROFILE_STRIP_BASE_TYPE_FLAT (1) ///< Flat strip base type.
2099 /**@}*/
2100 
2101 /**
2102  * @struct GoProfileStripEdgeType
2103  * @extends kValue
2104  * @ingroup GoSdk-ProfileTools
2105  * @brief Represents a profile strip tool edge type.
2106  *
2107  * The following enumerators are defined:
2108  * - #GO_PROFILE_STRIP_EDGE_TYPE_RISING
2109  * - #GO_PROFILE_STRIP_EDGE_TYPE_FALLING
2110  * - #GO_PROFILE_STRIP_EDGE_TYPE_DATA_END
2111  * - #GO_PROFILE_STRIP_EDGE_TYPE_VOID
2112  */
2113 typedef k32s GoProfileStripEdgeType;
2114 /** @name GoProfileStripEdgeType
2115  *@{*/
2116 #define GO_PROFILE_STRIP_EDGE_TYPE_RISING (1) ///< Rising strip edge type.
2117 #define GO_PROFILE_STRIP_EDGE_TYPE_FALLING (2) ///< Falling strip edge type.
2118 #define GO_PROFILE_STRIP_EDGE_TYPE_DATA_END (4) ///< Data end strip edge type.
2119 #define GO_PROFILE_STRIP_EDGE_TYPE_VOID (8) ///< Void strip edge type.
2120 /**@}*/
2121 
2122 
2123 /**
2124  * @struct GoProfileFeatureType
2125  * @ingroup GoSdk-ProfileTools
2126  * @brief Represents a profile feature point type.
2127  *
2128  * The following enumerators are defined:
2129  * - #GO_PROFILE_FEATURE_TYPE_MAX_Z
2130  * - #GO_PROFILE_FEATURE_TYPE_MIN_Z
2131  * - #GO_PROFILE_FEATURE_TYPE_MAX_X
2132  * - #GO_PROFILE_FEATURE_TYPE_MIN_X
2133  * - #GO_PROFILE_FEATURE_TYPE_CORNER
2134  * - #GO_PROFILE_FEATURE_TYPE_AVERAGE
2135  * - #GO_PROFILE_FEATURE_TYPE_RISING_EDGE
2136  * - #GO_PROFILE_FEATURE_TYPE_FALLING_EDGE
2137  * - #GO_PROFILE_FEATURE_TYPE_ANY_EDGE
2138  * - #GO_PROFILE_FEATURE_TYPE_TOP_CORNER
2139  * - #GO_PROFILE_FEATURE_TYPE_BOTTOM_CORNER
2140  * - #GO_PROFILE_FEATURE_TYPE_LEFT_CORNER
2141  * - #GO_PROFILE_FEATURE_TYPE_RIGHT_CORNER
2142  * - #GO_PROFILE_FEATURE_TYPE_MEDIAN
2143  */
2144 typedef k32s GoProfileFeatureType;
2145 /** @name GoProfileFeatureType
2146  *@{*/
2147 #define GO_PROFILE_FEATURE_TYPE_MAX_Z (0) ///< Point with the maximum Z value.
2148 #define GO_PROFILE_FEATURE_TYPE_MIN_Z (1) ///< Point with the minimum Z value.
2149 #define GO_PROFILE_FEATURE_TYPE_MAX_X (2) ///< Point with the maximum X value.
2150 #define GO_PROFILE_FEATURE_TYPE_MIN_X (3) ///< Point with the minimum X value.
2151 #define GO_PROFILE_FEATURE_TYPE_CORNER (4) ///< Dominant corner.
2152 #define GO_PROFILE_FEATURE_TYPE_AVERAGE (5) ///< Average of points.
2153 #define GO_PROFILE_FEATURE_TYPE_RISING_EDGE (6) ///< Rising edge.
2154 #define GO_PROFILE_FEATURE_TYPE_FALLING_EDGE (7) ///< Falling edge.
2155 #define GO_PROFILE_FEATURE_TYPE_ANY_EDGE (8) ///< Rising or falling edge.
2156 #define GO_PROFILE_FEATURE_TYPE_TOP_CORNER (9) ///< Top-most corner.
2157 #define GO_PROFILE_FEATURE_TYPE_BOTTOM_CORNER (10) ///< Bottom-most corner.
2158 #define GO_PROFILE_FEATURE_TYPE_LEFT_CORNER (11) ///< Left-most corner.
2159 #define GO_PROFILE_FEATURE_TYPE_RIGHT_CORNER (12) ///< Right-most corner.
2160 #define GO_PROFILE_FEATURE_TYPE_MEDIAN (13) ///< Median of points.
2161 /**@}*/
2162 
2163 /**
2164  * @struct GoProfileGapAxis
2165  * @ingroup GoSdk-ProfileTools
2166  * @brief Represents a profile gap measurement axis.
2167  *
2168  * The following enumerators are defined:
2169  * - #GO_PROFILE_GAP_AXIS_EDGE
2170  * - #GO_PROFILE_GAP_AXIS_SURFACE
2171  * - #GO_PROFILE_GAP_AXIS_DISTANCE
2172  */
2173 typedef k32s GoProfileGapAxis;
2174 /** @name GoProfileGapAxis
2175  *@{*/
2176 #define GO_PROFILE_GAP_AXIS_EDGE (0) ///< Measure the gap along the edge normal.
2177 #define GO_PROFILE_GAP_AXIS_SURFACE (1) ///< Measure the gap along the surface line.
2178 #define GO_PROFILE_GAP_AXIS_DISTANCE (2) ///< Measure the shortest distance between the two edges.
2179 /**@}*/
2180 
2181 /**
2182  * @struct GoProfileEdgeType
2183  * @ingroup GoSdk-ProfileTools
2184  * @brief Represents a profile edge type.
2185  *
2186  * The following enumerators are defined:
2187  * - #GO_PROFILE_EDGE_TYPE_TANGENT
2188  * - #GO_PROFILE_EDGE_TYPE_CORNER
2189  */
2190 typedef k32s GoProfileEdgeType;
2191 /** @name GoProfileEdgeType
2192  *@{*/
2193 #define GO_PROFILE_EDGE_TYPE_TANGENT (0) ///< Detect the edge by looking for the tangent.
2194 #define GO_PROFILE_EDGE_TYPE_CORNER (1) ///< Detect the edge by looking for the corner.
2195 /**@}*/
2196 
2197 /**
2198  * @struct GoProfileBaseline
2199  * @ingroup GoSdk-ProfileTools
2200  * @brief Determines whether to use a line based on a Profile Line fit, or based on the x-axis.
2201  *
2202  * The following enumerators are defined:
2203  * - #GO_PROFILE_BASELINE_TYPE_X_AXIS
2204  * - #GO_PROFILE_BASELINE_TYPE_Z_AXIS
2205  * - #GO_PROFILE_BASELINE_TYPE_LINE
2206  */
2207 typedef k32s GoProfileBaseline;
2208 /** @name GoProfileBaseline
2209  *@{*/
2210 #define GO_PROFILE_BASELINE_TYPE_X_AXIS (0) ///< Use the X-Axis.
2211 #define GO_PROFILE_BASELINE_TYPE_Z_AXIS (1) ///< Use the Z-Axis.
2212 #define GO_PROFILE_BASELINE_TYPE_LINE (2) ///< Use the line fit.
2213 /**@}*/
2214 
2215 /**
2216  * @struct GoProfileAreaType
2217  * @ingroup GoSdk-ProfileTools
2218  * @brief Determines how to calculate profile area
2219  *
2220  * The following enumerators are defined:
2221  * - #GO_PROFILE_AREA_TYPE_OBJECT
2222  * - #GO_PROFILE_AREA_TYPE_CLEARANCE
2223  */
2224 typedef k32s GoProfileAreaType;
2225 /** @name GoProfileAreaType
2226  *@{*/
2227 #define GO_PROFILE_AREA_TYPE_OBJECT (0) ///< Sum the profile area that is above the line.
2228 #define GO_PROFILE_AREA_TYPE_CLEARANCE (1) ///< Sum the profile area that is below the line.
2229 /**@}*/
2230 
2231 /**
2232  * @struct GoProfileGapSide
2233  * @ingroup GoSdk-ProfileTools
2234  * @brief Selects which edge to use as the reference in a panel tool.
2235  *
2236  * The following enumerators are defined:
2237  * - #GO_PROFILE_PANEL_SIDE_LEFT
2238  * - #GO_PROFILE_PANEL_SIDE_RIGHT
2239  */
2240 typedef k32s GoProfilePanelSide;
2241 /** @name GoProfilePanelSide
2242  *@{*/
2243 #define GO_PROFILE_PANEL_SIDE_LEFT (0) ///< Use the left edge.
2244 #define GO_PROFILE_PANEL_SIDE_RIGHT (1) ///< Use the right edge.
2245 /**@}*/
2246 
2247 /**
2248  * @struct GoProfileRoundCornerDirection
2249  * @ingroup GoSdk-ProfileTools
2250  * @brief Selects which reference direction to use for the round corner tool.
2251  *
2252  * The following enumerators are defined:
2253  * - #GO_PROFILE_ROUND_CORNER_DIRECTION_LEFT
2254  * - #GO_PROFILE_ROUND_CORNER_DIRECTION_RIGHT
2255  */
2256 
2257 typedef k32s GoProfileRoundCornerDirection;
2258 /** @name GoProfileRoundCornerDirection
2259  *@{*/
2260 #define GO_PROFILE_ROUND_CORNER_DIRECTION_LEFT (0) ///< Use the left edge.
2261 #define GO_PROFILE_ROUND_CORNER_DIRECTION_RIGHT (1) ///< Use the right edge.
2262 /**@}*/
2263 
2264 /**
2265  * @struct GoProfileGrooveShape
2266  * @ingroup GoSdk-ProfileTools
2267  * @brief Represents a profile edge type.
2268  *
2269  * The following enumerators are defined:
2270  * - #GO_PROFILE_GROOVE_SHAPE_U
2271  * - #GO_PROFILE_GROOVE_SHAPE_V
2272  * - #GO_PROFILE_GROOVE_SHAPE_OPEN
2273  */
2274 typedef k32s GoProfileGrooveShape;
2275 /** @name GoProfileGrooveShape
2276  *@{*/
2277 #define GO_PROFILE_GROOVE_SHAPE_U (0) ///< Detect grooves that are U shaped.
2278 #define GO_PROFILE_GROOVE_SHAPE_V (1) ///< Detect grooves that are V shaped.
2279 #define GO_PROFILE_GROOVE_SHAPE_OPEN (2) ///< Detect grooves that are open.
2280 /**@}*/
2281 
2282 /**
2283  * @struct GoProfileGrooveSelectType
2284  * @ingroup GoSdk-ProfileTools
2285  * @brief Determines which groove to select when multiple are present.
2286  *
2287  * The following enumerators are defined:
2288  * - #GO_PROFILE_GROOVE_SELECT_TYPE_MAX_DEPTH
2289  * - #GO_PROFILE_GROOVE_SELECT_TYPE_LEFT_INDEX
2290  * - #GO_PROFILE_GROOVE_SELECT_TYPE_RIGHT_INDEX
2291  */
2292 typedef k32s GoProfileGrooveSelectType;
2293 /** @name GoProfileGrooveSelectType
2294  *@{*/
2295 #define GO_PROFILE_GROOVE_SELECT_TYPE_MAX_DEPTH (0) ///< Select the groove with the maximum depth.
2296 #define GO_PROFILE_GROOVE_SELECT_TYPE_LEFT_INDEX (1) ///< Select the groove with the currently selected index starting from the left side.
2297 #define GO_PROFILE_GROOVE_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the groove with the currently selected index starting from the right side.
2298 /**@}*/
2299 
2300 /**
2301  * @struct GoProfileGrooveLocation
2302  * @ingroup GoSdk-ProfileTools
2303  * @brief Determines which groove position to return.
2304  *
2305  * The following enumerators are defined:
2306  * - #GO_PROFILE_GROOVE_LOCATION_BOTTOM
2307  * - #GO_PROFILE_GROOVE_LOCATION_LEFT
2308  * - #GO_PROFILE_GROOVE_LOCATION_RIGHT
2309  */
2310 typedef k32s GoProfileGrooveLocation;
2311 /** @name GoProfileGrooveLocation
2312  *@{*/
2313 #define GO_PROFILE_GROOVE_LOCATION_BOTTOM (0) ///< Return the position of the bottom of the groove.
2314 #define GO_PROFILE_GROOVE_LOCATION_LEFT (1) ///< Return the position of the left corner of the groove.
2315 #define GO_PROFILE_GROOVE_LOCATION_RIGHT (2) ///< Return the position of the right corner of the groove.
2316 /**@}*/
2317 
2318 /**
2319  * @struct GoProfileStripSelectType
2320  * @ingroup GoSdk-ProfileTools
2321  * @brief Determines which Strip to select when multiple are present.
2322  *
2323  * The following enumerators are defined:
2324  * - #GO_PROFILE_STRIP_SELECT_TYPE_BEST
2325  * - #GO_PROFILE_STRIP_SELECT_TYPE_LEFT_INDEX
2326  * - #GO_PROFILE_STRIP_SELECT_TYPE_RIGHT_INDEX
2327  */
2328 typedef k32s GoProfileStripSelectType;
2329 /** @name GoProfileStripSelectType
2330  *@{*/
2331 #define GO_PROFILE_STRIP_SELECT_TYPE_BEST (0) ///< Select the best strip.
2332 #define GO_PROFILE_STRIP_SELECT_TYPE_LEFT_INDEX (1) ///< Select the strip with the currently selected index starting from the left side.
2333 #define GO_PROFILE_STRIP_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the strip with the currently selected index starting from the right side.
2334 /**@}*/
2335 
2336 /**
2337  * @struct GoProfileStripLocation
2338  * @ingroup GoSdk-ProfileTools
2339  * @brief Determines which Strip position to return.
2340  *
2341  * The following enumerators are defined:
2342  * - #GO_PROFILE_STRIP_LOCATION_LEFT
2343  * - #GO_PROFILE_STRIP_LOCATION_RIGHT
2344  * - #GO_PROFILE_STRIP_LOCATION_BOTTOM
2345  */
2346 typedef k32s GoProfileStripLocation;
2347 /** @name GoProfileStripLocation
2348  *@{*/
2349 #define GO_PROFILE_STRIP_LOCATION_LEFT (0) ///< Return the position of the left corner of the Strip.
2350 #define GO_PROFILE_STRIP_LOCATION_RIGHT (1) ///< Return the position of the right corner of the Strip.
2351 #define GO_PROFILE_STRIP_LOCATION_BOTTOM (2) ///< Return the position of the center of the Strip.
2352 /**@}*/
2353 
2354 /**
2355 * @struct GoProfileGenerationType
2356 * @extends kValue
2357 * @ingroup GoSdk-Profile
2358 * @brief Represents a profile generation type.
2359 *
2360 * The following enumerators are defined:
2361 * - #GO_PROFILE_GENERATION_TYPE_CONTINUOUS
2362 * - #GO_PROFILE_GENERATION_TYPE_FIXED_LENGTH
2363 * - #GO_PROFILE_GENERATION_TYPE_VARIABLE_LENGTH
2364 * - #GO_PROFILE_GENERATION_TYPE_ROTATIONAL
2365 */
2366 typedef k32s GoProfileGenerationType;
2367 /** @name GoProfileGenerationType
2368 *@{*/
2369 #define GO_PROFILE_GENERATION_TYPE_CONTINUOUS (0) ///< Continuous Profile generation.
2370 #define GO_PROFILE_GENERATION_TYPE_FIXED_LENGTH (1) ///< Fixed length Profile generation.
2371 #define GO_PROFILE_GENERATION_TYPE_VARIABLE_LENGTH (2) ///< Variable length Profile generation.
2372 #define GO_PROFILE_GENERATION_TYPE_ROTATIONAL (3) ///< Rotational Profile generation.
2373 /**@}*/
2374 
2375 /**
2376 * @struct GoProfileGenerationStartTrigger
2377 * @extends kValue
2378 * @ingroup GoSdk-Profile
2379 * @brief Represents a profile generation start trigger.
2380 *
2381 * The following enumerators are defined:
2382 * - #GO_PROFILE_GENERATION_START_TRIGGER_SEQUENTIAL
2383 * - #GO_PROFILE_GENERATION_START_TRIGGER_DIGITAL
2384 */
2385 typedef k32s GoProfileGenerationStartTrigger;
2386 /** @name GoProfileGenerationStartTrigger
2387 *@{*/
2388 #define GO_PROFILE_GENERATION_START_TRIGGER_SEQUENTIAL (0) ///< Sequential start trigger.
2389 #define GO_PROFILE_GENERATION_START_TRIGGER_DIGITAL (1) ///< Digital input start trigger.
2390 /**@}*/
2391 
2392 /// @endcond
2393 
2394 /// @cond (Gocator_2x00 || Gocator_3x00)
2395 
2396 /**
2397  * @struct GoPartFrameOfReference
2398  * @extends kValue
2399  * @ingroup GoSdk
2400  * @brief Represents a part detection frame of reference.
2401  *
2402  * The following enumerators are defined:
2403  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR
2404  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN
2405  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_PART
2406  */
2408 /** @name GoPartFrameOfReference
2409  *@{*/
2410 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR (0) ///< Sensor frame of reference. 2x00 only.
2411 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN (0) ///< Scan frame of reference. 3x00 only. Value duplication is intentional.
2412 #define GO_PART_FRAME_OF_REFERENCE_TYPE_PART (1) ///< Part frame of reference.
2413 /**@}*/
2414 
2415 /**
2416  * @struct GoPartHeightThresholdDirection
2417  * @extends kValue
2418  * @ingroup GoSdk-Surface
2419  * @brief Represents a part detection height threshold direction.
2420  *
2421  * The following enumerators are defined:
2422  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE
2423  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW
2424  */
2426 /** @name GoPartHeightThresholdDirection
2427  *@{*/
2428 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE (0) ///< Height threshold direction is above the Z-axis.
2429 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW (1) ///< Height threshold direction is below the Z-axis.
2430 /**@}*/
2431 
2432 /**
2433  * @struct GoSurfaceGenerationType
2434  * @extends kValue
2435  * @ingroup GoSdk-Surface
2436  * @brief Represents a surface generation type.
2437  *
2438  * The following enumerators are defined:
2439  * - #GO_SURFACE_GENERATION_TYPE_CONTINUOUS
2440  * - #GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH
2441  * - #GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH
2442  * - #GO_SURFACE_GENERATION_TYPE_ROTATIONAL
2443  */
2445 /** @name GoSurfaceGenerationType
2446  *@{*/
2447 #define GO_SURFACE_GENERATION_TYPE_CONTINUOUS (0) ///< Continuous surface generation.
2448 #define GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH (1) ///< Fixed length surface generation.
2449 #define GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH (2) ///< Variable length surface generation.
2450 #define GO_SURFACE_GENERATION_TYPE_ROTATIONAL (3) ///< Rotational surface generation.
2451 /**@}*/
2452 
2453 /**
2454  * @struct GoSurfaceGenerationStartTrigger
2455  * @extends kValue
2456  * @ingroup GoSdk-Surface
2457  * @brief Represents a surface generation start trigger.
2458  *
2459  * The following enumerators are defined:
2460  * - #GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL
2461  * - #GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL
2462  */
2464 /** @name GoSurfaceGenerationStartTrigger
2465  *@{*/
2466 #define GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL (0) ///< Sequential start trigger.
2467 #define GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL (1) ///< Digital input start trigger.
2468 /**@}*/
2469 
2470 /**
2471  * @struct GoSurfaceLocation
2472  * @ingroup GoSdk-SurfaceTools
2473  * @brief Represents a surface location.
2474  *
2475  * The following enumerators are defined:
2476  * - #GO_SURFACE_LOCATION_TYPE_MAX
2477  * - #GO_SURFACE_LOCATION_TYPE_MIN
2478  * - #GO_SURFACE_LOCATION_TYPE_2D_CENTROID
2479  * - #GO_SURFACE_LOCATION_TYPE_3D_CENTROID
2480  * - #GO_SURFACE_LOCATION_TYPE_AVG
2481  * - #GO_SURFACE_LOCATION_TYPE_MEDIAN
2482  */
2483 typedef k32s GoSurfaceLocation;
2484 /** @name GoSurfaceLocation
2485  *@{*/
2486 #define GO_SURFACE_LOCATION_TYPE_MAX (0) ///< Location based on the maximum point.
2487 #define GO_SURFACE_LOCATION_TYPE_MIN (1) ///< Location based on the minimum point.
2488 #define GO_SURFACE_LOCATION_TYPE_2D_CENTROID (2) ///< Location based on a 2d centroid.
2489 #define GO_SURFACE_LOCATION_TYPE_3D_CENTROID (3) ///< Location based on a 3d centroid.
2490 #define GO_SURFACE_LOCATION_TYPE_AVG (4) ///< Location based on the average point.
2491 #define GO_SURFACE_LOCATION_TYPE_MEDIAN (5) ///< Location based on the median point.
2492 /**@}*/
2493 
2494 /**
2495  * @struct GoSurfaceFeatureType
2496  * @ingroup GoSdk-SurfaceTools
2497  * @brief Represents a surface feature type.
2498  *
2499  * The following enumerators are defined:
2500  * - #GO_SURFACE_FEATURE_TYPE_AVERAGE
2501  * - #GO_SURFACE_FEATURE_TYPE_CENTROID
2502  * - #GO_SURFACE_FEATURE_TYPE_X_MAX
2503  * - #GO_SURFACE_FEATURE_TYPE_X_MIN
2504  * - #GO_SURFACE_FEATURE_TYPE_Y_MAX
2505  * - #GO_SURFACE_FEATURE_TYPE_Y_MIN
2506  * - #GO_SURFACE_FEATURE_TYPE_Z_MAX
2507  * - #GO_SURFACE_FEATURE_TYPE_Z_MIN
2508  * - #GO_SURFACE_FEATURE_TYPE_MEDIAN
2509  */
2510 typedef k32s GoSurfaceFeatureType;
2511 /** @name GoSurfaceFeatureType
2512  *@{*/
2513 #define GO_SURFACE_FEATURE_TYPE_AVERAGE (0) ///< Feature based on the average.
2514 #define GO_SURFACE_FEATURE_TYPE_CENTROID (1) ///< Feature based on the centroid.
2515 #define GO_SURFACE_FEATURE_TYPE_X_MAX (2) ///< Feature based on the X maximum point.
2516 #define GO_SURFACE_FEATURE_TYPE_X_MIN (3) ///< Feature based on the X minimum point.
2517 #define GO_SURFACE_FEATURE_TYPE_Y_MAX (4) ///< Feature based on the Y maximum point.
2518 #define GO_SURFACE_FEATURE_TYPE_Y_MIN (5) ///< Feature based on the Y minimum point.
2519 #define GO_SURFACE_FEATURE_TYPE_Z_MAX (6) ///< Feature based on the Z maximum point.
2520 #define GO_SURFACE_FEATURE_TYPE_Z_MIN (7) ///< Feature based on the Z minimum point.
2521 #define GO_SURFACE_FEATURE_TYPE_MEDIAN (8) ///< Feature based on the median.
2522 /**@}*/
2523 
2524 /**
2525  * @struct GoSurfaceCountersunkHoleShape
2526  * @extends kValue
2527  * @ingroup GoSdk-SurfaceTools
2528  * @brief Represents a surface countersunk hole tool shape.
2529  *
2530  * The following enumerators are defined:
2531  * - #GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_CONE
2532  * - #GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_COUNTERBORE
2533  */
2535 /** @name GoSurfaceCountersunkHoleShape
2536  *@{*/
2537 #define GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_CONE (0) ///< Cone shape.
2538 #define GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_COUNTERBORE (1) ///< Counterbore shape.
2539 /**@}*/
2540 
2541 
2542 /**
2543  * @struct GoSurfaceOpeningType
2544  * @extends kValue
2545  * @ingroup GoSdk-SurfaceTools
2546  * @brief Represents a surface opening tool type.
2547  *
2548  * The following enumerators are defined:
2549  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT
2550  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE
2551  */
2552 typedef k32s GoSurfaceOpeningType;
2553 /** @name GoSurfaceOpeningType
2554  *@{*/
2555 #define GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT (0) ///< Rounded slot opening type.
2556 #define GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE (1) ///< Rectangular opening type.
2557 /**@}*/
2558 
2559 /**
2560 * @struct GoSurfaceRivetType
2561 * @extends kValue
2562 * @ingroup GoSdk-SurfaceTools
2563 * @brief Represents a surface rivet tool type.
2564 *
2565 * The following enumerators are defined:
2566 * - #GO_SURFACE_RIVET_TYPE_FLUSH
2567 * - #GO_SURFACE_RIVET_TYPE_RAISED
2568 */
2569 typedef k32s GoSurfaceRivetType;
2570 /** @name GoSurfaceRivetType
2571 *@{*/
2572 #define GO_SURFACE_RIVET_TYPE_FLUSH (0) ///< Flush rivet type.
2573 #define GO_SURFACE_RIVET_TYPE_RAISED (1) ///< Raised rivet type.
2574 /**@}*/
2575 
2576 /**
2577  * @struct GoPartMatchAlgorithm
2578  * @extends kValue
2579  * @ingroup GoSdk-Surface
2580  * @brief Represents a part matching algorithm.
2581  *
2582  * The following enumerators are defined:
2583  * - #GO_PART_MATCH_ALGORITHM_EDGE
2584  * - #GO_PART_MATCH_ALGORITHM_BOUNDING_BOX
2585  * - #GO_PART_MATCH_ALGORITHM_ELLIPSE
2586  */
2587 typedef k32s GoPartMatchAlgorithm;
2588 /** @name GoPartMatchAlgorithm
2589  *@{*/
2590 #define GO_PART_MATCH_ALGORITHM_EDGE (0) ///< Edge based part match algorithm.
2591 #define GO_PART_MATCH_ALGORITHM_BOUNDING_BOX (1) ///< Bounding box based part match algorithm.
2592 #define GO_PART_MATCH_ALGORITHM_ELLIPSE (2) ///< Ellipse based part match algorithm.
2593 /**@}*/
2594 
2595 
2596 /**
2597  * @struct GoBoxAsymmetryType
2598  * @extends kValue
2599  * @ingroup GoSdk-Surface
2600  * @brief Represents the bounding box part matching asymmetry detection type.
2601  *
2602  * The following enumerators are defined:
2603  * - #GO_BOX_ASYMMETRY_TYPE_NONE
2604  * - #GO_BOX_ASYMMETRY_TYPE_ALONG_LENGTH_AXIS
2605  * - #GO_BOX_ASYMMETRY_TYPE_ALONG_WIDTH_AXIS
2606  */
2607 typedef k32s GoBoxAsymmetryType;
2608 /** @name GoBoxAsymmetryType
2609  *@{*/
2610 #define GO_BOX_ASYMMETRY_TYPE_NONE (0) ///< None
2611 #define GO_BOX_ASYMMETRY_TYPE_ALONG_LENGTH_AXIS (1) ///< Along Length axis
2612 #define GO_BOX_ASYMMETRY_TYPE_ALONG_WIDTH_AXIS (2) ///< Along Width axis
2613 /**@}*/
2614 
2615 /**
2616  * @struct GoEllipseAsymmetryType
2617  * @extends kValue
2618  * @ingroup GoSdk-Surface
2619  * @brief Represents the bounding Ellipse part matching asymmetry detection type.
2620  *
2621  * The following enumerators are defined:
2622  * - #GO_ELLIPSE_ASYMMETRY_TYPE_NONE
2623  * - #GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MAJOR_AXIS
2624  * - #GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MINOR_AXIS
2625  */
2627 /** @name GoEllipseAsymmetryType
2628  *@{*/
2629 #define GO_ELLIPSE_ASYMMETRY_TYPE_NONE (0) ///< None
2630 #define GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MAJOR_AXIS (1) ///< Along Major axis
2631 #define GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MINOR_AXIS (2) ///< Along Minor axis
2632 /**@}*/
2633 
2634 
2635 #define GO_SURFACE_COUNTERSUNK_HOLE_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Counter Sunk Hole Tool.
2636 #define GO_SURFACE_HOLE_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Hole Tool.
2637 #define GO_SURFACE_OPENING_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Opening Tool.
2638 #define GO_SURFACE_PLANE_MAX_REGIONS (4) ///< The maximum number of reference regions permitted for the Surface Plane Tool.
2639 #define GO_SURFACE_RIVET_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Rivet Tool.
2640 #define GO_SURFACE_STUD_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Stud Tool.
2641 
2642 /**
2643  * @struct GoImageType
2644  * @extends kValue
2645  * @ingroup GoSdk
2646  * @brief Represents an image type.
2647  *
2648  * The following enumerators are defined:
2649  * - #GO_IMAGE_TYPE_HEIGHTMAP
2650  * - #GO_IMAGE_TYPE_INTENSITY
2651  */
2652 typedef k32s GoImageType;
2653 /** @name GoImageType
2654  *@{*/
2655 #define GO_IMAGE_TYPE_HEIGHTMAP (0) ///< Heightmap image type.
2656 #define GO_IMAGE_TYPE_INTENSITY (1) ///< Intensity image type.
2657 /**@}*/
2658 
2659 /**
2660  * @struct GoSurfaceEncoding
2661  * @extends kValue
2662  * @ingroup GoSdk
2663  * @brief Represents a surface scanning engine encoding type
2664  *
2665  * The following enumerators are defined:
2666  * - #GO_SURFACE_ENCODING_STANDARD
2667  * - #GO_SURFACE_ENCODING_INTERREFLECTION
2668  */
2669 typedef k32s GoSurfaceEncoding;
2670 /** @name GoSurfaceEncoding
2671  *@{*/
2672 #define GO_SURFACE_ENCODING_STANDARD (0) ///< Standard Phase Encoding
2673 #define GO_SURFACE_ENCODING_INTERREFLECTION (1) ///< Interreflection Encoding (Advanced Users Only)
2674 /**@}*/
2675 
2676 /**
2677  * @struct GoSurfacePhaseFilter
2678  * @extends kValue
2679  * @ingroup GoSdk
2680  * @brief Represents a surface phase filter type
2681  *
2682  * The following enumerators are defined:
2683  * - #GO_SURFACE_PHASE_FILTER_NONE
2684  * - #GO_SURFACE_PHASE_FILTER_REFLECTIVE
2685  * - #GO_SURFACE_PHASE_FILTER_TRANSLUCENT
2686  */
2687 typedef k32s GoSurfacePhaseFilter;
2688 /** @name GoSurfacePhaseFilter
2689  *@{*/
2690 #define GO_SURFACE_PHASE_FILTER_NONE (0) ///< Standard
2691 #define GO_SURFACE_PHASE_FILTER_REFLECTIVE (1) ///< Reflective Phase Filters
2692 #define GO_SURFACE_PHASE_FILTER_TRANSLUCENT (2) ///< Translucent Phase Filters
2693 /**@}*/
2694 
2695 
2696 /// @endcond
2697 
2698 /**
2699  * @struct GoGammaType
2700  * @extends kValue
2701  * @ingroup GoSdk
2702  * @brief Represents an advanced gamma type.
2703  *
2704  * The following enumerators are defined:
2705  * - #GO_GAMMA_TYPE_NONE
2706  * - #GO_GAMMA_TYPE_LOW
2707  * - #GO_GAMMA_TYPE_MEDIUM
2708  * - #GO_GAMMA_TYPE_HIGH
2709  */
2710 typedef k32s GoGammaType;
2711 /** @name GoGammaType
2712  *@{*/
2713 #define GO_GAMMA_TYPE_NONE (0) ///< None. No imager gamma / multi-slope configuration will occur.
2714 #define GO_GAMMA_TYPE_LOW (1) ///< Low.
2715 #define GO_GAMMA_TYPE_MEDIUM (2) ///< Medium.
2716 #define GO_GAMMA_TYPE_HIGH (3) ///< High.
2717 /**@}*/
2718 
2719 /**
2720  * @struct GoPatternSequenceType
2721  * @extends kValue
2722  * @ingroup GoSdk
2723  * @brief Represents a pattern sequence type.
2724  *
2725  * The following enumerators are defined:
2726  * - #GO_PATTERN_SEQUENCE_TYPE_DEFAULT
2727  * - #GO_PATTERN_SEQUENCE_TYPE_CUSTOM
2728  *
2729  */
2730 typedef k32s GoPatternSequenceType;
2731 /** @name GoPatternSequenceType
2732  *@{*/
2733 
2734 #define GO_PATTERN_SEQUENCE_TYPE_DEFAULT (0) ///< Default sequence pattern.
2735 #define GO_PATTERN_SEQUENCE_TYPE_CUSTOM (100) ///< Custom sequence pattern.
2736 /**@}*/
2737 
2738 
2739 /**
2740  * @struct GoImplicitTriggerOverride
2741  * @extends kValue
2742  * @ingroup GoSdk
2743  * @brief Represents an EthernetIP implicit messaging trigger override.
2744  *
2745  * The following enumerators are defined:
2746  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_OFF
2747  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_CYCLIC
2748  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_CHANGE_OF_STATE
2749  *
2750  */
2752 /** @name GoImplicitTriggerOverride
2753  *@{*/
2754 
2755 #define GO_IMPLICIT_TRIGGER_OVERRIDE_OFF (0) ///< Use the implicit output trigger specified in the connection header.
2756 #define GO_IMPLICIT_TRIGGER_OVERRIDE_CYCLIC (1) ///< Utilize cyclic implicit messaging trigger behavior regardless of what is specified in the connection header.
2757 #define GO_IMPLICIT_TRIGGER_OVERRIDE_CHANGE_OF_STATE (2) ///< Utilize change of state implicit messaging trigger behavior regardless of what is specified in the connection header.
2758 /**@}*/
2759 
2760 /**
2761  * @struct GoAlignmentStatus
2762  * @extends kValue
2763  * @ingroup GoSdk
2764  * @brief Represents the operation status of an alignment.
2765  *
2766  * The following enumerators are defined:
2767  * - #GO_ALIGNMENT_STATUS_OK
2768  * - #GO_ALIGNMENT_STATUS_GENERAL_FAILURE
2769  * - #GO_ALIGNMENT_STATUS_STATIONARY_NO_DATA
2770  * - #GO_ALIGNMENT_STATUS_MOVING_INSUFFICIENT_DATA
2771  * - #GO_ALIGNMENT_STATUS_INVALID_TARGET
2772  * - #GO_ALIGNMENT_STATUS_UNEXPECTED_TARGET_POSITION
2773  * - #GO_ALIGNMENT_STATUS_BAR_HOLE_NOT_FOUND
2774  * - #GO_ALIGNMENT_STATUS_MOVING_NO_ENCODER_CHANGE
2775  * - #GO_ALIGNMENT_STATUS_ABORT
2776  * - #GO_ALIGNMENT_STATUS_TIMEOUT
2777  * - #GO_ALIGNMENT_STATUS_INVALID_PARAMETER
2778  *
2779  */
2780 typedef k32s GoAlignmentStatus;
2781 /** @name GoAlignmentStatus
2782  *@{*/
2783 
2784 #define GO_ALIGNMENT_STATUS_OK (1) ///< Alignment operation succeeded.
2785 #define GO_ALIGNMENT_STATUS_GENERAL_FAILURE (0) ///< Alignment operation failed.
2786 #define GO_ALIGNMENT_STATUS_STATIONARY_NO_DATA (-1) ///< Stationary alignment failed due to no data being received. Please ensure the target is in range.
2787 #define GO_ALIGNMENT_STATUS_MOVING_INSUFFICIENT_DATA (-2) ///< Moving alignment failed due to insufficient data.
2788 #define GO_ALIGNMENT_STATUS_INVALID_TARGET (-3) ///< Invalid target detected. Examples include the target dimensions being too small, the target touches both sides of the field of view, or there is insufficient data after some internal filtering.
2789 #define GO_ALIGNMENT_STATUS_UNEXPECTED_TARGET_POSITION (-4) ///< Target detected in an unexpected position. Please ensure the target is stable and there are no obstructions.
2790 #define GO_ALIGNMENT_STATUS_BAR_HOLE_NOT_FOUND (-5) ///< No reference hole was found during bar alignment. Please ensure the holes can be seen and that the target parameters match their physical dimensions.
2791 #define GO_ALIGNMENT_STATUS_MOVING_NO_ENCODER_CHANGE (-6) ///< No change in encoder value occurred during moving alignment. Please ensure the encoder is connected and the target is moving.
2792 #define GO_ALIGNMENT_STATUS_ABORT (kERROR_ABORT) ///< The alignment was aborted by the user.
2793 #define GO_ALIGNMENT_STATUS_TIMEOUT (kERROR_TIMEOUT) ///< The alignment timed out.
2794 #define GO_ALIGNMENT_STATUS_INVALID_PARAMETER (kERROR_PARAMETER) ///< The alignment failed due to incorrected parameters.
2795 /**@}*/
2796 
2797 typedef struct GoFeatureOption
2798 {
2799  kText64 name;
2800  kSize minCount;
2801  kSize maxCount;
2802  GoFeatureDataType dataType;
2803  kText64 type;
2804 } GoFeatureOption;
2805 
2806 typedef struct GoMeasurementOption
2807 {
2808  kText64 name;
2809  kSize minCount;
2810  kSize maxCount;
2811 } GoMeasurementOption;
2812 
2813 typedef struct GoToolDataOutputOption
2814 {
2815  kText64 name;
2816  kText64 type;
2817  GoDataType dataType;
2818  kSize minCount;
2819  kSize maxCount;
2820 } GoToolDataOutputOption;
2821 
2822 /**
2823  * @struct GoEventType
2824  * @extends kValue
2825  * @ingroup GoSdk
2826  * @brief Represents the event type represented by an event message.
2827  *
2828  * The following enumerator is defined:
2829  * - GO_EVENT_TYPE_EXPOSURE_END
2830  *
2831  */
2832 typedef k32s GoEventType;
2833 /** @name GoEventType
2834  *@{*/
2835 
2836 #define GO_EVENT_TYPE_EXPOSURE_END (1)
2837 /**@}*/
2838 
2839 /**
2840 * @struct GoOcclusionReductionAlg
2841 * @extends kValue
2842 * @ingroup GoSdk
2843 * @brief Represents an occlusion reduction algorithm.
2844 *
2845 * The following enumerators are defined:
2846 * - #GO_OCCLUSION_REDUCTION_NORMAL
2847 * - #GO_OCCLUSION_REDUCTION_HIGH_QUALITY
2848 */
2850 /** @name GoOcclusionReductionAlg
2851 *@{*/
2852 #define GO_OCCLUSION_REDUCTION_NORMAL (0) ///< Basic occlusion reduction.
2853 #define GO_OCCLUSION_REDUCTION_HIGH_QUALITY (1) ///< High quality occlusion reduction.
2854 /**@}*/
2855 
2856 /**
2857 * @struct GoDemosaicStyle
2858 * @extends kValue
2859 * @ingroup GoSdk
2860 * @brief Represents a Bayer demosaic algorithm style.
2861 *
2862 * The following enumerators are defined:
2863 * - #GO_DEMOSAIC_STYLE_REDUCE
2864 * - #GO_DEMOSAIC_STYLE_BILINEAR
2865 * - #GO_DEMOSAIC_STYLE_GRADIENT
2866 */
2867 typedef k32s GoDemosaicStyle;
2868 /** @name GoDemosaicStyle
2869 *@{*/
2870 #define GO_DEMOSAIC_STYLE_REDUCE (0) ///< Simple Reduce (Shrinks image width and height by a factor of 2)
2871 #define GO_DEMOSAIC_STYLE_BILINEAR (1) ///< Bilinear demosaic (Same size output)
2872 #define GO_DEMOSAIC_STYLE_GRADIENT (2) ///< Gradient demosaic (Same size output)
2873 /**@}*/
2874 
2875 /**
2876 * @struct GoDiscoveryOpMode
2877 * @extends kValue
2878 * @ingroup GoSdk-Discovery
2879 * @brief Represents operational mode of the main controller responding
2880 * to the discovery protocol.
2881 *
2882 * The following enumerators are defined:
2883 * - #GO_DISCOVERY_OP_MODE_NOT_AVAILABLE
2884 * - #GO_DISCOVERY_OP_MODE_STANDALONE
2885 * - #GO_DISCOVERY_OP_MODE_VIRTUAL
2886 * - #GO_DISCOVERY_OP_MODE_ACCELERATOR
2887 */
2888 typedef k8u GoDiscoveryOpMode;
2889 /** @name GoDiscoveryOpMode
2890 *@{*/
2891 #define GO_DISCOVERY_OP_MODE_NOT_AVAILABLE (0) ///< Not provided by sensor
2892 #define GO_DISCOVERY_OP_MODE_STANDALONE (1) ///< Sensor is running standalone
2893 #define GO_DISCOVERY_OP_MODE_VIRTUAL (2) ///< Sensor is a virtual sensor
2894 #define GO_DISCOVERY_OP_MODE_ACCELERATOR (3) ///< Sensor is accelerated
2895 /**@}*/
2896 
2897 //@endcond
2898 
2899 
2900 kEndHeader()
2901 #include <GoSdk/GoSdkDef.x.h>
2902 
2903 #endif
Represents a surface countersunk hole tool shape.
Represents an active area configuration element.
Definition: GoSdkDef.h:839
k64f yAngle
The Y angle of the transformation. (degrees)
Definition: GoSdkDef.h:861
Lists all tool types.
k64f y
The Y offset of the transformed data region. (mm)
Definition: GoSdkDef.h:874
Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
Definition: GoSdkDef.h:717
Ports used from a source device.
Definition: GoSdkDef.h:757
Represents a data input source.
Represents an output delay domain.
Represents a 32-bit unsigned integer configuration element with a range and enabled state...
Definition: GoSdkDef.h:799
k32s playbackSource
The current playback source of the sensor.
Definition: GoSdkDef.h:724
Represents all possible sources of intensity data.
Represents a surface feature type.
k16u dataPort
Data channel port.
Definition: GoSdkDef.h:762
Represents a playback seek direction.
kBool enabled
Represents whether the element value is currently used.
Definition: GoSdkDef.h:816
k64f max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:789
GoUser loginType
The logged in user.
Definition: GoSdkDef.h:720
Represents the replay export source type.
Represents a replay condition type.
k16u controlPort
Control channel port.
Definition: GoSdkDef.h:759
Represents data source selections. Used as a bitmask.
GoAlignmentRef alignmentReference
The alignment reference of the sensor.
Definition: GoSdkDef.h:721
Lists all measurement types.
GoElement64f value
The filter's configuration properties.
Definition: GoSdkDef.h:830
Represents the bounding Ellipse part matching asymmetry detection type.
Represents the possible measurement decision codes.
kBool isAccelerator
The accelerated state of the sensor.
Definition: GoSdkDef.h:730
Represents a surface generation start trigger.
Represents the supported Gocator hardware families.
Represents a surface phase filter type.
GoSecurityLevel security
security level setup on the sensor: none/basic; when basic level does not allow anonymous users acces...
Definition: GoSdkDef.h:734
Represents a user role.
kBool enabled
Represents whether the element value is currently used.
Definition: GoSdkDef.h:801
Represents a replay combine type.
Represents an alignment degree of freedom setting.
Represents a replay measurement result.
kBool useDhcp
Sensor uses DHCP?
Definition: GoSdkDef.h:745
Represents a ethernet output protocol.
Represents a surface opening tool type.
Represents a data stream which consists of a data step and ID.
Definition: GoSdkDef.h:1186
Represents a data source.
k32u playbackCount
The playback count.
Definition: GoSdkDef.h:728
Represents a transformed data region.
Definition: GoSdkDef.h:871
GoElement64f length
The length of the active area. (mm)
Definition: GoSdkDef.h:845
k64f x
The X offset of the transformed data region. (mm)
Definition: GoSdkDef.h:873
k32u uptimeSec
Sensor uptime in seconds.
Definition: GoSdkDef.h:725
Represents the measurement output decision values. Bit 0 represents the decision value, while bits 1 through 7 represent the decision code, outlined by GoDecisionCode.
GoAlignmentState alignmentState
The alignment state of the sensor.
Definition: GoSdkDef.h:722
Represents a trigger.
k64f y
The Y offset of the transformation. (mm)
Definition: GoSdkDef.h:858
Represents an endian output type.
Represents an alignment element.
Definition: GoSdkDef.h:855
Represents a surface scanning engine encoding type.
Represents either 48V or 24V (with cable length) operation. Only relevant on G3210.
Lists all feature types.
k64f value
The element's double field value.
Definition: GoSdkDef.h:788
Represents a part detection frame of reference.
Lists all feature data types.
Represents a composite data source.
Definition: GoSdkDef.h:887
GoBuddyState state
Buddy state of this device.
Definition: GoSdkDef.h:775
GoElement64f width
The width of the active area. (mm)
Definition: GoSdkDef.h:846
GoElement64f z
The Z offset of the active area. (mm)
Definition: GoSdkDef.h:843
Represents an alignment state.
kBool recordingEnabled
The current state of recording on the sensor.
Definition: GoSdkDef.h:723
kIpAddress gateway
Sensor gateway address.
Definition: GoSdkDef.h:748
Represents operational mode of the main controller responding to the discovery protocol.
kBool autoStartEnabled
The auto-start enabled state.
Definition: GoSdkDef.h:729
Represents a surface generation type.
GoElement64f y
The Y offset of the active area. (mm)
Definition: GoSdkDef.h:842
Represents a data stream id which consists of a data step, step id and source id. ...
Definition: GoSdkDef.h:1198
k64f min
The minimum allowable value that can be set for this element.
Definition: GoSdkDef.h:790
Represents an advanced gamma type.
Represents a surface location.
Represents an analog output trigger.
Represents an image type.
Represents all possible intensity generation modes for multiple exposures.
Represents a video message pixel type.
Represents a filter configuration element.
Definition: GoSdkDef.h:827
Represents the status of the Accelerator connection. These are applicable only when using the GoAccel...
Represents an EthernetIP implicit messaging trigger override.
GoState sensorState
The state of the sensor.
Definition: GoSdkDef.h:719
kIpAddress address
Sensor IP address.
Definition: GoSdkDef.h:746
Represents a Bayer demosaic algorithm style.
kBool enabled
Represents whether the element value is currently used. (not always applicable)
Definition: GoSdkDef.h:786
Buddy related status of another sensor.
Definition: GoSdkDef.h:772
Represents the operation status of an alignment.
k64f width
The width of the transformed data region. (mm)
Definition: GoSdkDef.h:876
Represents the system's primary synchronization domain.
Represents an encoder's triggering behavior.
Represents an ASCII standard format type.
kBool systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:817
Corner parameters for polygon corner alignment.
Definition: GoSdkDef.h:565
Lists all data message types.
Represents a surface rivet tool type.
k64f progress
Upgrade progress (percentage).
Definition: GoSdkDef.h:75
Represents a sensor orientation type.
Represents a user id.
k32u id
Serial number of the device.
Definition: GoSdkDef.h:774
Represents the acceleration status of a sensor that is available or being accelerated by the local ho...
k32u min
The minimum allowable value that can be set for this element.
Definition: GoSdkDef.h:805
Represents an alignment target type.
Represents all possible exposure modes.
Represents a replay range count case.
Represents an alignment reference.
Represents output sources.
k64f zAngle
The Z angle of the transformation. (degrees)
Definition: GoSdkDef.h:862
k32u value
The element's 32-bit unsigned field value.
Definition: GoSdkDef.h:803
Represents a pattern sequence type.
k32u cableLength
length of the cable from the Sensor to the Master in
Definition: GoSdkDef.h:732
Represents an ASCII protocol operational type.
Represents a analog output event.
kIpAddress mask
Sensor subnet bit-mask.
Definition: GoSdkDef.h:747
Represents arguments provided to an upgrade callback function.
Definition: GoSdkDef.h:73
Represents a 64-bit floating point configuration element with a range and enabled state...
Definition: GoSdkDef.h:784
Represents a digital output signal type.
Represents a trigger source type.
Represents spacing interval types.
GoElement64f height
The height of the active area. (mm)
Definition: GoSdkDef.h:844
k32u max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:804
Represents an alignment type.
kBool used
Represents whether the filter field is currently used.
Definition: GoSdkDef.h:829
Represents a boolean configuration element with an enabled state.
Definition: GoSdkDef.h:814
Represents the current maximum frame rate limiting source.
Represents an occlusion reduction algorithm.
k16u webPort
Web channel port.
Definition: GoSdkDef.h:761
Represents a scan mode.
GoVoltageSetting voltage
Power Source Voltage: 24 or 48 V.
Definition: GoSdkDef.h:731
Represents a digital output event.
k64f systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:787
GoDataSource dataSource
The data source of the composite data source.
Definition: GoSdkDef.h:890
Represents the event type represented by an event message.
k64f x
The X offset of the transformation. (mm)
Definition: GoSdkDef.h:857
k32u systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:802
k32u uptimeMicrosec
Sensor uptime in microseconds.
Definition: GoSdkDef.h:726
Represents the bounding box part matching asymmetry detection type.
Represents a part detection height threshold direction.
k32u playbackPos
The playback position index.
Definition: GoSdkDef.h:727
Represents the selcom format followed on the serial output.
k32s id
The ID of the underlying data source.
Definition: GoSdkDef.h:889
k16u upgradePort
Upgrade channel port.
Definition: GoSdkDef.h:760
kBool quickEditEnabled
The current state of editting.
Definition: GoSdkDef.h:733
Represents possible data streams.
kBool value
The element's boolean field value.
Definition: GoSdkDef.h:818
k64f length
The length of the transformed data region. (mm)
Definition: GoSdkDef.h:877
k16u healthPort
Health channel port.
Definition: GoSdkDef.h:763
GoElement64f x
The X offset of the active area. (mm)
Definition: GoSdkDef.h:841
k64f z
The Z offset of the transformation. (mm)
Definition: GoSdkDef.h:859
k64f height
The height of the transformed data region. (mm)
Definition: GoSdkDef.h:878
k64f z
The Z offset of the transformed data region. (mm)
Definition: GoSdkDef.h:875
k64f xAngle
The X angle of the transformation. (degrees)
Definition: GoSdkDef.h:860
Lists all sensor acceleration states that a sensor can be in. When a sensor is being accelerated...
Represents a digital output condition.
Sensor network address settings.
Definition: GoSdkDef.h:743
Represents all serial output protocols.
Represents a part matching algorithm.
Represents the current state of a sensor object.
Represents the current encoder period limiting source.