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