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