Gocator API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
GoSdkDef.h
Go to the documentation of this file.
1 /**
2  * @file GoSdkDef.h
3  * @brief Essential SDK declarations.
4  *
5  * @internal
6  * Copyright (C) 2016 by LMI Technologies Inc.
7  * Licensed under the MIT License.
8  * Redistributed files must retain the above copyright notice.
9  */
10 #ifndef GO_SDK_DEF_H
11 #define GO_SDK_DEF_H
12 
13 #include <kApi/kApiDef.h>
14 #include <kApi/Io/kNetwork.h>
15 
16 kBeginHeader()
17 
18 #if defined (GO_EMIT)
19 # define GoFx(TYPE) kExportFx(TYPE) ///< GoSdk function declaration helper.
20 # define GoCx(TYPE) kExportCx(TYPE) ///< GoSdk dynamic function declaration helper.
21 # define GoDx(TYPE) kExportDx(TYPE) ///< GoSdk data declaration helper.
22 #elif defined (GO_STATIC)
23 # define GoFx(TYPE) kInFx(TYPE)
24 # define GoCx(TYPE) kInCx(TYPE)
25 # define GoDx(TYPE) kInDx(TYPE)
26 #else
27 # define GoFx(TYPE) kImportFx(TYPE)
28 # define GoCx(TYPE) kImportCx(TYPE)
29 # define GoDx(TYPE) kImportDx(TYPE)
30 #endif
31 
32 /**
33  * Returns the SDK version.
34  *
35  * @public @memberof GoSdk
36  * @version Introduced in firmware 4.0.10.27
37  * @return SDK version.
38  */
39 GoFx(kVersion) GoSdk_Version();
40 
41 /**
42  * Returns the protocol version associated with the SDK.
43  *
44  * @public @memberof GoSdk
45  * @version Introduced in firmware 4.0.10.27
46  * @return Protocol version.
47  */
48 GoFx(kVersion) GoSdk_ProtocolVersion();
49 
50 /**
51  * Frees the memory associated with a given kObject sourced class handle.
52  *
53  * @public @memberof GoSdk
54  * @version Introduced in firmware 4.0.10.27
55  * @param object A kObject.
56  * @return Operation status.
57  */
58 GoFx(kStatus) GoDestroy(kObject object);
59 
60 /**
61  * @struct GoUpgradeFxArgs
62  * @extends kValue
63  * @ingroup GoSdk
64  * @brief Represents arguments provided to an upgrade callback function.
65  */
66 typedef struct GoUpgradeFxArgs
67 {
68  k64f progress; ///< Upgrade progress (percentage).
70 
71 typedef kStatus (kCall* GoUpgradeFx) (kPointer receiver, kObject sender, GoUpgradeFxArgs* args);
72 
73 
74 /**
75  * @struct GoUser
76  * @extends kValue
77  * @ingroup GoSdk
78  * @brief Represents a user id.
79  *
80  * The following enumerators are defined:
81  * - #GO_USER_NONE
82  * - #GO_USER_ADMIN
83  * - #GO_USER_TECH
84  */
85 typedef k32s GoUser;
86 /** @name GoUser
87  *@{*/
88 #define GO_USER_NONE (0) ///< No user.
89 #define GO_USER_ADMIN (1) ///< Administrator user.
90 #define GO_USER_TECH (2) ///< Technician user.
91 /**@}*/
92 
93 /**
94  * @struct GoState
95  * @extends kValue
96  * @ingroup GoSdk
97  * @brief Represents the current state of a sensor object.
98  *
99  * The following enumerators are defined:
100  * - #GO_STATE_ONLINE
101  * - #GO_STATE_OFFLINE
102  * - #GO_STATE_RESETTING
103  * - #GO_STATE_INCOMPATIBLE
104  * - #GO_STATE_INCONSISTENT
105  * - #GO_STATE_UNRESPONSIVE
106  * - #GO_STATE_CANCELLED
107  * - #GO_STATE_INCOMPLETE
108  * - #GO_STATE_BUSY
109  * - #GO_STATE_READY
110  * - #GO_STATE_RUNNING
111  */
112 typedef k32s GoState;
113 /** @name GoState
114  *@{*/
115 #define GO_STATE_ONLINE (0) ///< Sensor disconnected, but detected via discovery.
116 #define GO_STATE_OFFLINE (1) ///< Sensor disconnected and no longer detected via discovery (refresh system to eliminate sensor).
117 #define GO_STATE_RESETTING (2) ///< Sensor disconnected and currently resetting (wait for completion).
118 #define GO_STATE_INCOMPATIBLE (4) ///< Sensor connected, but protocol incompatible with client (upgrade required).
119 #define GO_STATE_INCONSISTENT (5) ///< Sensor connected, but remote state was changed (refresh sensor).
120 #define GO_STATE_UNRESPONSIVE (6) ///< Sensor connected, but no longer detected via health or discovery (disconnect).
121 #define GO_STATE_CANCELLED (7) ///< Sensor connected, but communication aborted via GoSensor_Cancel function (disconnect or refresh sensor).
122 #define GO_STATE_INCOMPLETE (8) ///< Sensor connected, but a required buddy sensor is not present (wait or remove buddy association).
123 #define GO_STATE_BUSY (9) ///< Sensor connected, but currently controlled by another sensor (cannot be configured directly).
124 #define GO_STATE_READY (10) ///< Sensor connected and ready to accept configuration commands.
125 #define GO_STATE_RUNNING (11) ///< Sensor connected and currently running.
126 #define GO_STATE_UPGRADING (12) ///< Sensor is currently being upgraded.
127 /**@}*/
128 
129 /**
130  * @struct GoRole
131  * @extends kValue
132  * @ingroup GoSdk
133  * @brief Represents a user role.
134  *
135  * The following enumerators are defined:
136  * - #GO_ROLE_MAIN
137  * - #GO_ROLE_BUDDY
138  */
139 typedef k32s GoRole;
140 /** @name GoRole
141  *@{*/
142 #define GO_ROLE_MAIN (0) ///< Sensor is operating as a main sensor.
143 #define GO_ROLE_BUDDY (1) ///< Sensor is operating as a buddy sensor.
144 /**@}*/
145 
146 /**
147  * @struct GoAcceleratorConnectionStatus
148  * @extends kValue
149  * @ingroup GoSdk
150  * @brief Represents the status of the Accelerator connection.
151  *
152  * The following enumerators are defined:
153  * - #GO_ACCELERATOR_CONNECTION_STATUS_CONNECTED
154  * - #GO_ACCELERATOR_CONNECTION_STATUS_DISCONNECTED
155  * - #GO_ACCELERATOR_CONNECTION_STATUS_ERROR
156  */
158 /** @name GoAcceleratorConnectionStatus
159  *@{*/
160 #define GO_ACCELERATOR_CONNECTION_STATUS_CONNECTED (0) ///< Accelerated sensor has connected.
161 #define GO_ACCELERATOR_CONNECTION_STATUS_DISCONNECTED (1) ///< Accelerated sensor has disconnected.
162 #define GO_ACCELERATOR_CONNECTION_STATUS_ERROR (2) ///< An error occurred with the accelerated sensor connection.
163 /**@}*/
164 
165 /**
166  * @struct GoAlignmentState
167  * @extends kValue
168  * @ingroup GoSdk
169  * @brief Represents an alignment state.
170  *
171  * The following enumerators are defined:
172  * - #GO_ALIGNMENT_STATE_NOT_ALIGNED
173  * - #GO_ALIGNMENT_STATE_ALIGNED
174  */
175 typedef k32s GoAlignmentState;
176 /** @name GoAlignmentState
177  *@{*/
178 #define GO_ALIGNMENT_STATE_NOT_ALIGNED (0) ///< Sensor is not aligned.
179 #define GO_ALIGNMENT_STATE_ALIGNED (1) ///< Sensor is aligned.
180 /**@}*/
181 
182 /**
183  * @struct GoAlignmentRef
184  * @extends kValue
185  * @ingroup GoSdk
186  * @brief Represents an alignment reference.
187  *
188  * The following enumerators are defined:
189  * - #GO_ALIGNMENT_REF_FIXED
190  * - #GO_ALIGNMENT_REF_DYNAMIC
191  */
192 typedef k32s GoAlignmentRef;
193 /** @name GoAlignmentRef
194  *@{*/
195 #define GO_ALIGNMENT_REF_FIXED (0) ///< The alignment used will be specific to the sensor.
196 #define GO_ALIGNMENT_REF_DYNAMIC (1) ///< The alignment used will be specific to the current job if saved.
197 /**@}*/
198 
199 /**
200  * @struct GoMode
201  * @extends kValue
202  * @ingroup GoSdk
203  * @brief Represents a scan mode.
204  *
205  * The following enumerators are defined:
206  * - #GO_MODE_UNKNOWN
207  * - #GO_MODE_VIDEO
208  * - #GO_MODE_RANGE
209  * - #GO_MODE_PROFILE
210  * - #GO_MODE_SURFACE
211  */
212 typedef k32s GoMode;
213 /** @name GoMode
214  *@{*/
215 #define GO_MODE_UNKNOWN (-1) ///< Unknown scan mode.
216 #define GO_MODE_VIDEO (0) ///< Video scan mode.
217 #define GO_MODE_RANGE (1) ///< Range scan mode.
218 #define GO_MODE_PROFILE (2) ///< Profile scan mode.
219 #define GO_MODE_SURFACE (3) ///< Surface scan mode.
220 /**@}*/
221 
222 
223 /**
224  * @struct GoTrigger
225  * @extends kValue
226  * @ingroup GoSdk
227  * @brief Represents a trigger.
228  *
229  * The following enumerators are defined:
230  * - #GO_TRIGGER_TIME
231  * - #GO_TRIGGER_ENCODER
232  * - #GO_TRIGGER_INPUT
233  * - #GO_TRIGGER_SOFTWARE
234  */
235 typedef k32s GoTrigger;
236 /** @name GoTrigger
237  *@{*/
238 #define GO_TRIGGER_TIME (0) ///< The sensor will be time triggered.
239 #define GO_TRIGGER_ENCODER (1) ///< The sensor will be encoder triggered.
240 #define GO_TRIGGER_INPUT (2) ///< The sensor will be digital input triggered.
241 #define GO_TRIGGER_SOFTWARE (3) ///< The sensor will be software triggered.
242 /** @} */
243 
244 /**
245  * @struct GoEncoderTriggerMode
246  * @extends kValue
247  * @ingroup GoSdk
248  * @brief Represents an encoder's triggering behavior.
249  *
250  * The following enumerators are defined:
251  * - #GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE
252  * - #GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE
253  * - #GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL
254  */
255 typedef k32s GoEncoderTriggerMode;
256 /** @name GoEncoderTriggerMode
257  *@{*/
258 #define GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE (0) ///< Do not reverse trigger. Track reverse motion to prevent repeat forward triggers.
259 #define GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE (1) ///< Do not reverse trigger. Forward trigger unconditionally.
260 #define GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL (2) ///< Forward and reverse trigger.
261 /** @} */
262 
263 /**
264  * @struct GoFrameRateMaxSource
265  * @extends kValue
266  * @ingroup GoSdk
267  * @brief Represents the current maximum frame rate limiting source.
268  *
269  * The following enumerators are defined:
270  * - #GO_FRAME_RATE_MAX_SOURCE_CAMERA
271  * - #GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION
272  */
273 typedef k32s GoFrameRateMaxSource;
274 /** @name GoFrameRateMaxSource
275  *@{*/
276 #define GO_FRAME_RATE_MAX_SOURCE_CAMERA (0) ///< Limited by the sensor's camera configuration.
277 #define GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
278 /** @} */
279 
280 /**
281  * @struct GoEncoderSpacingMinSource
282  * @extends kValue
283  * @ingroup GoSdk
284  * @brief Represents the current encoder period limiting source.
285  *
286  * The following enumerators are defined:
287  * - #GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION
288  * - #GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION
289  */
291 /** @name GoEncoderSpacingMinSource
292  *@{*/
293 #define GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION (0) ///< Limited by encoder resolution.
294 #define GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
295 /**@}*/
296 
297 /**
298  * @struct GoTriggerUnits
299  * @extends kValue
300  * @ingroup GoSdk
301  * @brief Represents the system's primary synchronization domain
302  *
303  * The following enumerators are defined:
304  * - #GO_TRIGGER_UNIT_TIME
305  * - #GO_TRIGGER_UNIT_ENCODER
306  */
307 typedef k32s GoTriggerUnits;
308 /** @name GoTriggerUnits
309  *@{*/
310 #define GO_TRIGGER_UNIT_TIME (0) ///< Base the system on the internal clock.
311 #define GO_TRIGGER_UNIT_ENCODER (1) ///< Base the system on the encoder.
312 /**@}*/
313 
314 /**
315  * @struct GoExposureMode
316  * @extends kValue
317  * @ingroup GoSdk
318  * @brief Represents all possible exposure modes.
319  *
320  * The following enumerators are defined:
321  * - #GO_EXPOSURE_MODE_SINGLE
322  * - #GO_EXPOSURE_MODE_MULTIPLE
323  * - #GO_EXPOSURE_MODE_DYNAMIC
324  */
325 typedef k32s GoExposureMode;
326 /** @name GoExposureMode
327  *@{*/
328 #define GO_EXPOSURE_MODE_SINGLE (0) ///< Single exposure mode.
329 #define GO_EXPOSURE_MODE_MULTIPLE (1) ///< Multiple exposure mode.
330 #define GO_EXPOSURE_MODE_DYNAMIC (2) ///< Dynamic exposure mode.
331 /**@}*/
332 
333 /**
334  * @struct GoOrientation
335  * @extends kValue
336  * @ingroup GoSdk
337  * @brief Represents a sensor orientation type.
338  *
339  * The following enumerators are defined:
340  * - #GO_ORIENTATION_WIDE
341  * - #GO_ORIENTATION_OPPOSITE
342  * - #GO_ORIENTATION_REVERSE
343  */
344 typedef k32s GoOrientation;
345 /** @name GoOrientation
346  *@{*/
347 #define GO_ORIENTATION_WIDE (0) ///< Wide sensor orientation.
348 #define GO_ORIENTATION_OPPOSITE (1) ///< Opposite sensor orientation.
349 #define GO_ORIENTATION_REVERSE (2) ///< Reverse sensor orientation.
350 /**@}*/
351 
352 /**
353  * @struct GoInputSource
354  * @extends kValue
355  * @ingroup GoSdk
356  * @brief Represents a data input source.
357  *
358  * The following enumerators are defined:
359  * - #GO_INPUT_SOURCE_LIVE
360  * - #GO_INPUT_SOURCE_RECORDING
361  */
362 typedef k32s GoInputSource;
363 /** @name GoInputSource
364  *@{*/
365 #define GO_INPUT_SOURCE_LIVE (0) ///< The current data input source is from live sensor data.
366 #define GO_INPUT_SOURCE_RECORDING (1) ///< The current data source is from a replay.
367 /**@}*/
368 
369 /**
370  * @struct GoSeekDirection
371  * @extends kValue
372  * @ingroup GoSdk
373  * @brief Represents a playback seek direction.
374  *
375  * The following enumerators are defined:
376  * - #GO_SEEK_DIRECTION_FORWARD
377  * - #GO_SEEK_DIRECTION_BACKWARD
378  */
379 typedef k32s GoSeekDirection;
380 /** @name GoSeekDirection
381  *@{*/
382 #define GO_SEEK_DIRECTION_FORWARD (0) ///< Seek forward in the current replay.
383 #define GO_SEEK_DIRECTION_BACKWARD (1) ///< Seek backward in the current replay.
384 /**@}*/
385 
386 /**
387  * @struct GoDataSource
388  * @extends kValue
389  * @ingroup GoSdk
390  * @brief Represents a data source.
391  *
392  * The following enumerators are defined:
393  * #GO_DATA_SOURCE_NONE
394  * #GO_DATA_SOURCE_TOP
395  * #GO_DATA_SOURCE_BOTTOM
396  * #GO_DATA_SOURCE_TOP_LEFT
397  * #GO_DATA_SOURCE_TOP_RIGHT
398  * #GO_DATA_SOURCE_TOP_BOTTOM
399  * #GO_DATA_SOURCE_LEFT_RIGHT
400  */
401 typedef k32s GoDataSource;
402 /** @name GoDataSource
403  *@{*/
404 #define GO_DATA_SOURCE_NONE (-1) ///< Used to represent a buddy device when the buddy is not connected
405 #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
406 #define GO_DATA_SOURCE_BOTTOM (1) ///< Represents the buddy device in an opposite orientation buddy configuration
407 #define GO_DATA_SOURCE_TOP_LEFT (2) ///< Represents the main device in a wide or reverse orientation buddy configuration
408 #define GO_DATA_SOURCE_TOP_RIGHT (3) ///< Represents the buddy device in a wide or reverse orientation buddy configuration
409 #define GO_DATA_SOURCE_TOP_BOTTOM (4) ///< Represents both the main and buddy devices in a opposite orientation
410 #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)
411 /**@}*/
412 
413 /**
414  * @struct GoSpacingIntervalType
415  * @extends kValue
416  * @ingroup GoSdk
417  * @brief Represents spacing interval types.
418  *
419  * The following enumerators are defined:
420  * - #GO_SPACING_INTERVAL_TYPE_MAX_RES
421  * - #GO_SPACING_INTERVAL_TYPE_BALANCED
422  * - #GO_SPACING_INTERVAL_TYPE_MAX_SPEED
423  */
425 /** @name GoSpacingIntervalType
426  *@{*/
427 #define GO_SPACING_INTERVAL_TYPE_MAX_RES (0) ///< Maximum resolution spacing interval type.
428 #define GO_SPACING_INTERVAL_TYPE_BALANCED (1) ///< Balanced spacing interval type.
429 #define GO_SPACING_INTERVAL_TYPE_MAX_SPEED (2) ///< Maximum speed spacing interval type.
430 #define GO_SPACING_INTERVAL_TYPE_CUSTOM (3) ///< The user specified custom interval.
431 /**@}*/
432 
433 /**
434  * @struct GoTriggerSource
435  * @extends kValue
436  * @ingroup GoSdk
437  * @brief Represents a trigger source type.
438  *
439  * The following enumerators are defined:
440  * - #GO_TRIGGER_SOURCE_TIME
441  * - #GO_TRIGGER_SOURCE_ENCODER
442  * - #GO_TRIGGER_SOURCE_INPUT
443  * - #GO_TRIGGER_SOURCE_SOFTWARE
444  */
445 typedef k32s GoTriggerSource;
446 /** @name GoTriggerSource
447  *@{*/
448 #define GO_TRIGGER_SOURCE_TIME (0) ///< Trigger on internal clock.
449 #define GO_TRIGGER_SOURCE_ENCODER (1) ///< Trigger on encoder.
450 #define GO_TRIGGER_SOURCE_INPUT (2) ///< Trigger on digital input.
451 #define GO_TRIGGER_SOURCE_SOFTWARE (3) ///< Trigger on software messages.
452 /**@}*/
453 
454 /**
455  * @struct GoAlignmentType
456  * @extends kValue
457  * @ingroup GoSdk
458  * @brief Represents an alignment type.
459  *
460  * The following enumerators are defined:
461  * - #GO_ALIGNMENT_TYPE_STATIONARY
462  * - #GO_ALIGNMENT_TYPE_MOVING
463  */
464 typedef k32s GoAlignmentType;
465 /** @name GoAlignmentType
466  *@{*/
467 #define GO_ALIGNMENT_TYPE_STATIONARY (0) ///< Stationary target alignment type.
468 #define GO_ALIGNMENT_TYPE_MOVING (1) ///< Moving target alignment type.
469 /**@}*/
470 
471 /**
472  * @struct GoAlignmentTarget
473  * @extends kValue
474  * @ingroup GoSdk
475  * @brief Represents a alignment target type.
476  *
477  * The following enumerators are defined:
478  * - #GO_ALIGNMENT_TARGET_NONE
479  * - #GO_ALIGNMENT_TARGET_DISK
480  * - #GO_ALIGNMENT_TARGET_BAR
481  * - #GO_ALIGNMENT_TARGET_PLATE
482  */
483 typedef k32s GoAlignmentTarget;
484 /** @name GoAlignmentTarget
485  *@{*/
486 #define GO_ALIGNMENT_TARGET_NONE (0) ///< No calibration target.
487 #define GO_ALIGNMENT_TARGET_DISK (1) ///< Calibration disk.
488 #define GO_ALIGNMENT_TARGET_BAR (2) ///< Calibration bar.
489 #define GO_ALIGNMENT_TARGET_PLATE (3) ///< Calibration plate.
490 /**@}*/
491 
492 
493 /**
494  * @struct GoReplayExportSourceType
495  * @extends kValue
496  * @ingroup GoSdk
497  * @brief Represents the replay export source type.
498  *
499  * The following enumerators are defined:
500  * - #GO_REPLAY_EXPORT_SOURCE_PRIMARY
501  * - #GO_REPLAY_EXPORT_SOURCE_INTENSITY
502  */
504 /** @name GoReplayExportSourceType
505  *@{*/
506 #define GO_REPLAY_EXPORT_SOURCE_PRIMARY (0) ///< Primary data(relevant to the current scan mode) replay export.
507 #define GO_REPLAY_EXPORT_SOURCE_INTENSITY (1) ///< Intensity data replay export.
508 /**@}*/
509 
510 /**
511  * @struct GoFamily
512  * @extends kValue
513  * @ingroup GoSdk
514  * @brief Represents the supported Gocator hardware families.
515  *
516  * The following enumerators are defined:
517  * - #GO_FAMILY_1000
518  * - #GO_FAMILY_2000
519  * - #GO_FAMILY_3000
520  */
521 typedef k32s GoFamily;
522 /** @name GoFamily
523  *@{*/
524 #define GO_FAMILY_UNKNOWN (-1) ///< Unidentified sensor family.
525 #define GO_FAMILY_1000 (0) ///< 1x00 series sensors.
526 #define GO_FAMILY_2000 (1) ///< 2x00 series sensors.
527 #define GO_FAMILY_3000 (2) ///< 3x00 series sensors.
528 /**@}*/
529 
530 /**
531  * @struct GoDecision
532  * @extends kValue
533  * @ingroup GoSdk
534  * @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.
535  * @see GoDecisionCode
536  *
537  * The following enumerators are defined:
538  * - #GO_DECISION_FAIL
539  * - #GO_DECISION_PASS
540  */
541 typedef k8u GoDecision;
542 /** @name GoDecision
543  *@{*/
544 #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.
545 #define GO_DECISION_PASS (1) ///< The measurement value is valid and it falls within the defined passing decision range.
546 /**@}*/
547 
548 
549 /**
550  * @struct GoDecisionCode
551  * @extends kValue
552  * @ingroup GoSdk
553  * @brief Represents the possible measurement decision codes.
554  *
555  * The following enumerators are defined:
556  * - #GO_DECISION_CODE_OK
557  * - #GO_DECISION_CODE_INVALID_ANCHOR
558  * - #GO_DECISION_CODE_INVALID_VALUE
559  */
560 typedef k8u GoDecisionCode;
561 /** @name GoDecisionCode
562  *@{*/
563 #define GO_DECISION_CODE_OK (0) ///< The measurement value is valid and it falls outside the defined passing decision range.
564 #define GO_DECISION_CODE_INVALID_VALUE (1) ///< The measurement value is invalid.
565 #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).
566 /**@}*/
567 
568 /**
569  * @struct GoStates
570  * @extends kValue
571  * @ingroup GoSdk
572  * @brief Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
573  */
574 typedef struct GoStates
575 {
576  GoState sensorState; ///< The state of the sensor.
577  GoUser loginType; ///< The logged in user.
578  GoAlignmentRef alignmentReference; ///< The alignment reference of the sensor.
579  GoAlignmentState alignmentState; ///< The alignment state of the sensor.
580  kBool recordingEnabled; ///< The current state of recording on the sensor.
581  k32s playbackSource; ///< The current playback source of the sensor.
582  k32u uptimeSec; ///< Sensor uptime in seconds.
583  k32u uptimeMicrosec; ///< Sensor uptime in microseconds.
584  k32u playbackPos; ///< The playback position index.
585  k32u playbackCount; ///< The playback count.
586  kBool autoStartEnabled; ///< The auto-start enabled state.
587  kBool isAccelerator; ///< The accelerated state of the sensor.
588 } GoStates;
589 
590 /**
591  * @struct GoAddressInfo
592  * @extends kValue
593  * @ingroup GoSdk
594  * @brief Sensor network address settings.
595  */
596 typedef struct GoAddressInfo
597 {
598  kBool useDhcp; ///< Sensor uses DHCP?
599  kIpAddress address; ///< Sensor IP address.
600  kIpAddress mask; ///< Sensor subnet bit-mask.
601  kIpAddress gateway; ///< Sensor gateway address.
602 } GoAddressInfo;
603 
604 /**
605  * @struct GoPortInfo
606  * @extends kValue
607  * @ingroup GoSdk
608  * @brief Ports used from a source device.
609  */
610 typedef struct GoPortInfo
611 {
612  k16u controlPort; ///< Control channel port.
613  k16u upgradePort; ///< Upgrade channel port.
614  k16u webPort; ///< Web channel port.
615  k16u dataPort; ///< Data channel port.
616  k16u healthPort; ///< Health channel port.
617 } GoPortInfo;
618 
619 /**
620  * @struct GoElement64f
621  * @extends kValue
622  * @ingroup GoSdk
623  * @brief Represents a 64-bit floating point configuration element with a range and enabled state.
624  */
625 typedef struct GoElement64f
626 {
627  kBool enabled; ///< Represents whether the element value is currently used. (not always applicable)
628  k64f systemValue; ///< The system value. (not always applicable)
629  k64f value; ///< The element's double field value.
630  k64f max; ///< The maximum allowable value that can be set for this element.
631  k64f min; ///< The minimum allowable value that can be set for this element.
632 } GoElement64f;
633 
634 /**
635  * @struct GoElement32u
636  * @extends kValue
637  * @ingroup GoSdk
638  * @brief Represents a 32-bit unsigned integer configuration element with a range and enabled state.
639  */
640 typedef struct GoElement32u
641 {
642  kBool enabled; ///< Represents whether the element value is currently used.
643  k32u systemValue; ///< The system value. (not always applicable)
644  k32u value; ///< The element's 32-bit unsigned field value.
645  k32u max; ///< The maximum allowable value that can be set for this element.
646  k32u min; ///< The minimum allowable value that can be set for this element.
647 } GoElement32u;
648 
649 /**
650  * @struct GoElementBool
651  * @extends kValue
652  * @ingroup GoSdk
653  * @brief Represents a boolean configuration element with an enabled state.
654  */
655 typedef struct GoElementBool
656 {
657  kBool enabled; ///< Represents whether the element value is currently used.
658  kBool systemValue; ///< The system value. (not always applicable)
659  kBool value; ///< The element's boolean field value.
660 } GoElementBool;
661 
662 /**
663  * @struct GoFilter
664  * @extends kValue
665  * @ingroup GoSdk
666  * @brief Represents a filter configuration element.
667  */
668 typedef struct GoFilter
669 {
670  kBool used; ///< Represents whether the filter field is currently used.
671  GoElement64f value; ///< The filter's configuration properties
672 } GoFilter;
673 
674 /**
675  * @struct GoActiveAreaConfig
676  * @extends kValue
677  * @ingroup GoSdk
678  * @brief Represents an active area configuration element.
679  */
680 typedef struct GoActiveAreaConfig
681 {
682  GoElement64f x; ///< The X offset of the active area.
683  GoElement64f y; ///< The Y offset of the active area.
684  GoElement64f z; ///< The Z offset of the active area.
685  GoElement64f height; ///< The height of the active area.
686  GoElement64f length; ///< The length of the active area.
687  GoElement64f width; ///< The width of the active area.
689 
690 /**
691  * @struct GoTransformation
692  * @extends kValue
693  * @ingroup GoSdk
694  * @brief Represents an alignment element.
695  */
696 typedef struct GoTransformation
697 {
698  k64f x; ///< The X offset of the transformation.
699  k64f y; ///< The Y offset of the transformation.
700  k64f z; ///< The Z offset of the transformation.
701  k64f xAngle; ///< The X angle of the transformation.
702  k64f yAngle; ///< The Y angle of the transformation.
703  k64f zAngle; ///< The Z angle of the transformation.
705 
706 /**
707  * @struct GoTransformedDataRegion
708  * @extends kValue
709  * @ingroup GoSdk
710  * @brief Represents a transformed data region.
711  */
713 {
714  k64f x; ///< The X offset of the transformed data region.
715  k64f y; ///< The Y offset of the transformed data region.
716  k64f z; ///< The Z offset of the transformed data region.
717  k64f width; ///< The width of the transformed data region.
718  k64f length; ///< The length of the transformed data region.
719  k64f height; ///< The height of the transformed data region.
721 
722 /**
723  * @struct GoOutputCompositeSource
724  * @extends kValue
725  * @ingroup GoSdk
726  * @brief Represents a composite data source.
727  */
729 {
730  k32s id; ///< The ID of the underlying data source.
731  GoDataSource dataSource; ///< The data source of the composite data source.
733 
734 /**
735  * @struct GoAsciiOperation
736  * @extends kValue
737  * @ingroup GoSdk-Output
738  * @brief Represents an ASCII protocol operational type.
739  *
740  * The following enumerators are defined:
741  * - #GO_ASCII_OPERATION_ASYNCHRONOUS
742  * - #GO_ASCII_OPERATION_POLLING
743  */
744 typedef k32s GoAsciiOperation;
745 /** @name GoAsciiOperation
746  *@{*/
747 #define GO_ASCII_OPERATION_ASYNCHRONOUS (0) ///< Selected measurement output will be sent upon sensor start.
748 #define GO_ASCII_OPERATION_POLLING (1) ///< Measurement output will only be sent as requested.
749 /**@}*/
750 
751 /**
752  * @struct GoAsciiStandardFormatMode
753  * @extends kValue
754  * @ingroup GoSdk-Output
755  * @brief Represents an ASCII standard format type.
756  *
757  * The following enumerators are defined:
758  * - #GS_ASCII_FORMAT_MODE_MEAS
759  * - #GS_ASCII_FORMAT_MODE_ENCODER_AND_FRAME
760  */
762 /** @name GoAsciiStandardFormatMode
763  *@{*/
764 #define GS_ASCII_FORMAT_MODE_MEAS (0) ///< Standard format will output with measurement values and decisions.
765 #define GS_ASCII_FORMAT_MODE_ENCODER_AND_FRAME (1) ///< Standard format will output with Encoder and Frame, then measurement values and decisions.
766 /**@}*/
767 
768 /**
769  * @struct GoSelcomFormat
770  * @extends kValue
771  * @ingroup GoSdk-Serial
772  * @brief Represents the selcom format followed on the serial output.
773  *
774  * The following enumerators are defined:
775  * - #GO_SELCOM_FORMAT_SLS
776  * - #GO_SELCOM_FORMAT_12BIT_ST
777  * - #GO_SELCOM_FORMAT_14BIT
778  * - #GO_SELCOM_FORMAT_14BIT_ST
779  */
780 typedef k32s GoSelcomFormat;
781 /** @name GoSelcomFormat
782  *@{*/
783 #define GO_SELCOM_FORMAT_SLS (0) ///< Selcom uses the SLS format
784 #define GO_SELCOM_FORMAT_12BIT_ST (1) ///< Selcom uses the 12-Bit Search/Track format
785 #define GO_SELCOM_FORMAT_14BIT (2) ///< Selcom uses the 14-Bit format
786 #define GO_SELCOM_FORMAT_14BIT_ST (3) ///< Selcom uses the 14-Bit Search/Track format
787 /**@}*/
788 
789 /**
790  * @struct GoSerialProtocol
791  * @extends kValue
792  * @ingroup GoSdk-Serial
793  * @brief Represents all serial output protocols.
794  *
795  * The following enumerators are defined:
796  * - #GO_SERIAL_PROTOCOL_GOCATOR
797  * - #GO_SERIAL_PROTOCOL_SELCOM
798  */
799 typedef k32s GoSerialProtocol;
800 /** @name GoSerialProtocol
801  *@{*/
802 #define GO_SERIAL_PROTOCOL_GOCATOR (0) ///< Gocator serial protocol.
803 #define GO_SERIAL_PROTOCOL_SELCOM (1) ///< Selcom serial protocol.
804 /**@}*/
805 
806 
807 /**
808  * @struct GoAnalogTrigger
809  * @extends kValue
810  * @ingroup GoSdk-Analog
811  * @brief Represents an analog output trigger.
812  *
813  * The following enumerators are defined:
814  * - #GO_ANALOG_TRIGGER_MEASUREMENT
815  * - #GO_ANALOG_TRIGGER_SOFTWARE
816  */
817 typedef k32s GoAnalogTrigger;
818 /** @name GoAnalogTrigger
819  *@{*/
820 #define GO_ANALOG_TRIGGER_MEASUREMENT (0) ///< Analog output triggered by measurement data.
821 #define GO_ANALOG_TRIGGER_SOFTWARE (1) ///< Analog output triggered by software.
822 /**@}*/
823 
824 /**
825  * @struct GoDigitalPass
826  * @extends kValue
827  * @ingroup GoSdk-Digital
828  * @brief Represents a digital output condition.
829  *
830  * The following enumerators are defined:
831  * - #GO_DIGITAL_PASS_TRUE
832  * - #GO_DIGITAL_PASS_FALSE
833  * - #GO_DIGITAL_PASS_ALWAYS
834  */
835 typedef k32s GoDigitalPass;
836 /** @name GoDigitalPass
837  *@{*/
838 #define GO_DIGITAL_PASS_TRUE (0) ///< Digital output triggers when all selected measurements pass.
839 #define GO_DIGITAL_PASS_FALSE (1) ///< Digital output triggers when all selected measurements fail.
840 #define GO_DIGITAL_PASS_ALWAYS (2) ///< Digital output triggers on every scan.
841 /**@}*/
842 
843 /**
844  * @struct GoDigitalSignal
845  * @extends kValue
846  * @ingroup GoSdk-Digital
847  * @brief Represents a digital output signal type.
848  *
849  * The following enumerators are defined:
850  * - #GO_DIGITAL_SIGNAL_PULSED
851  * - #GO_DIGITAL_SIGNAL_CONTINUOUS
852  */
853 typedef k32s GoDigitalSignal;
854 /** @name GoDigitalSignal
855  *@{*/
856 #define GO_DIGITAL_SIGNAL_PULSED (0) ///< Digital output is pulsed when triggered.
857 #define GO_DIGITAL_SIGNAL_CONTINUOUS (1) ///< Digital output is continuous when triggered.
858 /**@}*/
859 
860 /**
861  * @struct GoDigitalEvent
862  * @extends kValue
863  * @ingroup GoSdk-Digital
864  * @brief Represents a digital output event.
865  *
866  * The following enumerators are defined:
867  * - #GO_DIGITAL_EVENT_MEASUREMENT
868  * - #GO_DIGITAL_EVENT_SOFTWARE
869  * - #GO_DIGITAL_EVENT_ALIGNMENT
870  * - #GO_DIGITAL_EVENT_EXPOSURE_BEGIN
871  * - #GO_DIGITAL_EVENT_EXPOSURE_END
872  */
873 typedef k32s GoDigitalEvent;
874 /** @name GoDigitalEvent
875  *@{*/
876 #define GO_DIGITAL_EVENT_MEASUREMENT (1) ///< Digital output is triggered by measurement data.
877 #define GO_DIGITAL_EVENT_SOFTWARE (2) ///< Digital output is triggered by software.
878 #define GO_DIGITAL_EVENT_ALIGNMENT (3) ///< Digital output represents the alignment status.
879 #define GO_DIGITAL_EVENT_EXPOSURE_BEGIN (4) ///< Digital output is triggered at the start of exposure.
880 #define GO_DIGITAL_EVENT_EXPOSURE_END (5) ///< Digital output is triggered at the end of exposure, prior to processing.
881 /**@}*/
882 
883 /**
884  * @struct GoAnalogEvent
885  * @extends kValue
886  * @ingroup GoSdk-Analog
887  * @brief Represents a analog output event.
888  *
889  * The following enumerators are defined:
890  * - #GO_ANALOG_EVENT_MEASURMENT
891  * - #GO_ANALOG_EVENT_SOFTWARE
892  */
893 typedef k32s GoAnalogEvent;
894 /** @name GoAnalogEvent
895  *@{*/
896 #define GO_ANALOG_EVENT_MEASURMENT (1) ///< Analog output is triggered by measurement data.
897 #define GO_ANALOG_EVENT_SOFTWARE (2) ///< Analog output is triggered by software.
898 /**@}*/
899 
900 /**
901  * @struct GoEthernetProtocol
902  * @extends kValue
903  * @ingroup GoSdk-Ethernet
904  * @brief Represents a ethernet output protocol.
905  *
906  * The following enumerators are defined:
907  * - #GO_ETHERNET_PROTOCOL_GOCATOR
908  * - #GO_ETHERNET_PROTOCOL_MODBUS
909  * - #GO_ETHERNET_PROTOCOL_ETHERNET_IP
910  * - #GO_ETHERNET_PROTOCOL_ASCII
911  */
912 typedef k32s GoEthernetProtocol;
913 /** @name GoEthernetProtocol
914  *@{*/
915 #define GO_ETHERNET_PROTOCOL_GOCATOR (0) ///< Gocator ethernet protocol.
916 #define GO_ETHERNET_PROTOCOL_MODBUS (1) ///< Modbus ethernet protocol.
917 #define GO_ETHERNET_PROTOCOL_ETHERNET_IP (2) ///< EthernetIP ethernet protocol.
918 #define GO_ETHERNET_PROTOCOL_ASCII (3) ///< ASCII ethernet protocol.
919 /**@}*/
920 
921 
922 /**
923  * @struct GoEndianType
924  * @extends kValue
925  * @ingroup GoSdk-Ethernet
926  * @brief Represents an endian output type.
927  *
928  * The following enumerators are defined:
929  * - #GO_ENDIAN_TYPE_BIG
930  * - #GO_ENDIAN_TYPE_LITTLE
931  */
932 typedef k32s GoEndianType;
933 /** @name GoEndianType
934  *@{*/
935 #define GO_ENDIAN_TYPE_BIG (0) ///< Big Endian output.
936 #define GO_ENDIAN_TYPE_LITTLE (1) ///< Little Endian output.
937 /**@}*/
938 
939 
940 /**
941  * @struct GoOutputSource
942  * @extends kValue
943  * @ingroup GoSdk-Output
944  * @brief Represents output sources.
945  *
946  * The following enumerators are defined:
947  * - #GO_OUTPUT_SOURCE_NONE
948  * - #GO_OUTPUT_SOURCE_VIDEO
949  * - #GO_OUTPUT_SOURCE_RANGE
950  * - #GO_OUTPUT_SOURCE_PROFILE
951  * - #GO_OUTPUT_SOURCE_SURFACE
952  * - #GO_OUTPUT_SOURCE_SECTION
953  * - #GO_OUTPUT_SOURCE_RANGE_INTENSITY
954  * - #GO_OUTPUT_SOURCE_PROFILE_INTENSITY
955  * - #GO_OUTPUT_SOURCE_SURFACE_INTENSITY
956  * - #GO_OUTPUT_SOURCE_SECTION_INTENSITY
957  * - #GO_OUTPUT_SOURCE_MEASUREMENT
958  * - #GO_OUTPUT_SOURCE_TRACHEID
959  */
960 typedef k32s GoOutputSource;
961 /** @name GoOutputSource
962  *@{*/
963 #define GO_OUTPUT_SOURCE_NONE (0) ///< Unknown output source.
964 #define GO_OUTPUT_SOURCE_VIDEO (1) ///< Output video data.
965 #define GO_OUTPUT_SOURCE_RANGE (2) ///< Output range data.
966 #define GO_OUTPUT_SOURCE_PROFILE (3) ///< Output profile data.
967 #define GO_OUTPUT_SOURCE_SURFACE (4) ///< Output surface data.
968 #define GO_OUTPUT_SOURCE_SECTION (9) ///< Output section data.
969 #define GO_OUTPUT_SOURCE_RANGE_INTENSITY (5) ///< Output range intensity data.
970 #define GO_OUTPUT_SOURCE_PROFILE_INTENSITY (6) ///< Output profile intensity data.
971 #define GO_OUTPUT_SOURCE_SURFACE_INTENSITY (7) ///< Output surface intensity data.
972 #define GO_OUTPUT_SOURCE_SECTION_INTENSITY (10) ///< Output section intensity data.
973 #define GO_OUTPUT_SOURCE_MEASUREMENT (8) ///< Output measurement data.
974 #define GO_OUTPUT_SOURCE_TRACHEID (11) ///< Output tracheid data.
975 /**@}*/
976 
977 /**
978  * @struct GoDataStep
979  * @extends kValue
980  * @ingroup GoSdk-Tools
981  * @brief Represents possible data streams.
982  *
983  * The following enumerators are defined:
984  * - #GO_DATA_STEP_NONE
985  * - #GO_DATA_STEP_VIDEO
986  * - #GO_DATA_STEP_RANGE
987  * - #GO_DATA_STEP_PROFILE
988  * - #GO_DATA_STEP_SURFACE
989  * - #GO_DATA_STEP_SECTION
990  */
991 typedef k32s GoDataStep;
992 /** @name GoDataStep
993  *@{*/
994 #define GO_DATA_STEP_NONE (-1) ///< Indicates that no specific stream has been specified.
995 #define GO_DATA_STEP_VIDEO (0) ///< Video data stream.
996 #define GO_DATA_STEP_RANGE (1) ///< Range data stream.
997 #define GO_DATA_STEP_PROFILE (2) ///< Profile data stream.
998 #define GO_DATA_STEP_SURFACE (3) ///< Surface data stream.
999 #define GO_DATA_STEP_SECTION (4) ///< Section data stream.
1000 /**@}*/
1001 
1002 
1003 /**
1004  * @struct GoDataStream
1005  * @extends kValue
1006  * @ingroup GoSdk-Output
1007  * @brief Represents a data stream which consists of a data step and ID.
1008  */
1009 typedef struct GoDataStream
1010 {
1011  GoDataStep step;
1012  k32s id;
1013 } GoDataStream;
1014 
1015 /**
1016  * @struct GoOutputDelayDomain
1017  * @extends kValue
1018  * @ingroup GoSdk-Output
1019  * @brief Represents an output delay domain.
1020  *
1021  * The following enumerators are defined:
1022  * - #GO_OUTPUT_DELAY_DOMAIN_TIME
1023  * - #GO_OUTPUT_DELAY_DOMAIN_ENCODER
1024  */
1025 typedef k32s GoOutputDelayDomain;
1026 /** @name GoOutputDelayDomain
1027  *@{*/
1028 #define GO_OUTPUT_DELAY_DOMAIN_TIME (0) ///< Time(uS) based delay domain.
1029 #define GO_OUTPUT_DELAY_DOMAIN_ENCODER (1) ///< Encoder tick delay domain.
1030 /**@}*/
1031 
1032 /**
1033  * @struct GoPixelType
1034  * @ingroup GoSdk
1035  * @brief Represents a video message pixel type.
1036  *
1037  * The following enumerators are defined:
1038  * - #GO_PIXEL_TYPE_8U
1039  * - #GO_PIXEL_TYPE_RGB
1040  */
1041 typedef k32s GoPixelType;
1042 /** @name GoPixelType
1043  *@{*/
1044 #define GO_PIXEL_TYPE_UNKNOWN (-1)
1045 #define GO_PIXEL_TYPE_8U (0) ///< Each pixel is represented as unsigned 8-bit values.
1046 #define GO_PIXEL_TYPE_RGB (1) ///< Each pixel is represented as three unsigned 8-bit values.
1047 /**@}*/
1048 
1049 /**
1050  * @struct GoToolType
1051  * @extends kValue
1052  * @ingroup GoSdk-Tools
1053  * @brief Lists all tool types.
1054  *
1055  * The following enumerators are defined:
1056  * - #GO_TOOL_UNKNOWN
1057  * - #GO_TOOL_RANGE_POSITION
1058  * - #GO_TOOL_RANGE_THICKNESS
1059  * - #GO_TOOL_PROFILE_AREA
1060  * - #GO_TOOL_PROFILE_BOUNDING_BOX
1061  * - #GO_TOOL_PROFILE_BRIDGE_VALUE
1062  * - #GO_TOOL_PROFILE_CIRCLE
1063  * - #GO_TOOL_PROFILE_DIMENSION
1064  * - #GO_TOOL_PROFILE_GROOVE
1065  * - #GO_TOOL_PROFILE_INTERSECT
1066  * - #GO_TOOL_PROFILE_LINE
1067  * - #GO_TOOL_PROFILE_PANEL
1068  * - #GO_TOOL_PROFILE_POSITION
1069  * - #GO_TOOL_PROFILE_STRIP
1070  * - #GO_TOOL_PROFILE_X_LINE
1071  * - #GO_TOOL_SURFACE_BOUNDING_BOX
1072  * - #GO_TOOL_SURFACE_COUNTERSUNK_HOLE
1073  * - #GO_TOOL_SURFACE_ELLIPSE
1074  * - #GO_TOOL_SURFACE_HOLE
1075  * - #GO_TOOL_SURFACE_OPENING
1076  * - #GO_TOOL_SURFACE_PLANE
1077  * - #GO_TOOL_SURFACE_POSITION
1078  * - #GO_TOOL_SURFACE_STUD
1079  * - #GO_TOOL_SURFACE_VOLUME
1080  * - #GO_TOOL_SCRIPT
1081  */
1082 typedef k32s GoToolType;
1083 /** @name GoToolType
1084  *@{*/
1085 #define GO_TOOL_UNKNOWN (-1) ///< Unknown tool.
1086 #define GO_TOOL_RANGE_POSITION (0) ///< Range Position tool.
1087 #define GO_TOOL_RANGE_THICKNESS (1) ///< Range Thickness tool.
1088 #define GO_TOOL_PROFILE_AREA (2) ///< Profile Area tool.
1089 #define GO_TOOL_PROFILE_BOUNDING_BOX (21) ///< Profile Bounding Box tool.
1090 #define GO_TOOL_PROFILE_BRIDGE_VALUE (24) ///< Profile Bridge Value tool.
1091 #define GO_TOOL_PROFILE_CIRCLE (3) ///< Profile Circle tool.
1092 #define GO_TOOL_PROFILE_DIMENSION (4) ///< Profile Dimension tool.
1093 #define GO_TOOL_PROFILE_GROOVE (5) ///< Profile Groove tool.
1094 #define GO_TOOL_PROFILE_INTERSECT (6) ///< Profile Intersect tool.
1095 #define GO_TOOL_PROFILE_LINE (7) ///< Profile Line tool.
1096 #define GO_TOOL_PROFILE_PANEL (8) ///< Profile Panel tool.
1097 #define GO_TOOL_PROFILE_POSITION (9) ///< Profile Position tool.
1098 #define GO_TOOL_PROFILE_STRIP (10) ///< Profile Strip tool.
1099 #define GO_TOOL_PROFILE_X_LINE (23) ///< Profile X-Line tool.
1100 #define GO_TOOL_SURFACE_BOUNDING_BOX (11) ///< Surface Bounding Box tool.
1101 #define GO_TOOL_SURFACE_COUNTERSUNK_HOLE (20) ///< Surface Countersunk Hole tool.
1102 #define GO_TOOL_SURFACE_DIMENSION (25) ///< Surface Dimension tool.
1103 #define GO_TOOL_SURFACE_ELLIPSE (12) ///< Surface Ellipse tool.
1104 #define GO_TOOL_SURFACE_HOLE (13) ///< Surface Hole tool.
1105 #define GO_TOOL_SURFACE_OPENING (14) ///< Surface Opening tool.
1106 #define GO_TOOL_SURFACE_PLANE (15) ///< Surface Plane tool.
1107 #define GO_TOOL_SURFACE_POSITION (16) ///< Surface Position tool.
1108 #define GO_TOOL_SURFACE_STUD (17) ///< Surface Stud tool.
1109 #define GO_TOOL_SURFACE_VOLUME (18) ///< Surface Volume tool.
1110 #define GO_TOOL_SCRIPT (19) ///< Script tool.
1111 #define GO_TOOL_PROFILE_ROUND_CORNER (26) ///< Profile Round Corner tool.
1112 #define GO_TOOL_EXTENSIBLE (1000)
1113 /**@}*/
1114 
1115 
1116 /**
1117  * @struct GoMeasurementType
1118  * @extends kValue
1119  * @ingroup GoSdk-Tools
1120  * @brief Lists all measurement types.
1121  *
1122  * The following enumerators are defined:
1123  * - #GO_MEASUREMENT_UNKNOWN
1124  * - #GO_MEASUREMENT_RANGE_POSITION_Z
1125  * - #GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS
1126  * - #GO_MEASUREMENT_PROFILE_AREA_AREA
1127  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_X
1128  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z
1129  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_X
1130  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_Z
1131  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_HEIGHT
1132  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_WIDTH
1133  * - #GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_X
1134  * - #GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_ANGLE
1135  * - #GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_BRIDGE_VALUE
1136  * - #GO_MEASUREMENT_PROFILE_CIRCLE_X
1137  * - #GO_MEASUREMENT_PROFILE_CIRCLE_Z
1138  * - #GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS
1139  * - #GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH
1140  * - #GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT
1141  * - #GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE
1142  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X
1143  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z
1144  * - #GO_MEASUREMENT_PROFILE_GROOVE_X
1145  * - #GO_MEASUREMENT_PROFILE_GROOVE_Z
1146  * - #GO_MEASUREMENT_PROFILE_GROOVE_WIDTH
1147  * - #GO_MEASUREMENT_PROFILE_GROOVE_DEPTH
1148  * - #GO_MEASUREMENT_PROFILE_INTERSECT_X
1149  * - #GO_MEASUREMENT_PROFILE_INTERSECT_Z
1150  * - #GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE
1151  * - #GO_MEASUREMENT_PROFILE_LINE_STDDEV
1152  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN
1153  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX
1154  * - #GO_MEASUREMENT_PROFILE_LINE_PERCENTILE
1155  * - #GO_MEASUREMENT_PROFILE_PANEL_GAP
1156  * - #GO_MEASUREMENT_PROFILE_PANEL_FLUSH
1157  * - #GO_MEASUREMENT_PROFILE_POSITION_X
1158  * - #GO_MEASUREMENT_PROFILE_POSITION_Z
1159  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_X
1160  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z
1161  * - #GO_MEASUREMENT_PROFILE_STRIP_WIDTH
1162  * - #GO_MEASUREMENT_PROFILE_STRIP_HEIGHT
1163  * - #GO_MEASUREMENT_PROFILE_X_LINE_Z
1164  * - #GO_MEASUREMENT_PROFILE_X_LINE_VALIDITY
1165  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X
1166  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y
1167  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z
1168  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE
1169  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT
1170  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH
1171  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH
1172  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X
1173  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y
1174  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Z_ANGLE
1175  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X
1176  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y
1177  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Z
1178  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_OUTER_RADIUS
1179  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_DEPTH
1180  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_RADIUS
1181  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_ANGLE
1182  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X_ANGLE
1183  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y_ANGLE
1184  * - #GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_COUNTERBORE_DEPTH
1185  * - #GO_MEASUREMENT_SURFACE_DIMENSION_WIDTH
1186  * - #GO_MEASUREMENT_SURFACE_DIMENSION_HEIGHT
1187  * - #GO_MEASUREMENT_SURFACE_DIMENSION_LENGTH
1188  * - #GO_MEASUREMENT_SURFACE_DIMENSION_DISTANCE
1189  * - #GO_MEASUREMENT_SURFACE_DIMENSION_PLANE_DISTANCE
1190  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_X
1191  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Y
1192  * - #GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Z
1193  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR
1194  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR
1195  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO
1196  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE
1197  * - #GO_MEASUREMENT_SURFACE_HOLE_X
1198  * - #GO_MEASUREMENT_SURFACE_HOLE_Y
1199  * - #GO_MEASUREMENT_SURFACE_HOLE_Z
1200  * - #GO_MEASUREMENT_SURFACE_HOLE_RADIUS
1201  * - #GO_MEASUREMENT_SURFACE_OPENING_X
1202  * - #GO_MEASUREMENT_SURFACE_OPENING_Y
1203  * - #GO_MEASUREMENT_SURFACE_OPENING_Z
1204  * - #GO_MEASUREMENT_SURFACE_OPENING_WIDTH
1205  * - #GO_MEASUREMENT_SURFACE_OPENING_LENGTH
1206  * - #GO_MEASUREMENT_SURFACE_OPENING_ANGLE
1207  * - #GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE
1208  * - #GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE
1209  * - #GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET
1210  * - #GO_MEASUREMENT_SURFACE_PLANE_STD_DEV
1211  * - #GO_MEASUREMENT_SURFACE_PLANE_ERROR_MIN
1212  * - #GO_MEASUREMENT_SURFACE_PLANE_ERROR_MAX
1213  * - #GO_MEASUREMENT_SURFACE_POSITION_X
1214  * - #GO_MEASUREMENT_SURFACE_POSITION_Y
1215  * - #GO_MEASUREMENT_SURFACE_POSITION_Z
1216  * - #GO_MEASUREMENT_SURFACE_RIVET_X
1217  * - #GO_MEASUREMENT_SURFACE_RIVET_Y
1218  * - #GO_MEASUREMENT_SURFACE_RIVET_Z
1219  * - #GO_MEASUREMENT_SURFACE_RIVET_TILT_ANGLE
1220  * - #GO_MEASUREMENT_SURFACE_RIVET_TILT_DIRECTION
1221  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIUS
1222  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MIN
1223  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MAX
1224  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MEAN
1225  * - #GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_STD_DEV
1226  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MIN
1227  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MAX
1228  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MEAN
1229  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_STD_DEV
1230  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MIN
1231  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MAX
1232  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MEAN
1233  * - #GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_STD_DEV
1234  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_X
1235  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Y
1236  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Z
1237  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_X
1238  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Y
1239  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Z
1240  * - #GO_MEASUREMENT_SURFACE_STUD_RADIUS
1241  * - #GO_MEASUREMENT_SURFACE_VOLUME_AREA
1242  * - #GO_MEASUREMENT_SURFACE_VOLUME_VOLUME
1243  * - #GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS
1244  * - #GO_MEASUREMENT_SCRIPT_OUTPUT
1245  */
1246 typedef k32s GoMeasurementType;
1247 /** @name GoMeasurementType
1248  *@{*/
1249 #define GO_MEASUREMENT_UNKNOWN (-1) ///< Unknown measurement.
1250 #define GO_MEASUREMENT_RANGE_POSITION_Z (0) ///< Range Position tool Z measurement.
1251 #define GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS (1) ///< Range Thickness tool Thickness measurement.
1252 #define GO_MEASUREMENT_PROFILE_AREA_AREA (2) ///< Profile Area tool Area measurement.
1253 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_X (3) ///< Profile Area tool Centroid X measurement.
1254 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z (4) ///< Profile Area tool Centroid Z measurement.
1255 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_X (82) ///< Profile Bounding Box X measurement.
1256 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_Z (83) ///< Profile Bounding Box Z measurement.
1257 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_HEIGHT (84) ///< Profile Bounding Box Height measurement.
1258 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_WIDTH (85) ///< Profile Bounding Box Width measurement.
1259 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_X (86) ///< Profile Bounding Box Global X measurement.
1260 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_Y (112) ///< Profile Bounding Box Global Y measurement.
1261 #define GO_MEASUREMENT_PROFILE_BOUNDING_BOX_GLOBAL_ANGLE (113) ///< Profile Bounding Box Global Angle measurement.
1262 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_BRIDGE_VALUE (106) ///< Profile Bridge Value measurement.
1263 #define GO_MEASUREMENT_PROFILE_BRIDGE_VALUE_ANGLE (107) ///< Profile Bridge Value measurement.
1264 #define GO_MEASUREMENT_PROFILE_CIRCLE_X (5) ///< Profile Circle tool X measurement.
1265 #define GO_MEASUREMENT_PROFILE_CIRCLE_Z (6) ///< Profile Circle tool Z measurement.
1266 #define GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS (7) ///< Profile Circle tool Radius measurement.
1267 #define GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH (8) ///< Profile Dimension tool Width measurement.
1268 #define GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT (9) ///< Profile Dimension tool Height measurement.
1269 #define GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE (10) ///< Profile Dimension tool Distance measurement.
1270 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X (11) ///< Profile Dimension tool Center X measurement.
1271 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z (12) ///< Profile Dimension tool Center Z measurement.
1272 #define GO_MEASUREMENT_PROFILE_GROOVE_X (13) ///< Profile Groove tool X measurement.
1273 #define GO_MEASUREMENT_PROFILE_GROOVE_Z (14) ///< Profile Groove tool Z measurement.
1274 #define GO_MEASUREMENT_PROFILE_GROOVE_WIDTH (15) ///< Profile Groove tool Width measurement.
1275 #define GO_MEASUREMENT_PROFILE_GROOVE_DEPTH (16) ///< Profile Groove tool Depth measurement.
1276 #define GO_MEASUREMENT_PROFILE_INTERSECT_X (17) ///< Profile Intersect tool X measurement.
1277 #define GO_MEASUREMENT_PROFILE_INTERSECT_Z (18) ///< Profile Intersect tool Z measurement.
1278 #define GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE (19) ///< Profile Intersect tool Angle measurement.
1279 #define GO_MEASUREMENT_PROFILE_LINE_STDDEV (20) ///< Profile Line tool Standard Deviation measurement.
1280 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN (21) ///< Profile Line tool Minimum Error measurement.
1281 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX (22) ///< Profile Line tool Maximum Error measurement.
1282 #define GO_MEASUREMENT_PROFILE_LINE_PERCENTILE (23) ///< Profile Line tool Percentile measurement.
1283 #define GO_MEASUREMENT_PROFILE_PANEL_GAP (24) ///< Profile Panel tool Gap measurement.
1284 #define GO_MEASUREMENT_PROFILE_PANEL_FLUSH (25) ///< Profile Panel tool Flush measurement.
1285 #define GO_MEASUREMENT_PROFILE_POSITION_X (26) ///< Profile Position tool X measurement.
1286 #define GO_MEASUREMENT_PROFILE_POSITION_Z (27) ///< Profile Position tool Z measurement.
1287 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_X (28) ///< Profile Strip tool X Position measurement.
1288 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z (29) ///< Profile Strip tool Z Position measurement.
1289 #define GO_MEASUREMENT_PROFILE_STRIP_WIDTH (30) ///< Profile Strip tool Width measurement.
1290 #define GO_MEASUREMENT_PROFILE_STRIP_HEIGHT (31) ///< Profile Strip tool Height measurement.
1291 #define GO_MEASUREMENT_PROFILE_X_LINE_Z (87) ///< Profile X-Line tool Z measurement.
1292 #define GO_MEASUREMENT_PROFILE_X_LINE_VALIDITY (88) ///< Profile X-Line tool Validity measurement.
1293 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X (32) ///< Surface Bounding Box X measurement.
1294 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y (33) ///< Surface Bounding Box Y measurement.
1295 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z (34) ///< Surface Bounding Box Z measurement.
1296 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE (35) ///< Surface Bounding Box Z Angle measurement.
1297 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT (36) ///< Surface Bounding Box Height measurement.
1298 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH (37) ///< Surface Bounding Box Width measurement.
1299 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH (38) ///< Surface Bounding Box Length measurement.
1300 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X (39) ///< Surface Bounding Box Global X measurement.
1301 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y (40) ///< Surface Bounding Box Global Y measurement.
1302 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Z_ANGLE (41) ///< Surface Bounding Box Global Z Angle measurement.
1303 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X (42) ///< Surface Countersunk Hole tool X position measurement.
1304 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y (43) ///< Surface Countersunk Hole tool Y position measurement.
1305 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Z (44) ///< Surface Countersunk Hole tool Z position measurement.
1306 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_OUTER_RADIUS (45) ///< Surface Countersunk Hole tool Outer Radius measurement.
1307 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_DEPTH (46) ///< Surface Countersunk Hole tool Depth measurement.
1308 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_COUNTERBORE_DEPTH (108) ///< Surface Countersunk Hole tool Counterbore Depth measurement.
1309 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_RADIUS (47) ///< Surface Countersunk Hole tool Bevel Radius measurement.
1310 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_BEVEL_ANGLE (48) ///< Surface Countersunk Hole tool Bevel Angle measurement.
1311 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_X_ANGLE (49) ///< Surface Countersunk Hole tool X Angle measurement.
1312 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_Y_ANGLE (50) ///< Surface Countersunk Hole tool Y Angle measurement.
1313 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_AXIS_TILT (122) ///< Surface Countersunk Hole tool axis tilt measurement.
1314 #define GO_MEASUREMENT_SURFACE_COUNTERSUNK_HOLE_AXIS_ORIENTATION (123) ///< Surface Countersunk Hole tool axis orientation measurement.
1315 #define GO_MEASUREMENT_SURFACE_DIMENSION_WIDTH (114) ///< Surface Dimension tool Width measurement.
1316 #define GO_MEASUREMENT_SURFACE_DIMENSION_HEIGHT (115) ///< Surface Dimension tool Height measurement.
1317 #define GO_MEASUREMENT_SURFACE_DIMENSION_LENGTH (116) ///< Surface Dimension tool Length measurement.
1318 #define GO_MEASUREMENT_SURFACE_DIMENSION_DISTANCE (117) ///< Surface Dimension tool Distance measurement.
1319 #define GO_MEASUREMENT_SURFACE_DIMENSION_PLANE_DISTANCE (118) ///< Surface Dimension tool Plane Distance measurement.
1320 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_X (119) ///< Surface Dimension tool Center X measurement.
1321 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Y (120) ///< Surface Dimension tool Center Y measurement.
1322 #define GO_MEASUREMENT_SURFACE_DIMENSION_CENTER_Z (121) ///< Surface Dimension tool Center Z measurement.
1323 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR (51) ///< Surface Ellipse tool Major measurement.
1324 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR (52) ///< Surface Ellipse tool Minor measurement.
1325 #define GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO (53) ///< Surface Ellipse tool Ratio measurement.
1326 #define GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE (54) ///< Surface Ellipse tool Z Angle measurement.
1327 #define GO_MEASUREMENT_SURFACE_HOLE_X (55) ///< Surface Hole tool X measurement.
1328 #define GO_MEASUREMENT_SURFACE_HOLE_Y (56) ///< Surface Hole tool Y measurement.
1329 #define GO_MEASUREMENT_SURFACE_HOLE_Z (57) ///< Surface Hole tool Z measurement.
1330 #define GO_MEASUREMENT_SURFACE_HOLE_RADIUS (58) ///< Surface Hole tool Radius measurement.
1331 #define GO_MEASUREMENT_SURFACE_OPENING_X (59) ///< Surface Opening tool X measurement.
1332 #define GO_MEASUREMENT_SURFACE_OPENING_Y (60) ///< Surface Opening tool Y measurement.
1333 #define GO_MEASUREMENT_SURFACE_OPENING_Z (61) ///< Surface Opening tool Z measurement.
1334 #define GO_MEASUREMENT_SURFACE_OPENING_WIDTH (62) ///< Surface Opening tool Width measurement.
1335 #define GO_MEASUREMENT_SURFACE_OPENING_LENGTH (63) ///< Surface Opening tool Length measurement.
1336 #define GO_MEASUREMENT_SURFACE_OPENING_ANGLE (64) ///< Surface Opening tool Angle measurement.
1337 #define GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE (65) ///< Surface Plane tool X Angle measurement.
1338 #define GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE (66) ///< Surface Plane tool Y Angle measurement.
1339 #define GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET (67) ///< Surface Plane tool Z Offset measurement.
1340 #define GO_MEASUREMENT_SURFACE_PLANE_STD_DEV (109) ///< Surface Plane tool Standard Deviation measurement.
1341 #define GO_MEASUREMENT_SURFACE_PLANE_ERROR_MIN (110) ///< Surface Plane tool Minimum Error measurement.
1342 #define GO_MEASUREMENT_SURFACE_PLANE_ERROR_MAX (111) ///< Surface Plane tool Maximum Error measurement.
1343 #define GO_MEASUREMENT_SURFACE_POSITION_X (68) ///< Surface Position tool X measurement.
1344 #define GO_MEASUREMENT_SURFACE_POSITION_Y (69) ///< Surface Position tool Y measurement.
1345 #define GO_MEASUREMENT_SURFACE_POSITION_Z (70) ///< Surface Position tool Z measurement.
1346 #define GO_MEASUREMENT_SURFACE_RIVET_X (88) ///< Surface Rivet tool X measurement.
1347 #define GO_MEASUREMENT_SURFACE_RIVET_Y (89) ///< Surface Rivet tool Y measurement.
1348 #define GO_MEASUREMENT_SURFACE_RIVET_Z (90) ///< Surface Rivet tool Z measurement.
1349 #define GO_MEASUREMENT_SURFACE_RIVET_TILT_ANGLE (91) ///< Surface Rivet tool X Angle measurement.
1350 #define GO_MEASUREMENT_SURFACE_RIVET_TILT_DIRECTION (92) ///< Surface Rivet tool Y Angle measurement.
1351 #define GO_MEASUREMENT_SURFACE_RIVET_RADIUS (93) ///< Surface Rivet tool Radius measurement.
1352 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MIN (94) ///< Surface Rivet tool Top Offset Minimum measurement.
1353 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MAX (95) ///< Surface Rivet tool Top Offset Maximum measurement.
1354 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_MEAN (96) ///< Surface Rivet tool Top Offset Mean measurement.
1355 #define GO_MEASUREMENT_SURFACE_RIVET_TOP_OFFSET_STD_DEV (97) ///< Surface Rivet tool Top Offset Standard Deviation measurement.
1356 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MIN (98) ///< Surface Rivet tool Radial Height Minimum measurement.
1357 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MAX (99) ///< Surface Rivet tool Radial Height Maximum measurement.
1358 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_MEAN (100) ///< Surface Rivet tool Radial Height Mean measurement.
1359 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_HEIGHT_STD_DEV (101) ///< Surface Rivet tool Radial Height Standard Deviation measurement.
1360 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MIN (102) ///< Surface Rivet tool Radial Slope Minimum measurement.
1361 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MAX (103) ///< Surface Rivet tool Radial Slope Maximum measurement.
1362 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_MEAN (104) ///< Surface Rivet tool Radial Slope Mean measurement.
1363 #define GO_MEASUREMENT_SURFACE_RIVET_RADIAL_SLOPE_STD_DEV (105) ///< Surface Rivet tool Radial Slope Standard Deviation measurement.
1364 #define GO_MEASUREMENT_SURFACE_STUD_BASE_X (71) ///< Surface Stud tool Base X measurement.
1365 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Y (72) ///< Surface Stud tool Base Y measurement.
1366 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Z (73) ///< Surface Stud tool Base Z measurement.
1367 #define GO_MEASUREMENT_SURFACE_STUD_TIP_X (74) ///< Surface Stud tool Tip X measurement.
1368 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Y (75) ///< Surface Stud tool Tip Y measurement.
1369 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Z (76) ///< Surface Stud tool Tip Z measurement.
1370 #define GO_MEASUREMENT_SURFACE_STUD_RADIUS (77) ///< Surface Stud tool Radius measurement.
1371 #define GO_MEASUREMENT_SURFACE_VOLUME_AREA (78) ///< Surface Volume tool Area measurement.
1372 #define GO_MEASUREMENT_SURFACE_VOLUME_VOLUME (79) ///< Surface Volume tool Volume measurement.
1373 #define GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS (80) ///< Surface Volume tool Thickness measurement.
1374 #define GO_MEASUREMENT_SCRIPT_OUTPUT (81) ///< Script tool Output.
1375 #define GO_MEASUREMENT_EXTENSIBLE (87) ///< Extensible tool measurement.
1376 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_X (123) ///< Profile Round Corner tool X measurement.
1377 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_Z (124) ///< Profile Round Corner tool Z measurement.
1378 #define GO_MEASUREMENT_PROFILE_ROUND_CORNER_ANGLE (125) ///< Profile Round Corner tool Angle measurement.
1379 
1380 /**@}*/
1381 
1382 
1383 /**
1384  * @struct GoDataMessageType
1385  * @extends kValue
1386  * @ingroup GoSdk-DataChannel
1387  * @brief Lists all data message types.
1388  *
1389  * The following enumerators are defined:
1390  * - #GO_DATA_MESSAGE_TYPE_UNKNOWN
1391  * - #GO_DATA_MESSAGE_TYPE_STAMP
1392  * - #GO_DATA_MESSAGE_TYPE_HEALTH
1393  * - #GO_DATA_MESSAGE_TYPE_VIDEO
1394  * - #GO_DATA_MESSAGE_TYPE_RANGE
1395  * - #GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY
1396  * - #GO_DATA_MESSAGE_TYPE_PROFILE
1397  * - #GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY
1398  * - #GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE
1399  * - #GO_DATA_MESSAGE_TYPE_SURFACE
1400  * - #GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY
1401  * - #GO_DATA_MESSAGE_TYPE_MEASUREMENT
1402  * - #GO_DATA_MESSAGE_TYPE_ALIGNMENT
1403  * - #GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL
1404  * - #GO_DATA_MESSAGE_TYPE_EDGE_MATCH
1405  * - #GO_DATA_MESSAGE_TYPE_BOUNDING_BOX_MATCH
1406  * - #GO_DATA_MESSAGE_TYPE_ELLIPSE_MATCH
1407  * - #GO_DATA_MESSAGE_TYPE_SECTION
1408  * - #GO_DATA_MESSAGE_TYPE_SECTION_INTENSITY
1409  * - #GO_DATA_MESSAGE_TYPE_EVENT
1410  * - #GO_DATA_MESSAGE_TYPE_TRACHEID
1411  */
1412 typedef k32s GoDataMessageType;
1413 /** @name GoDataMessageType
1414  *@{*/
1415 #define GO_DATA_MESSAGE_TYPE_UNKNOWN (-1) ///< Unknown message type.
1416 #define GO_DATA_MESSAGE_TYPE_STAMP (0) ///< Stamp message type.
1417 #define GO_DATA_MESSAGE_TYPE_HEALTH (1) ///< Health message type.
1418 #define GO_DATA_MESSAGE_TYPE_VIDEO (2) ///< Video message type.
1419 #define GO_DATA_MESSAGE_TYPE_RANGE (3) ///< Range message type.
1420 #define GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY (4) ///< Range Intensity message type.
1421 #define GO_DATA_MESSAGE_TYPE_PROFILE (5) ///< Profile message type.
1422 #define GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY (6) ///< Profile(or Resampled if uniform spacing is enabled) Intensity message type.
1423 #define GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE (7) ///< Resampled Profile message type.
1424 #define GO_DATA_MESSAGE_TYPE_SURFACE (8) ///< Surface message type.
1425 #define GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY (9) ///< Surface Intensity message type.
1426 #define GO_DATA_MESSAGE_TYPE_MEASUREMENT (10) ///< Measurement message type.
1427 #define GO_DATA_MESSAGE_TYPE_ALIGNMENT (11) ///< Alignment result message type.
1428 #define GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL (12) ///< Exposure AutoSet/Calibration result message type.
1429 #define GO_DATA_MESSAGE_TYPE_EDGE_MATCH (16) ///< Part matching edge algorithm message type.
1430 #define GO_DATA_MESSAGE_TYPE_BOUNDING_BOX_MATCH (17) ///< Part matching bounding box algorithm message type.
1431 #define GO_DATA_MESSAGE_TYPE_ELLIPSE_MATCH (18) ///< Part matching ellipse algorithm message type.
1432 #define GO_DATA_MESSAGE_TYPE_SECTION (20) ///< Section message type.
1433 #define GO_DATA_MESSAGE_TYPE_SECTION_INTENSITY (21) ///< Section Intensity message type.
1434 #define GO_DATA_MESSAGE_TYPE_EVENT (22) ///< Event message type.
1435 #define GO_DATA_MESSAGE_TYPE_TRACHEID (23) ///< Tracheid message type.
1436 /**@}*/
1437 
1438 /**
1439 * @struct GoReplayConditionType
1440 * @extends kValue
1441 * @ingroup GoSdk-Replay
1442 * @brief Represents a replay condition type.
1443 *
1444 * The following enumerators are defined:
1445 * - #GO_REPLAY_CONDITION_TYPE_ANY_MEASUREMENT
1446 * - #GO_REPLAY_CONDITION_TYPE_ANY_DATA
1447 * - #GO_REPLAY_CONDITION_TYPE_MEASUREMENT
1448 */
1449 typedef k32s GoReplayConditionType;
1450 /** @name GoReplayConditionType
1451 *@{*/
1452 #define GO_REPLAY_CONDITION_TYPE_ANY_MEASUREMENT (0) ///< Any Measurement condition.
1453 #define GO_REPLAY_CONDITION_TYPE_ANY_DATA (1) ///< Any Data condition.
1454 #define GO_REPLAY_CONDITION_TYPE_MEASUREMENT (2) ///< Measurement condition.
1455 
1456 /**@}*/
1457 
1458 /**
1459 * @struct GoReplayCombineType
1460 * @extends kValue
1461 * @ingroup GoSdk-Replay
1462 * @brief Represents a replay combine type.
1463 *
1464 * The following enumerators are defined:
1465 * - #GO_REPLAY_COMBINE_TYPE_ANY
1466 * - #GO_REPLAY_COMBINE_TYPE_ALL
1467 */
1468 typedef k32s GoReplayCombineType;
1469 /** @name GoReplayCombineType
1470 *@{*/
1471 #define GO_REPLAY_COMBINE_TYPE_ANY (0) ///< Any
1472 #define GO_REPLAY_COMBINE_TYPE_ALL (1) ///< All
1473 /**@}*/
1474 
1475 /**
1476 * @struct GoReplayMeasurementResult
1477 * @extends kValue
1478 * @ingroup GoSdk-Replay
1479 * @brief Represents a replay measurement result.
1480 *
1481 * The following enumerators are defined:
1482 * - #GO_REPLAY_MEASUREMENT_RESULT_PASS
1483 * - #GO_REPLAY_MEASUREMENT_RESULT_FAIL
1484 * - #GO_REPLAY_MEASUREMENT_RESULT_VALID
1485 * - #GO_REPLAY_MEASUREMENT_RESULT_INVALID
1486 * - #GO_REPLAY_MEASUREMENT_RESULT_FAIL_OR_INVALID
1487 */
1489 /** @name GoReplayMeasurementResult
1490 *@{*/
1491 #define GO_REPLAY_MEASUREMENT_RESULT_PASS (0) ///< Pass
1492 #define GO_REPLAY_MEASUREMENT_RESULT_FAIL (1) ///< Fail
1493 #define GO_REPLAY_MEASUREMENT_RESULT_VALID (2) ///< Valid
1494 #define GO_REPLAY_MEASUREMENT_RESULT_INVALID (3) ///< Invalid
1495 #define GO_REPLAY_MEASUREMENT_RESULT_FAIL_OR_INVALID (4) ///< Fail or Invalid
1496 /**@}*/
1497 
1498 /**
1499 * @struct GoReplayRangeCountCase
1500 * @extends kValue
1501 * @ingroup GoSdk-Replay
1502 * @brief Represents a replay range count case.
1503 *
1504 * The following enumerators are defined:
1505 * - #GO_REPLAY_RANGE_COUNT_CASE_AT_ABOVE
1506 * - #GO_REPLAY_RANGE_COUNT_CASE_BELOW
1507 */
1509 /** @name GoReplayRangeCountCase
1510 *@{*/
1511 #define GO_REPLAY_RANGE_COUNT_CASE_AT_ABOVE (0) ///< Case at above
1512 #define GO_REPLAY_RANGE_COUNT_CASE_BELOW (1) ///< Case below
1513 /**@}*/
1514 
1515 /// @cond (Gocator_1x00 || Gocator_2x00)
1516 
1517 /**
1518  * @struct GoMaterialType
1519  * @extends kValue
1520  * @ingroup GoSdk
1521  * @brief Represents a material acquisition type.
1522  *
1523  * The following enumerators are defined:
1524  * - #GO_MATERIAL_TYPE_CUSTOM
1525  * - #GO_MATERIAL_TYPE_DIFFUSE
1526  */
1527 typedef k32s GoMaterialType;
1528 /** @name GoMaterialType
1529  *@{*/
1530 #define GO_MATERIAL_TYPE_CUSTOM (0) ///< Custom material acquisition type.
1531 #define GO_MATERIAL_TYPE_DIFFUSE (1) ///< Diffuse material acquisition type.
1532 /**@}*/
1533 
1534 /**
1535  * @struct GoSpotSelectionType
1536  * @extends kValue
1537  * @ingroup GoSdk
1538  * @brief Represents a spot selection type.
1539  *
1540  * The following enumerators are defined:
1541  * - #GO_SPOT_SELECTION_TYPE_BEST
1542  * - #GO_SPOT_SELECTION_TYPE_TOP
1543  * - #GO_SPOT_SELECTION_TYPE_BOTTOM
1544  * - #GO_SPOT_SELECTION_TYPE_NONE
1545  */
1546 typedef k32s GoSpotSelectionType;
1547 /** @name GoSpotSelectionType
1548  *@{*/
1549 #define GO_SPOT_SELECTION_TYPE_BEST (0) ///< Select the spot with the best value.
1550 #define GO_SPOT_SELECTION_TYPE_TOP (1) ///< Select the top-most spot.
1551 #define GO_SPOT_SELECTION_TYPE_BOTTOM (2) ///< Select the bottom-most spot.
1552 #define GO_SPOT_SELECTION_TYPE_NONE (3) ///< Disable spot selection.
1553 /**@}*/
1554 
1555 /// @endcond
1556 
1557 /// @cond (Gocator_1x00 || Gocator_2x00)
1558 /**
1559  * @struct GoProfileStripBaseType
1560  * @extends kValue
1561  * @ingroup GoSdk-ProfileTools
1562  * @brief Represents a profile strip tool base type.
1563  *
1564  * The following enumerators are defined:
1565  * - #GO_PROFILE_STRIP_BASE_TYPE_NONE
1566  * - #GO_PROFILE_STRIP_BASE_TYPE_FLAT
1567  */
1569 /** @name GoProfileStripBaseType
1570  *@{*/
1571 #define GO_PROFILE_STRIP_BASE_TYPE_NONE (0) ///< No strip base type.
1572 #define GO_PROFILE_STRIP_BASE_TYPE_FLAT (1) ///< Flat strip base type.
1573 /**@}*/
1574 
1575 /**
1576  * @struct GoProfileStripEdgeType
1577  * @extends kValue
1578  * @ingroup GoSdk-ProfileTools
1579  * @brief Represents a profile strip tool edge type.
1580  *
1581  * The following enumerators are defined:
1582  * - #GO_PROFILE_STRIP_EDGE_TYPE_RISING
1583  * - #GO_PROFILE_STRIP_EDGE_TYPE_FALLING
1584  * - #GO_PROFILE_STRIP_EDGE_TYPE_DATA_END
1585  * - #GO_PROFILE_STRIP_EDGE_TYPE_VOID
1586  */
1588 /** @name GoProfileStripEdgeType
1589  *@{*/
1590 #define GO_PROFILE_STRIP_EDGE_TYPE_RISING (1) ///< Rising strip edge type.
1591 #define GO_PROFILE_STRIP_EDGE_TYPE_FALLING (2) ///< Falling strip edge type.
1592 #define GO_PROFILE_STRIP_EDGE_TYPE_DATA_END (4) ///< Data end strip edge type.
1593 #define GO_PROFILE_STRIP_EDGE_TYPE_VOID (8) ///< Void strip edge type.
1594 /**@}*/
1595 
1596 
1597 /**
1598  * @struct GoProfileFeatureType
1599  * @ingroup GoSdk-ProfileTools
1600  * @brief Represents a profile feature point type.
1601  *
1602  * The following enumerators are defined:
1603  * - #GO_PROFILE_FEATURE_TYPE_MAX_Z
1604  * - #GO_PROFILE_FEATURE_TYPE_MIN_Z
1605  * - #GO_PROFILE_FEATURE_TYPE_MAX_X
1606  * - #GO_PROFILE_FEATURE_TYPE_MIN_X
1607  * - #GO_PROFILE_FEATURE_TYPE_CORNER
1608  * - #GO_PROFILE_FEATURE_TYPE_AVERAGE
1609  * - #GO_PROFILE_FEATURE_TYPE_RISING_EDGE
1610  * - #GO_PROFILE_FEATURE_TYPE_FALLING_EDGE
1611  * - #GO_PROFILE_FEATURE_TYPE_ANY_EDGE
1612  * - #GO_PROFILE_FEATURE_TYPE_TOP_CORNER
1613  * - #GO_PROFILE_FEATURE_TYPE_BOTTOM_CORNER
1614  * - #GO_PROFILE_FEATURE_TYPE_LEFT_CORNER
1615  * - #GO_PROFILE_FEATURE_TYPE_RIGHT_CORNER
1616  * - #GO_PROFILE_FEATURE_TYPE_MEDIAN
1617  */
1618 typedef k32s GoProfileFeatureType;
1619 /** @name GoProfileFeatureType
1620  *@{*/
1621 #define GO_PROFILE_FEATURE_TYPE_MAX_Z (0) ///< Point with the maximum Z value.
1622 #define GO_PROFILE_FEATURE_TYPE_MIN_Z (1) ///< Point with the minimum Z value.
1623 #define GO_PROFILE_FEATURE_TYPE_MAX_X (2) ///< Point with the maximum X value.
1624 #define GO_PROFILE_FEATURE_TYPE_MIN_X (3) ///< Point with the minimum X value.
1625 #define GO_PROFILE_FEATURE_TYPE_CORNER (4) ///< Dominant corner.
1626 #define GO_PROFILE_FEATURE_TYPE_AVERAGE (5) ///< Average of points.
1627 #define GO_PROFILE_FEATURE_TYPE_RISING_EDGE (6) ///< Rising edge.
1628 #define GO_PROFILE_FEATURE_TYPE_FALLING_EDGE (7) ///< Falling edge.
1629 #define GO_PROFILE_FEATURE_TYPE_ANY_EDGE (8) ///< Rising or falling edge.
1630 #define GO_PROFILE_FEATURE_TYPE_TOP_CORNER (9) ///< Top-most corner.
1631 #define GO_PROFILE_FEATURE_TYPE_BOTTOM_CORNER (10) ///< Bottom-most corner.
1632 #define GO_PROFILE_FEATURE_TYPE_LEFT_CORNER (11) ///< Left-most corner.
1633 #define GO_PROFILE_FEATURE_TYPE_RIGHT_CORNER (12) ///< Right-most corner.
1634 #define GO_PROFILE_FEATURE_TYPE_MEDIAN (13) ///< Median of points.
1635 /**@}*/
1636 
1637 /**
1638  * @struct GoProfileGapAxis
1639  * @ingroup GoSdk-ProfileTools
1640  * @brief Represents a profile gap measurement axis.
1641  *
1642  * The following enumerators are defined:
1643  * - #GO_PROFILE_GAP_AXIS_EDGE
1644  * - #GO_PROFILE_GAP_AXIS_SURFACE
1645  * - #GO_PROFILE_GAP_AXIS_DISTANCE
1646  */
1647 typedef k32s GoProfileGapAxis;
1648 /** @name GoProfileGapAxis
1649  *@{*/
1650 #define GO_PROFILE_GAP_AXIS_EDGE (0) ///< Measure the gap along the edge normal.
1651 #define GO_PROFILE_GAP_AXIS_SURFACE (1) ///< Measure the gap along the surface line.
1652 #define GO_PROFILE_GAP_AXIS_DISTANCE (2) ///< Measure the shortest distance between the two edges.
1653 /**@}*/
1654 
1655 /**
1656  * @struct GoProfileEdgeType
1657  * @ingroup GoSdk-ProfileTools
1658  * @brief Represents a profile edge type.
1659  *
1660  * The following enumerators are defined:
1661  * - #GO_PROFILE_EDGE_TYPE_TANGENT
1662  * - #GO_PROFILE_EDGE_TYPE_CORNER
1663  */
1664 typedef k32s GoProfileEdgeType;
1665 /** @name GoProfileEdgeType
1666  *@{*/
1667 #define GO_PROFILE_EDGE_TYPE_TANGENT (0) ///< Detect the edge by looking for the tangent.
1668 #define GO_PROFILE_EDGE_TYPE_CORNER (1) ///< Detect the edge by looking for the corner.
1669 /**@}*/
1670 
1671 /**
1672  * @struct GoProfileLineType
1673  * @ingroup GoSdk-ProfileTools
1674  * @brief Determines whether to use a line based on a Profile Line fit, or based on the x-axis.
1675  *
1676  * The following enumerators are defined:
1677  * - #GO_PROFILE_BASELINE_TYPE_X_AXIS
1678  * - #GO_PROFILE_BASELINE_TYPE_Z_AXIS
1679  * - #GO_PROFILE_BASELINE_TYPE_LINE
1680  */
1681 typedef k32s GoProfileBaseline;
1682 /** @name GoProfileBaseline
1683  *@{*/
1684 #define GO_PROFILE_BASELINE_TYPE_X_AXIS (0) ///< Use the X-Axis.
1685 #define GO_PROFILE_BASELINE_TYPE_Z_AXIS (1) ///< Use the Z-Axis.
1686 #define GO_PROFILE_BASELINE_TYPE_LINE (2) ///< Use the line fit.
1687 /**@}*/
1688 
1689 /**
1690  * @struct GoProfileAreaType
1691  * @ingroup GoSdk-ProfileTools
1692  * @brief Determines how to calculate profile area
1693  *
1694  * The following enumerators are defined:
1695  * - #GO_PROFILE_AREA_TYPE_OBJECT
1696  * - #GO_PROFILE_AREA_TYPE_CLEARANCE
1697  */
1698 typedef k32s GoProfileAreaType;
1699 /** @name GoProfileAreaType
1700  *@{*/
1701 #define GO_PROFILE_AREA_TYPE_OBJECT (0) ///< Sum the profile area that is above the line.
1702 #define GO_PROFILE_AREA_TYPE_CLEARANCE (1) ///< Sum the profile area that is below the line.
1703 /**@}*/
1704 
1705 /**
1706  * @struct GoProfileGapSide
1707  * @ingroup GoSdk-ProfileTools
1708  * @brief Selects which edge to use as the reference in a panel tool.
1709  *
1710  * The following enumerators are defined:
1711  * - #GO_PROFILE_PANEL_SIDE_LEFT
1712  * - #GO_PROFILE_PANEL_SIDE_RIGHT
1713  */
1714 typedef k32s GoProfilePanelSide;
1715 /** @name GoProfilePanelSide
1716  *@{*/
1717 #define GO_PROFILE_PANEL_SIDE_LEFT (0) ///< Use the left edge.
1718 #define GO_PROFILE_PANEL_SIDE_RIGHT (1) ///< Use the right edge.
1719 /**@}*/
1720 
1721 /**
1722  * @struct GoProfileRoundCornerDirection
1723  * @ingroup GoSdk-ProfileTools
1724  * @brief Selects which reference direction to use for the round corner tool.
1725  *
1726  * The following enumerators are defined:
1727  * - #GO_PROFILE_ROUND_CORNER_DIRECTION_LEFT
1728  * - #GO_PROFILE_ROUND_CORNER_DIRECTION_RIGHT
1729  */
1730 
1732 /** @name GoProfileRoundCornerDirection
1733  *@{*/
1734 #define GO_PROFILE_ROUND_CORNER_DIRECTION_LEFT (0) ///< Use the left edge.
1735 #define GO_PROFILE_ROUND_CORNER_DIRECTION_RIGHT (1) ///< Use the right edge.
1736 /**@}*/
1737 
1738 /**
1739  * @struct GoProfileGrooveShape
1740  * @ingroup GoSdk-ProfileTools
1741  * @brief Represents a profile edge type.
1742  *
1743  * The following enumerators are defined:
1744  * - #GO_PROFILE_GROOVE_SHAPE_U
1745  * - #GO_PROFILE_GROOVE_SHAPE_V
1746  * - #GO_PROFILE_GROOVE_SHAPE_OPEN
1747  */
1748 typedef k32s GoProfileGrooveShape;
1749 /** @name GoProfileGrooveShape
1750  *@{*/
1751 #define GO_PROFILE_GROOVE_SHAPE_U (0) ///< Detect grooves that are U shaped.
1752 #define GO_PROFILE_GROOVE_SHAPE_V (1) ///< Detect grooves that are V shaped.
1753 #define GO_PROFILE_GROOVE_SHAPE_OPEN (2) ///< Detect grooves that are open.
1754 /**@}*/
1755 
1756 /**
1757  * @struct GoProfileGrooveSelectType
1758  * @ingroup GoSdk-ProfileTools
1759  * @brief Determines which groove to select when multiple are present.
1760  *
1761  * The following enumerators are defined:
1762  * - #GO_PROFILE_GROOVE_SELECT_TYPE_MAX_DEPTH
1763  * - #GO_PROFILE_GROOVE_SELECT_TYPE_LEFT_INDEX
1764  * - #GO_PROFILE_GROOVE_SELECT_TYPE_RIGHT_INDEX
1765  */
1767 /** @name GoProfileGrooveSelectType
1768  *@{*/
1769 #define GO_PROFILE_GROOVE_SELECT_TYPE_MAX_DEPTH (0) ///< Select the groove with the maximum depth.
1770 #define GO_PROFILE_GROOVE_SELECT_TYPE_LEFT_INDEX (1) ///< Select the groove with the currently selected index starting from the left side.
1771 #define GO_PROFILE_GROOVE_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the groove with the currently selected index starting from the right side.
1772 /**@}*/
1773 
1774 /**
1775  * @struct GoProfileGrooveLocation
1776  * @ingroup GoSdk-ProfileTools
1777  * @brief Determines which groove position to return.
1778  *
1779  * The following enumerators are defined:
1780  * - #GO_PROFILE_GROOVE_LOCATION_BOTTOM
1781  * - #GO_PROFILE_GROOVE_LOCATION_LEFT
1782  * - #GO_PROFILE_GROOVE_LOCATION_RIGHT
1783  */
1785 /** @name GoProfileGrooveLocation
1786  *@{*/
1787 #define GO_PROFILE_GROOVE_LOCATION_BOTTOM (0) ///< Return the position of the bottom of the groove.
1788 #define GO_PROFILE_GROOVE_LOCATION_LEFT (1) ///< Return the position of the left corner of the groove.
1789 #define GO_PROFILE_GROOVE_LOCATION_RIGHT (2) ///< Return the position of the right corner of the groove.
1790 /**@}*/
1791 
1792 /**
1793  * @struct GoProfileStripSelectType
1794  * @ingroup GoSdk-ProfileTools
1795  * @brief Determines which Strip to select when multiple are present.
1796  *
1797  * The following enumerators are defined:
1798  * - #GO_PROFILE_STRIP_SELECT_TYPE_BEST
1799  * - #GO_PROFILE_STRIP_SELECT_TYPE_LEFT_INDEX
1800  * - #GO_PROFILE_STRIP_SELECT_TYPE_RIGHT_INDEX
1801  */
1803 /** @name GoProfileStripSelectType
1804  *@{*/
1805 #define GO_PROFILE_STRIP_SELECT_TYPE_BEST (0) ///< Select the best strip.
1806 #define GO_PROFILE_STRIP_SELECT_TYPE_LEFT_INDEX (1) ///< Select the strip with the currently selected index starting from the left side.
1807 #define GO_PROFILE_STRIP_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the strip with the currently selected index starting from the right side.
1808 /**@}*/
1809 
1810 /**
1811  * @struct GoProfileStripLocation
1812  * @ingroup GoSdk-ProfileTools
1813  * @brief Determines which Strip position to return.
1814  *
1815  * The following enumerators are defined:
1816  * - #GO_PROFILE_STRIP_LOCATION_LEFT
1817  * - #GO_PROFILE_STRIP_LOCATION_RIGHT
1818  * - #GO_PROFILE_STRIP_LOCATION_BOTTOM
1819  */
1821 /** @name GoProfileStripLocation
1822  *@{*/
1823 #define GO_PROFILE_STRIP_LOCATION_LEFT (0) ///< Return the position of the left corner of the Strip.
1824 #define GO_PROFILE_STRIP_LOCATION_RIGHT (1) ///< Return the position of the right corner of the Strip.
1825 #define GO_PROFILE_STRIP_LOCATION_BOTTOM (2) ///< Return the position of the center of the Strip.
1826 /**@}*/
1827 
1828 /**
1829 * @struct GoProfileGenerationType
1830 * @extends kValue
1831 * @ingroup GoSdk-Profile
1832 * @brief Represents a profile generation type.
1833 *
1834 * The following enumerators are defined:
1835 * - #GO_PROFILE_GENERATION_TYPE_CONTINUOUS
1836 * - #GO_PROFILE_GENERATION_TYPE_FIXED_LENGTH
1837 * - #GO_PROFILE_GENERATION_TYPE_VARIABLE_LENGTH
1838 * - #GO_PROFILE_GENERATION_TYPE_ROTATIONAL
1839 */
1841 /** @name GoProfileGenerationType
1842 *@{*/
1843 #define GO_PROFILE_GENERATION_TYPE_CONTINUOUS (0) ///< Continuous Profile generation.
1844 #define GO_PROFILE_GENERATION_TYPE_FIXED_LENGTH (1) ///< Fixed length Profile generation.
1845 #define GO_PROFILE_GENERATION_TYPE_VARIABLE_LENGTH (2) ///< Variable length Profile generation.
1846 #define GO_PROFILE_GENERATION_TYPE_ROTATIONAL (3) ///< Rotational Profile generation.
1847 /**@}*/
1848 
1849 /**
1850 * @struct GoProfileGenerationStartTrigger
1851 * @extends kValue
1852 * @ingroup GoSdk-Profile
1853 * @brief Represents a profile generation start trigger.
1854 *
1855 * The following enumerators are defined:
1856 * - #GO_PROFILE_GENERATION_START_TRIGGER_SEQUENTIAL
1857 * - #GO_PROFILE_GENERATION_START_TRIGGER_DIGITAL
1858 */
1860 /** @name GoProfileGenerationStartTrigger
1861 *@{*/
1862 #define GO_PROFILE_GENERATION_START_TRIGGER_SEQUENTIAL (0) ///< Sequential start trigger.
1863 #define GO_PROFILE_GENERATION_START_TRIGGER_DIGITAL (1) ///< Digital input start trigger.
1864 /**@}*/
1865 
1866 /// @endcond
1867 
1868 /// @cond (Gocator_2x00 || Gocator_3x00)
1869 
1870 /**
1871  * @struct GoPartFrameOfReference
1872  * @extends kValue
1873  * @ingroup GoSdk
1874  * @brief Represents a part detection frame of reference.
1875  *
1876  * The following enumerators are defined:
1877  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR
1878  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN
1879  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_PART
1880  */
1881 typedef k32s GoPartFrameOfReference;
1882 /** @name GoPartFrameOfReference
1883  *@{*/
1884 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR (0) ///< Sensor frame of reference. 2x00 only.
1885 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN (0) ///< Scan frame of reference. 3x00 only. Value duplication is intentional.
1886 #define GO_PART_FRAME_OF_REFERENCE_TYPE_PART (1) ///< Part frame of reference.
1887 /**@}*/
1888 
1889 /**
1890  * @struct GoPartHeightThresholdDirection
1891  * @extends kValue
1892  * @ingroup GoSdk-Surface
1893  * @brief Represents a part detection height threshold direction.
1894  *
1895  * The following enumerators are defined:
1896  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE
1897  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW
1898  */
1899 typedef k32s GoPartHeightThresholdDirection;
1900 /** @name GoPartHeightThresholdDirection
1901  *@{*/
1902 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE (0) ///< Height threshold direction is above the Z-axis.
1903 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW (1) ///< Height threshold direction is below the Z-axis.
1904 /**@}*/
1905 
1906 /**
1907  * @struct GoSurfaceGenerationType
1908  * @extends kValue
1909  * @ingroup GoSdk-Surface
1910  * @brief Represents a surface generation type.
1911  *
1912  * The following enumerators are defined:
1913  * - #GO_SURFACE_GENERATION_TYPE_CONTINUOUS
1914  * - #GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH
1915  * - #GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH
1916  * - #GO_SURFACE_GENERATION_TYPE_ROTATIONAL
1917  */
1918 typedef k32s GoSurfaceGenerationType;
1919 /** @name GoSurfaceGenerationType
1920  *@{*/
1921 #define GO_SURFACE_GENERATION_TYPE_CONTINUOUS (0) ///< Continuous surface generation.
1922 #define GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH (1) ///< Fixed length surface generation.
1923 #define GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH (2) ///< Variable length surface generation.
1924 #define GO_SURFACE_GENERATION_TYPE_ROTATIONAL (3) ///< Rotational surface generation.
1925 /**@}*/
1926 
1927 /**
1928  * @struct GoSurfaceGenerationStartTrigger
1929  * @extends kValue
1930  * @ingroup GoSdk-Surface
1931  * @brief Represents a surface generation start trigger.
1932  *
1933  * The following enumerators are defined:
1934  * - #GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL
1935  * - #GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL
1936  */
1937 typedef k32s GoSurfaceGenerationStartTrigger;
1938 /** @name GoSurfaceGenerationStartTrigger
1939  *@{*/
1940 #define GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL (0) ///< Sequential start trigger.
1941 #define GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL (1) ///< Digital input start trigger.
1942 /**@}*/
1943 
1944 /**
1945  * @struct GoSurfaceLocation
1946  * @ingroup GoSdk-SurfaceTools
1947  * @brief Represents a surface location.
1948  *
1949  * The following enumerators are defined:
1950  * - #GO_SURFACE_LOCATION_TYPE_MAX
1951  * - #GO_SURFACE_LOCATION_TYPE_MIN
1952  * - #GO_SURFACE_LOCATION_TYPE_2D_CENTROID
1953  * - #GO_SURFACE_LOCATION_TYPE_3D_CENTROID
1954  * - #GO_SURFACE_LOCATION_TYPE_AVG
1955  * - #GO_SURFACE_LOCATION_TYPE_MEDIAN
1956  */
1957 typedef k32s GoSurfaceLocation;
1958 /** @name GoSurfaceLocation
1959  *@{*/
1960 #define GO_SURFACE_LOCATION_TYPE_MAX (0) ///< Location based on the maximum point.
1961 #define GO_SURFACE_LOCATION_TYPE_MIN (1) ///< Location based on the minimum point.
1962 #define GO_SURFACE_LOCATION_TYPE_2D_CENTROID (2) ///< Location based on a 2d centroid.
1963 #define GO_SURFACE_LOCATION_TYPE_3D_CENTROID (3) ///< Location based on a 3d centroid.
1964 #define GO_SURFACE_LOCATION_TYPE_AVG (4) ///< Location based on the average point.
1965 #define GO_SURFACE_LOCATION_TYPE_MEDIAN (5) ///< Location based on the median point.
1966 /**@}*/
1967 
1968 /**
1969  * @struct GoSurfaceFeatureType
1970  * @ingroup GoSdk-SurfaceTools
1971  * @brief Represents a surface feature type.
1972  *
1973  * The following enumerators are defined:
1974  * - #GO_SURFACE_FEATURE_TYPE_AVERAGE
1975  * - #GO_SURFACE_FEATURE_TYPE_CENTROID
1976  * - #GO_SURFACE_FEATURE_TYPE_X_MAX
1977  * - #GO_SURFACE_FEATURE_TYPE_X_MIN
1978  * - #GO_SURFACE_FEATURE_TYPE_Y_MAX
1979  * - #GO_SURFACE_FEATURE_TYPE_Y_MIN
1980  * - #GO_SURFACE_FEATURE_TYPE_Z_MAX
1981  * - #GO_SURFACE_FEATURE_TYPE_Z_MIN
1982  * - #GO_SURFACE_FEATURE_TYPE_MEDIAN
1983  */
1984 typedef k32s GoSurfaceFeatureType;
1985 /** @name GoSurfaceFeatureType
1986  *@{*/
1987 #define GO_SURFACE_FEATURE_TYPE_AVERAGE (0) ///< Feature based on the average.
1988 #define GO_SURFACE_FEATURE_TYPE_CENTROID (1) ///< Feature based on the centroid.
1989 #define GO_SURFACE_FEATURE_TYPE_X_MAX (2) ///< Feature based on the X maximum point.
1990 #define GO_SURFACE_FEATURE_TYPE_X_MIN (3) ///< Feature based on the X minimum point.
1991 #define GO_SURFACE_FEATURE_TYPE_Y_MAX (4) ///< Feature based on the Y maximum point.
1992 #define GO_SURFACE_FEATURE_TYPE_Y_MIN (5) ///< Feature based on the Y minimum point.
1993 #define GO_SURFACE_FEATURE_TYPE_Z_MAX (6) ///< Feature based on the Z maximum point.
1994 #define GO_SURFACE_FEATURE_TYPE_Z_MIN (7) ///< Feature based on the Z minimum point.
1995 #define GO_SURFACE_FEATURE_TYPE_MEDIAN (8) ///< Feature based on the median.
1996 /**@}*/
1997 
1998 /**
1999  * @struct GoSurfaceCountersunkHoleShape
2000  * @extends kValue
2001  * @ingroup GoSdk-SurfaceTools
2002  * @brief Represents a surface countersunk hole tool shape.
2003  *
2004  * The following enumerators are defined:
2005  * - #GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_CONE
2006  * - #GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_COUNTERBORE
2007  */
2008 typedef k32s GoSurfaceCountersunkHoleShape;
2009 /** @name GoSurfaceCountersunkHoleShape
2010  *@{*/
2011 #define GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_CONE (0) ///< Cone shape.
2012 #define GO_SURFACE_COUNTERSUNK_HOLE_SHAPE_COUNTERBORE (1) ///< Counterbore shape.
2013 /**@}*/
2014 
2015 
2016 /**
2017  * @struct GoSurfaceOpeningType
2018  * @extends kValue
2019  * @ingroup GoSdk-SurfaceTools
2020  * @brief Represents a surface opening tool type.
2021  *
2022  * The following enumerators are defined:
2023  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT
2024  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE
2025  */
2026 typedef k32s GoSurfaceOpeningType;
2027 /** @name GoSurfaceOpeningType
2028  *@{*/
2029 #define GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT (0) ///< Rounded slot opening type.
2030 #define GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE (1) ///< Rectangular opening type.
2031 /**@}*/
2032 
2033 /**
2034  * @struct GoPartMatchAlgorithm
2035  * @extends kValue
2036  * @ingroup GoSdk-Surface
2037  * @brief Represents a part matching algorithm.
2038  *
2039  * The following enumerators are defined:
2040  * - #GO_PART_MATCH_ALGORITHM_EDGE
2041  * - #GO_PART_MATCH_ALGORITHM_BOUNDING_BOX
2042  * - #GO_PART_MATCH_ALGORITHM_ELLIPSE
2043  */
2044 typedef k32s GoPartMatchAlgorithm;
2045 /** @name GoPartMatchAlgorithm
2046  *@{*/
2047 #define GO_PART_MATCH_ALGORITHM_EDGE (0) ///< Edge based part match algorithm.
2048 #define GO_PART_MATCH_ALGORITHM_BOUNDING_BOX (1) ///< Bounding box based part match algorithm.
2049 #define GO_PART_MATCH_ALGORITHM_ELLIPSE (2) ///< Ellipse based part match algorithm.
2050 /**@}*/
2051 
2052 
2053 /**
2054  * @struct GoBoxAsymmetryType
2055  * @extends kValue
2056  * @ingroup GoSdk-Surface
2057  * @brief Represents the bounding box part matching asymmetry detection type.
2058  *
2059  * The following enumerators are defined:
2060  * - #GO_BOX_ASYMMETRY_TYPE_NONE
2061  * - #GO_BOX_ASYMMETRY_TYPE_ALONG_LENGTH_AXIS
2062  * - #GO_BOX_ASYMMETRY_TYPE_ALONG_WIDTH_AXIS
2063  */
2064 typedef k32s GoBoxAsymmetryType;
2065 /** @name GoBoxAsymmetryType
2066  *@{*/
2067 #define GO_BOX_ASYMMETRY_TYPE_NONE (0) ///< None
2068 #define GO_BOX_ASYMMETRY_TYPE_ALONG_LENGTH_AXIS (1) ///< Along Length axis
2069 #define GO_BOX_ASYMMETRY_TYPE_ALONG_WIDTH_AXIS (2) ///< Along Width axis
2070 /**@}*/
2071 
2072 /**
2073  * @struct GoEllipseAsymmetryType
2074  * @extends kValue
2075  * @ingroup GoSdk-Surface
2076  * @brief Represents the bounding Ellipse part matching asymmetry detection type.
2077  *
2078  * The following enumerators are defined:
2079  * - #GO_ELLIPSE_ASYMMETRY_TYPE_NONE
2080  * - #GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MAJOR_AXIS
2081  * - #GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MINOR_AXIS
2082  */
2083 typedef k32s GoEllipseAsymmetryType;
2084 /** @name GoEllipseAsymmetryType
2085  *@{*/
2086 #define GO_ELLIPSE_ASYMMETRY_TYPE_NONE (0) ///< None
2087 #define GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MAJOR_AXIS (1) ///< Along Major axis
2088 #define GO_ELLIPSE_ASYMMETRY_TYPE_ALONG_MINOR_AXIS (2) ///< Along Minor axis
2089 /**@}*/
2090 
2091 
2092 #define GO_SURFACE_COUNTERSUNK_HOLE_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Counter Sunk Hole Tool.
2093 #define GO_SURFACE_HOLE_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Hole Tool.
2094 #define GO_SURFACE_OPENING_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Opening Tool.
2095 #define GO_SURFACE_PLANE_MAX_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Plane Tool.
2096 #define GO_SURFACE_RIVET_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Rivet Tool.
2097 #define GO_SURFACE_STUD_MAX_REF_REGIONS (2) ///< The maximum number of reference regions permitted for the Surface Stud Tool.
2098 
2099 /**
2100  * @struct GoImageType
2101  * @extends kValue
2102  * @ingroup GoSdk
2103  * @brief Represents an image type.
2104  *
2105  * The following enumerators are defined:
2106  * - #GO_IMAGE_TYPE_HEIGHTMAP
2107  * - #GO_IMAGE_TYPE_INTENSITY
2108  */
2109 typedef k32s GoImageType;
2110 /** @name GoImageType
2111  *@{*/
2112 #define GO_IMAGE_TYPE_HEIGHTMAP (0) ///< Heightmap image type.
2113 #define GO_IMAGE_TYPE_INTENSITY (1) ///< Intensity image type.
2114 /**@}*/
2115 
2116 /// @endcond
2117 
2118 
2119 /**
2120  * @struct GoGammaType
2121  * @extends kValue
2122  * @ingroup GoSdk
2123  * @brief Represents a material gamma type.
2124  *
2125  * The following enumerators are defined:
2126  * - #GO_GAMMA_TYPE_NONE
2127  * - #GO_GAMMA_TYPE_LOW
2128  * - #GO_GAMMA_TYPE_MEDIUM
2129  * - #GO_GAMMA_TYPE_HIGH
2130  */
2131 typedef k32s GoGammaType;
2132 /** @name GoGammaType
2133  *@{*/
2134 #define GO_GAMMA_TYPE_NONE (0) ///< None. No imager gamma / multi-slope configuration will occur.
2135 #define GO_GAMMA_TYPE_LOW (1) ///< Low.
2136 #define GO_GAMMA_TYPE_MEDIUM (2) ///< Medium.
2137 #define GO_GAMMA_TYPE_HIGH (3) ///< High.
2138 /**@}*/
2139 
2140 /**
2141  * @struct GoPatternSequenceType
2142  * @extends kValue
2143  * @ingroup GoSdk
2144  * @brief Represents a pattern sequence type.
2145  *
2146  * The following enumerators are defined:
2147  * - #GO_PATTERN_SEQUENCE_TYPE_DEFAULT
2148  * - #GO_PATTERN_SEQUENCE_TYPE_CUSTOM
2149  *
2150  */
2151 typedef k32s GoPatternSequenceType;
2152 /** @name GoPatternSequenceType
2153  *@{*/
2154 
2155 #define GO_PATTERN_SEQUENCE_TYPE_DEFAULT (0) ///< Default sequence pattern.
2156 #define GO_PATTERN_SEQUENCE_TYPE_CUSTOM (100) ///< Custom sequence pattern.
2157 /**@}*/
2158 
2159 
2160 /**
2161  * @struct GoImplicitTriggerOverride
2162  * @extends kValue
2163  * @ingroup GoSdk
2164  * @brief Represents an EthernetIP implicit messaging trigger override.
2165  *
2166  * The following enumerators are defined:
2167  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_OFF
2168  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_CYCLIC
2169  * - #GO_IMPLICIT_TRIGGER_OVERRIDE_CHANGE_OF_STATE
2170  *
2171  */
2173 /** @name GoImplicitTriggerOverride
2174  *@{*/
2175 
2176 #define GO_IMPLICIT_TRIGGER_OVERRIDE_OFF (0) ///< Use the implicit output trigger specified in the connection header.
2177 #define GO_IMPLICIT_TRIGGER_OVERRIDE_CYCLIC (1) ///< Utilize cyclic implicit messaging trigger behavior regardless of what is specified in the connection header.
2178 #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.
2179 /**@}*/
2180 
2181 /**
2182  * @struct GoAlignmentStatus
2183  * @extends kValue
2184  * @ingroup GoSdk
2185  * @brief Represents the operation status of an alignment.
2186  *
2187  * The following enumerators are defined:
2188  * - #GO_ALIGNMENT_STATUS_OK
2189  * - #GO_ALIGNMENT_STATUS_GENERAL_FAILURE
2190  * - #GO_ALIGNMENT_STATUS_STATIONARY_NO_DATA
2191  * - #GO_ALIGNMENT_STATUS_MOVING_INSUFFICIENT_DATA
2192  * - #GO_ALIGNMENT_STATUS_INVALID_TARGET
2193  * - #GO_ALIGNMENT_STATUS_UNEXPECTED_TARGET_POSITION
2194  * - #GO_ALIGNMENT_STATUS_BAR_HOLE_NOT_FOUND
2195  * - #GO_ALIGNMENT_STATUS_MOVING_NO_ENCODER_CHANGE
2196  * - #GO_ALIGNMENT_STATUS_ABORT
2197  * - #GO_ALIGNMENT_STATUS_TIMEOUT
2198  * - #GO_ALIGNMENT_STATUS_INVALID_PARAMETER
2199  *
2200  */
2201 typedef k32s GoAlignmentStatus;
2202 /** @name GoAlignmentStatus
2203  *@{*/
2204 
2205 #define GO_ALIGNMENT_STATUS_OK (1) ///< Alignment operation succeeded.
2206 #define GO_ALIGNMENT_STATUS_GENERAL_FAILURE (0) ///< Alignment operation failed.
2207 #define GO_ALIGNMENT_STATUS_STATIONARY_NO_DATA (-1) ///< Stationary alignment failed due to no data being received. Please ensure the target is in range.
2208 #define GO_ALIGNMENT_STATUS_MOVING_INSUFFICIENT_DATA (-2) ///< Moving alignment failed due to insufficient data.
2209 #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.
2210 #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.
2211 #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.
2212 #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.
2213 #define GO_ALIGNMENT_STATUS_ABORT (kERROR_ABORT) ///< The alignment was aborted by the user.
2214 #define GO_ALIGNMENT_STATUS_TIMEOUT (kERROR_TIMEOUT) ///< The alignment timed out.
2215 #define GO_ALIGNMENT_STATUS_INVALID_PARAMETER (kERROR_PARAMETER) ///< The alignment failed due to incorrected parameters.
2216 /**@}*/
2217 
2218 typedef struct GoMeasurementOption
2219 {
2220  kText64 name;
2221  kSize minCount;
2222  kSize maxCount;
2223 } GoMeasurementOption;
2224 
2225 /**
2226  * @struct GoEventType
2227  * @extends kValue
2228  * @ingroup GoSdk
2229  * @brief Represents the event type represented by an event message.
2230  *
2231  * The following enumerator is defined:
2232  * - GO_EVENT_TYPE_EXPOSURE_END
2233  *
2234  */
2235 typedef k32s GoEventType;
2236 /** @name GoEventType
2237  *@{*/
2238 
2239 #define GO_EVENT_TYPE_EXPOSURE_END (1)
2240 /**@}*/
2241 
2242 /**
2243 * @struct GoOcclusionReductionAlg
2244 * @extends kValue
2245 * @ingroup GoSdk
2246 * @brief Represents an occlusion reduction algorithm.
2247 *
2248 * The following enumerators are defined:
2249 * - #GO_OCCLUSION_REDUCTION_NORMAL
2250 * - #GO_OCCLUSION_REDUCTION_HIGH_QUALITY
2251 */
2253 /** @name GoOcclusionReductionAlg
2254 *@{*/
2255 #define GO_OCCLUSION_REDUCTION_NORMAL (0) ///< Basic occlusion reduction.
2256 #define GO_OCCLUSION_REDUCTION_HIGH_QUALITY (1) ///< High quality occlusion reduction.
2257 /**@}*/
2258 
2259 
2260 kEndHeader()
2261 #include <GoSdk/GoSdkDef.x.h>
2262 
2263 #endif
Represents an active area configuration element.
Definition: GoSdkDef.h:680
k64f yAngle
The Y angle of the transformation.
Definition: GoSdkDef.h:702
Lists all tool types.
k64f y
The Y offset of the transformed data region.
Definition: GoSdkDef.h:715
Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
Definition: GoSdkDef.h:574
Ports used from a source device.
Definition: GoSdkDef.h:610
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:640
k32s playbackSource
The current playback source of the sensor.
Definition: GoSdkDef.h:581
k16u dataPort
Data channel port.
Definition: GoSdkDef.h:615
Represents a playback seek direction.
kBool enabled
Represents whether the element value is currently used.
Definition: GoSdkDef.h:657
k64f max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:630
GoUser loginType
The logged in user.
Definition: GoSdkDef.h:577
Represents the replay export source type.
Represents a replay condition type.
k16u controlPort
Control channel port.
Definition: GoSdkDef.h:612
GoAlignmentRef alignmentReference
The alignment reference of the sensor.
Definition: GoSdkDef.h:578
Lists all measurement types.
GoElement64f value
The filter's configuration properties.
Definition: GoSdkDef.h:671
Represents the possible measurement decision codes.
kBool isAccelerator
The accelerated state of the sensor.
Definition: GoSdkDef.h:587
Represents the supported Gocator hardware families.
Represents a user role.
kBool enabled
Represents whether the element value is currently used.
Definition: GoSdkDef.h:642
Represents a replay combine type.
Represents a replay measurement result.
kBool useDhcp
Sensor uses DHCP?
Definition: GoSdkDef.h:598
Represents a ethernet output protocol.
Represents a data stream which consists of a data step and ID.
Definition: GoSdkDef.h:1009
Represents a data source.
k32u playbackCount
The playback count.
Definition: GoSdkDef.h:585
Represents a transformed data region.
Definition: GoSdkDef.h:712
GoElement64f length
The length of the active area.
Definition: GoSdkDef.h:686
k64f x
The X offset of the transformed data region.
Definition: GoSdkDef.h:714
k32u uptimeSec
Sensor uptime in seconds.
Definition: GoSdkDef.h:582
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:579
Represents a trigger.
k64f y
The Y offset of the transformation.
Definition: GoSdkDef.h:699
Represents an endian output type.
Represents an alignment element.
Definition: GoSdkDef.h:696
Represents a material acquisition type.
k64f value
The element's double field value.
Definition: GoSdkDef.h:629
Represents a composite data source.
Definition: GoSdkDef.h:728
Represents a profile generation start trigger.
GoElement64f width
The width of the active area.
Definition: GoSdkDef.h:687
GoElement64f z
The Z offset of the active area.
Definition: GoSdkDef.h:684
Represents an alignment state.
kBool recordingEnabled
The current state of recording on the sensor.
Definition: GoSdkDef.h:580
kIpAddress gateway
Sensor gateway address.
Definition: GoSdkDef.h:601
kBool autoStartEnabled
The auto-start enabled state.
Definition: GoSdkDef.h:586
Selects which reference direction to use for the round corner tool.
Represents a profile edge type.
GoElement64f y
The Y offset of the active area.
Definition: GoSdkDef.h:683
Determines which groove to select when multiple are present.
k64f min
The minimum allowable value that can be set for this element.
Definition: GoSdkDef.h:631
Represents a material gamma type.
Represents an analog output trigger.
Represents a video message pixel type.
Represents a filter configuration element.
Definition: GoSdkDef.h:668
Represents the status of the Accelerator connection.
Represents an EthernetIP implicit messaging trigger override.
GoState sensorState
The state of the sensor.
Definition: GoSdkDef.h:576
kIpAddress address
Sensor IP address.
Definition: GoSdkDef.h:599
Represents a profile strip tool base type.
kBool enabled
Represents whether the element value is currently used. (not always applicable)
Definition: GoSdkDef.h:627
Represents the operation status of an alignment.
k64f width
The width of the transformed data region.
Definition: GoSdkDef.h:717
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:658
Lists all data message types.
k64f progress
Upgrade progress (percentage).
Definition: GoSdkDef.h:68
Represents a sensor orientation type.
Represents a user id.
Determines which groove position to return.
k32u min
The minimum allowable value that can be set for this element.
Definition: GoSdkDef.h:646
Represents a alignment target type.
Represents all possible exposure modes.
Represents a replay range count case.
Represents an alignment reference.
Represents output sources.
k64f zAngle
The Z angle of the transformation.
Definition: GoSdkDef.h:703
k32u value
The element's 32-bit unsigned field value.
Definition: GoSdkDef.h:644
Represents a pattern sequence type.
Represents an ASCII protocol operational type.
Represents a analog output event.
kIpAddress mask
Sensor subnet bit-mask.
Definition: GoSdkDef.h:600
Represents arguments provided to an upgrade callback function.
Definition: GoSdkDef.h:66
Represents a 64-bit floating point configuration element with a range and enabled state...
Definition: GoSdkDef.h:625
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.
Definition: GoSdkDef.h:685
k32u max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:645
Represents an alignment type.
kBool used
Represents whether the filter field is currently used.
Definition: GoSdkDef.h:670
Represents a profile generation type.
Represents a boolean configuration element with an enabled state.
Definition: GoSdkDef.h:655
Represents the current maximum frame rate limiting source.
Represents an occlusion reduction algorithm.
k16u webPort
Web channel port.
Definition: GoSdkDef.h:614
Determines which Strip to select when multiple are present.
Represents a scan mode.
Represents a digital output event.
k64f systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:628
GoDataSource dataSource
The data source of the composite data source.
Definition: GoSdkDef.h:731
Represents the event type represented by an event message.
k64f x
The X offset of the transformation.
Definition: GoSdkDef.h:698
Determines which Strip position to return.
k32u systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:643
Represents a spot selection type.
k32u uptimeMicrosec
Sensor uptime in microseconds.
Definition: GoSdkDef.h:583
k32u playbackPos
The playback position index.
Definition: GoSdkDef.h:584
Determines how to calculate profile area.
Represents the selcom format followed on the serial output.
k32s id
The ID of the underlying data source.
Definition: GoSdkDef.h:730
k16u upgradePort
Upgrade channel port.
Definition: GoSdkDef.h:613
Represents possible data streams.
kBool value
The element's boolean field value.
Definition: GoSdkDef.h:659
k64f length
The length of the transformed data region.
Definition: GoSdkDef.h:718
k16u healthPort
Health channel port.
Definition: GoSdkDef.h:616
GoElement64f x
The X offset of the active area.
Definition: GoSdkDef.h:682
k64f z
The Z offset of the transformation.
Definition: GoSdkDef.h:700
k64f height
The height of the transformed data region.
Definition: GoSdkDef.h:719
Represents a profile edge type.
Represents a profile feature point type.
k64f z
The Z offset of the transformed data region.
Definition: GoSdkDef.h:716
k64f xAngle
The X angle of the transformation.
Definition: GoSdkDef.h:701
Represents a digital output condition.
Sensor network address settings.
Definition: GoSdkDef.h:596
Represents all serial output protocols.
Represents the current state of a sensor object.
Represents the current encoder period limiting source.