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