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