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