Gocator API
 All Classes Files Functions Variables Typedefs Macros Groups 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) 2014 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 
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  * @return Protocol version.
34  */
35 GoFx(kVersion) GoSdk_Version();
36 
37 /**
38  * Returns the protocol version associated with the SDK.
39  *
40  * @public @memberof GoSdk
41  * @return Protocol version.
42  */
43 GoFx(kVersion) GoSdk_ProtocolVersion();
44 
45 /**
46  * Frees the memory associated with a given kObject sourced class handle.
47  *
48  * @public @memberof GoSdk
49  * @param object A kObject.
50  * @return Operation status.
51  */
52 GoFx(kStatus) GoDestroy(kObject object);
53 
54 /**
55  * @struct GoUpgradeFxArgs
56  * @extends kValue
57  * @ingroup GoSdk
58  * @brief Represents arguments provided to an upgrade callback function.
59  */
60 typedef struct GoUpgradeFxArgs
61 {
62  k64f progress; ///< Upgrade progress (percentage).
64 
65 typedef kStatus (kCall* GoUpgradeFx) (kPointer receiver, kObject sender, GoUpgradeFxArgs* args);
66 
67 
68 /**
69  * @struct GoUser
70  * @extends kValue
71  * @ingroup GoSdk
72  * @brief Represents a user id.
73  *
74  * The following enumerators are defined:
75  * - #GO_USER_NONE
76  * - #GO_USER_ADMIN
77  * - #GO_USER_TECH
78  */
79 typedef k32s GoUser;
80 /** @name GoUser
81  *@{*/
82 #define GO_USER_NONE (0) ///< No user.
83 #define GO_USER_ADMIN (1) ///< Administrator user.
84 #define GO_USER_TECH (2) ///< Technician user.
85 /**@}*/
86 
87 /**
88  * @struct GoState
89  * @extends kValue
90  * @ingroup GoSdk
91  * @brief Represents the current state of a sensor object.
92  *
93  * The following enumerators are defined:
94  * - #GO_STATE_ONLINE
95  * - #GO_STATE_OFFLINE
96  * - #GO_STATE_RESETTING
97  * - #GO_STATE_INCOMPATIBLE
98  * - #GO_STATE_INCONSISTENT
99  * - #GO_STATE_UNRESPONSIVE
100  * - #GO_STATE_CANCELLED
101  * - #GO_STATE_INCOMPLETE
102  * - #GO_STATE_BUSY
103  * - #GO_STATE_READY
104  * - #GO_STATE_RUNNING
105  */
106 typedef k32s GoState;
107 /** @name GoState
108  *@{*/
109 #define GO_STATE_ONLINE (0) ///< Sensor disconnected, but detected via discovery.
110 #define GO_STATE_OFFLINE (1) ///< Sensor disconnected and no longer detected via discovery (refresh system to eliminate sensor).
111 #define GO_STATE_RESETTING (2) ///< Sensor disconnected and currently resetting (wait for completion).
112 #define GO_STATE_INCOMPATIBLE (4) ///< Sensor connected, but protocol incompatible with client (upgrade required).
113 #define GO_STATE_INCONSISTENT (5) ///< Sensor connected, but remote state was changed (refresh sensor).
114 #define GO_STATE_UNRESPONSIVE (6) ///< Sensor connected, but no longer detected via health or discovery (disconnect).
115 #define GO_STATE_CANCELLED (7) ///< Sensor connected, but communication aborted via GoSensor_Cancel function (disconnect or refresh sensor).
116 #define GO_STATE_INCOMPLETE (8) ///< Sensor connected, but a required buddy sensor is not present (wait or remove buddy association).
117 #define GO_STATE_BUSY (9) ///< Sensor connected, but currently controlled by another sensor (cannot be configured directly).
118 #define GO_STATE_READY (10) ///< Sensor connected and ready to accept configuration commands.
119 #define GO_STATE_RUNNING (11) ///< Sensor connected and currently running.
120 /**@}*/
121 
122 /**
123  * @struct GoRole
124  * @extends kValue
125  * @ingroup GoSdk
126  * @brief Represents a user role.
127  *
128  * The following enumerators are defined:
129  * - #GO_ROLE_MAIN
130  * - #GO_ROLE_BUDDY
131  */
132 typedef k32s GoRole;
133 /** @name GoRole
134  *@{*/
135 #define GO_ROLE_MAIN (0) ///< Sensor is operating as a main sensor.
136 #define GO_ROLE_BUDDY (1) ///< Sensor is operating as a buddy sensor.
137 /**@}*/
138 
139 /**
140  * @struct GoAlignmentState
141  * @extends kValue
142  * @ingroup GoSdk
143  * @brief Represents an alignment state.
144  *
145  * The following enumerators are defined:
146  * - #GO_ALIGNMENT_STATE_NOT_ALIGNED
147  * - #GO_ALIGNMENT_STATE_ALIGNED
148  */
149 typedef k32s GoAlignmentState;
150 /** @name GoAlignmentState
151  *@{*/
152 #define GO_ALIGNMENT_STATE_NOT_ALIGNED (0) ///< Sensor is not aligned.
153 #define GO_ALIGNMENT_STATE_ALIGNED (1) ///< Sensor is aligned.
154 /**@}*/
155 
156 /**
157  * @struct GoAlignmentRef
158  * @extends kValue
159  * @ingroup GoSdk
160  * @brief Represents an alignment reference.
161  *
162  * The following enumerators are defined:
163  * - #GO_ALIGNMENT_REF_FIXED
164  * - #GO_ALIGNMENT_REF_DYNAMIC
165  */
166 typedef k32s GoAlignmentRef;
167 /** @name GoAlignmentRef
168  *@{*/
169 #define GO_ALIGNMENT_REF_FIXED (0) ///< The alignment used will be specific to the sensor.
170 #define GO_ALIGNMENT_REF_DYNAMIC (1) ///< The alignment used will be specific to the current job if saved.
171 /**@}*/
172 
173 /**
174  * @struct GoMode
175  * @extends kValue
176  * @ingroup GoSdk
177  * @brief Represents a scan mode.
178  *
179  * The following enumerators are defined:
180  * - #GO_MODE_UNKNOWN
181  * - #GO_MODE_VIDEO
182  * - #GO_MODE_RANGE
183  * - #GO_MODE_PROFILE
184  * - #GO_MODE_SURFACE
185  */
186 typedef k32s GoMode;
187 /** @name GoMode
188  *@{*/
189 #define GO_MODE_UNKNOWN (-1) ///< Unknown scan mode.
190 #define GO_MODE_VIDEO (0) ///< Video scan mode.
191 #define GO_MODE_RANGE (1) ///< Range scan mode.
192 #define GO_MODE_PROFILE (2) ///< Profile scan mode.
193 #define GO_MODE_SURFACE (3) ///< Surface scan mode.
194 /**@}*/
195 
196 
197 /**
198  * @struct GoTrigger
199  * @extends kValue
200  * @ingroup GoSdk
201  * @brief Represents a trigger.
202  *
203  * The following enumerators are defined:
204  * - #GO_TRIGGER_TIME
205  * - #GO_TRIGGER_ENCODER
206  * - #GO_TRIGGER_INPUT
207  * - #GO_TRIGGER_SOFTWARE
208  */
209 typedef k32s GoTrigger;
210 /** @name GoTrigger
211  *@{*/
212 #define GO_TRIGGER_TIME (0) ///< The sensor will be time triggered.
213 #define GO_TRIGGER_ENCODER (1) ///< The sensor will be encoder triggered.
214 #define GO_TRIGGER_INPUT (2) ///< The sensor will be digital input triggered.
215 #define GO_TRIGGER_SOFTWARE (3) ///< The sensor will be software triggered.
216 /** @} */
217 
218 /**
219  * @struct GoEncoderTriggerMode
220  * @extends kValue
221  * @ingroup GoSdk
222  * @brief Represents an encoder's triggering behavior.
223  *
224  * The following enumerators are defined:
225  * - #GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE
226  * - #GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE
227  * - #GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL
228  */
229 typedef k32s GoEncoderTriggerMode;
230 /** @name GoEncoderTriggerMode
231  *@{*/
232 #define GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE (0) ///< Do not reverse trigger. Track reverse motion to prevent repeat forward triggers.
233 #define GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE (1) ///< Do not reverse trigger. Forward trigger unconditionally.
234 #define GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL (2) ///< Forward and reverse trigger.
235 /** @} */
236 
237 /**
238  * @struct GoFrameRateMaxSource
239  * @extends kValue
240  * @ingroup GoSdk
241  * @brief Represents the current maximum frame rate limiting source.
242  *
243  * The following enumerators are defined:
244  * - #GO_FRAME_RATE_MAX_SOURCE_CAMERA
245  * - #GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION
246  */
247 typedef k32s GoFrameRateMaxSource;
248 /** @name GoFrameRateMaxSource
249  *@{*/
250 #define GO_FRAME_RATE_MAX_SOURCE_CAMERA (0) ///< Limited by the sensor's camera configuration.
251 #define GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
252 /** @} */
253 
254 /**
255  * @struct GoEncoderSpacingMinSource
256  * @extends kValue
257  * @ingroup GoSdk
258  * @brief Represents the current encoder period limiting source.
259  *
260  * The following enumerators are defined:
261  * - #GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION
262  * - #GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION
263  */
264 typedef k32s GoEncoderSpacingMinSource;
265 /** @name GoEncoderSpacingMinSource
266  *@{*/
267 #define GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION (0) ///< Limited by encoder resolution.
268 #define GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION (1) ///< Limited by part detection logic.
269 /**@}*/
270 
271 /**
272  * @struct GoTriggerUnits
273  * @extends kValue
274  * @ingroup GoSdk
275  * @brief Represents the system's primary synchronization domain
276  *
277  * The following enumerators are defined:
278  * - #GO_TRIGGER_UNIT_TIME
279  * - #GO_TRIGGER_UNIT_ENCODER
280  */
281 typedef k32s GoTriggerUnits;
282 /** @name GoTriggerUnits
283  *@{*/
284 #define GO_TRIGGER_UNIT_TIME (0) ///< Base the system on the internal clock.
285 #define GO_TRIGGER_UNIT_ENCODER (1) ///< Base the system on the encoder.
286 /**@}*/
287 
288 /**
289  * @struct GoExposureMode
290  * @extends kValue
291  * @ingroup GoSdk
292  * @brief Represents all possible exposure modes.
293  *
294  * The following enumerators are defined:
295  * - #GO_EXPOSURE_MODE_SINGLE
296  * - #GO_EXPOSURE_MODE_MULTIPLE
297  * - #GO_EXPOSURE_MODE_DYNAMIC
298  */
299 typedef k32s GoExposureMode;
300 /** @name GoExposureMode
301  *@{*/
302 #define GO_EXPOSURE_MODE_SINGLE (0) ///< Single exposure mode.
303 #define GO_EXPOSURE_MODE_MULTIPLE (1) ///< Multiple exposure mode.
304 #define GO_EXPOSURE_MODE_DYNAMIC (2) ///< Dynamic exposure mode.
305 /**@}*/
306 
307 /**
308  * @struct GoOrientation
309  * @extends kValue
310  * @ingroup GoSdk
311  * @brief Represents a sensor orientation type.
312  *
313  * The following enumerators are defined:
314  * - #GO_ORIENTATION_WIDE
315  * - #GO_ORIENTATION_OPPOSITE
316  * - #GO_ORIENTATION_REVERSE
317  */
318 typedef k32s GoOrientation;
319 /** @name GoOrientation
320  *@{*/
321 #define GO_ORIENTATION_WIDE (0) ///< Wide sensor orientation.
322 #define GO_ORIENTATION_OPPOSITE (1) ///< Opposite sensor orientation.
323 #define GO_ORIENTATION_REVERSE (2) ///< Reverse sensor orientation.
324 /**@}*/
325 
326 /**
327  * @struct GoInputSource
328  * @extends kValue
329  * @ingroup GoSdk
330  * @brief Represents a data input source.
331  *
332  * The following enumerators are defined:
333  * - #GO_INPUT_SOURCE_LIVE
334  * - #GO_INPUT_SOURCE_RECORDING
335  */
336 typedef k32s GoInputSource;
337 /** @name GoInputSource
338  *@{*/
339 #define GO_INPUT_SOURCE_LIVE (0) ///< The current data input source is from live sensor data.
340 #define GO_INPUT_SOURCE_RECORDING (1) ///< The current data source is from a replay.
341 /**@}*/
342 
343 /**
344  * @struct GoSeekDirection
345  * @extends kValue
346  * @ingroup GoSdk
347  * @brief Represents a playback seek direction.
348  *
349  * The following enumerators are defined:
350  * - #GO_SEEK_DIRECTION_FORWARD
351  * - #GO_SEEK_DIRECTION_BACKWARD
352  */
353 typedef k32s GoSeekDirection;
354 /** @name GoSeekDirection
355  *@{*/
356 #define GO_SEEK_DIRECTION_FORWARD (0) ///< Seek forward in the current replay.
357 #define GO_SEEK_DIRECTION_BACKWARD (1) ///< Seek backward in the current replay.
358 /**@}*/
359 
360 /**
361  * @struct GoDataSource
362  * @extends kValue
363  * @ingroup GoSdk
364  * @brief Represents a data source.
365  *
366  * The following enumerators are defined:
367  * #GO_DATA_SOURCE_NONE
368  * #GO_DATA_SOURCE_TOP
369  * #GO_DATA_SOURCE_BOTTOM
370  * #GO_DATA_SOURCE_TOP_LEFT
371  * #GO_DATA_SOURCE_TOP_RIGHT
372  * #GO_DATA_SOURCE_TOP_BOTTOM
373  * #GO_DATA_SOURCE_LEFT_RIGHT
374  */
375 typedef k32s GoDataSource;
376 /** @name GoDataSource
377  *@{*/
378 #define GO_DATA_SOURCE_NONE (-1) ///< Used to represent a buddy device when the buddy is not connected
379 #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
380 #define GO_DATA_SOURCE_BOTTOM (1) ///< Represents the buddy device in an opposite orientation buddy configuration
381 #define GO_DATA_SOURCE_TOP_LEFT (2) ///< Represents the main device in a wide or reverse orientation buddy configuration
382 #define GO_DATA_SOURCE_TOP_RIGHT (3) ///< Represents the buddy device in a wide or reverse orientation buddy configuration
383 #define GO_DATA_SOURCE_TOP_BOTTOM (4) ///< Represents both the main and buddy devices in a opposite orientation
384 #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)
385 /**@}*/
386 
387 /**
388  * @struct GoSpacingIntervalType
389  * @extends kValue
390  * @ingroup GoSdk
391  * @brief Represents spacing interval types.
392  *
393  * The following enumerators are defined:
394  * - #GO_SPACING_INTERVAL_TYPE_MAX_RES
395  * - #GO_SPACING_INTERVAL_TYPE_BALANCED
396  * - #GO_SPACING_INTERVAL_TYPE_MAX_SPEED
397  */
398 typedef k32s GoSpacingIntervalType;
399 /** @name GoSpacingIntervalType
400  *@{*/
401 #define GO_SPACING_INTERVAL_TYPE_MAX_RES (0) ///< Maximum resolution spacing interval type.
402 #define GO_SPACING_INTERVAL_TYPE_BALANCED (1) ///< Balanced spacing interval type.
403 #define GO_SPACING_INTERVAL_TYPE_MAX_SPEED (2) ///< Maximum speed spacing interval type.
404 /**@}*/
405 
406 /**
407  * @struct GoTriggerSource
408  * @extends kValue
409  * @ingroup GoSdk
410  * @brief Represents a trigger source type.
411  *
412  * The following enumerators are defined:
413  * - #GO_TRIGGER_SOURCE_TIME
414  * - #GO_TRIGGER_SOURCE_ENCODER
415  * - #GO_TRIGGER_SOURCE_INPUT
416  * - #GO_TRIGGER_SOURCE_SOFTWARE
417  */
418 typedef k32s GoTriggerSource;
419 /** @name GoTriggerSource
420  *@{*/
421 #define GO_TRIGGER_SOURCE_TIME (0) ///< Trigger on internal clock.
422 #define GO_TRIGGER_SOURCE_ENCODER (1) ///< Trigger on encoder.
423 #define GO_TRIGGER_SOURCE_INPUT (2) ///< Trigger on digital input.
424 #define GO_TRIGGER_SOURCE_SOFTWARE (3) ///< Trigger on software messages.
425 /**@}*/
426 
427 /**
428  * @struct GoAlignmentType
429  * @extends kValue
430  * @ingroup GoSdk
431  * @brief Represents an alignment type.
432  *
433  * The following enumerators are defined:
434  * - #GO_ALIGNMENT_TYPE_STATIONARY
435  * - #GO_ALIGNMENT_TYPE_MOVING
436  */
437 typedef k32s GoAlignmentType;
438 /** @name GoAlignmentType
439  *@{*/
440 #define GO_ALIGNMENT_TYPE_STATIONARY (0) ///< Stationary target alignment type.
441 #define GO_ALIGNMENT_TYPE_MOVING (1) ///< Moving target alignment type.
442 /**@}*/
443 
444 /**
445  * @struct GoAlignmentTarget
446  * @extends kValue
447  * @ingroup GoSdk
448  * @brief Represents a alignment target type.
449  *
450  * The following enumerators are defined:
451  * - #GO_ALIGNMENT_TARGET_NONE
452  * - #GO_ALIGNMENT_TARGET_DISK
453  * - #GO_ALIGNMENT_TARGET_BAR
454  * - #GO_ALIGNMENT_TARGET_PLATE
455  */
456 typedef k32s GoAlignmentTarget;
457 /** @name GoAlignmentTarget
458  *@{*/
459 #define GO_ALIGNMENT_TARGET_NONE (0) ///< No calibration target.
460 #define GO_ALIGNMENT_TARGET_DISK (1) ///< Calibration disk.
461 #define GO_ALIGNMENT_TARGET_BAR (2) ///< Calibration bar.
462 #define GO_ALIGNMENT_TARGET_PLATE (3) ///< Calibration plate.
463 /**@}*/
464 
465 
466 /**
467  * @struct GoReplayExportSourceType
468  * @extends kValue
469  * @ingroup GoSdk
470  * @brief Represents the replay export source type.
471  *
472  * The following enumerators are defined:
473  * - #GO_REPLAY_EXPORT_SOURCE_PRIMARY
474  * - #GO_REPLAY_EXPORT_SOURCE_INTENSITY
475  */
476 typedef k32s GoReplayExportSourceType;
477 /** @name GoReplayExportSourceType
478  *@{*/
479 #define GO_REPLAY_EXPORT_SOURCE_PRIMARY (0) ///< Primary data(relevant to the current scan mode) replay export.
480 #define GO_REPLAY_EXPORT_SOURCE_INTENSITY (1) ///< Intensity data replay export.
481 /**@}*/
482 
483 /**
484  * @struct GoFamily
485  * @extends kValue
486  * @ingroup GoSdk
487  * @brief Represents the supported Gocator hardware families.
488  *
489  * The following enumerators are defined:
490  * - #GO_FAMILY_1000
491  * - #GO_FAMILY_2000
492  * - #GO_FAMILY_3000
493  */
494 typedef k32s GoFamily;
495 /** @name GoFamily
496  *@{*/
497 #define GO_FAMILY_1000 (0) ///< 1x00 series sensors.
498 #define GO_FAMILY_2000 (1) ///< 2x00 series sensors.
499 #define GO_FAMILY_3000 (2) ///< 3x00 series sensors.
500 /**@}*/
501 
502 /**
503  * @struct GoDecision
504  * @extends kValue
505  * @ingroup GoSdk
506  * @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.
507  * @see GoDecisionCode
508  *
509  * The following enumerators are defined:
510  * - #GO_DECISION_FAIL
511  * - #GO_DECISION_PASS
512  */
513 typedef k8u GoDecision;
514 /** @name GoDecision
515  *@{*/
516 #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.
517 #define GO_DECISION_PASS (1) ///< The measurement value is valid and it falls within the defined passing decision range.
518 /**@}*/
519 
520 
521 /**
522  * @struct GoDecisionCode
523  * @extends kValue
524  * @ingroup GoSdk
525  * @brief Represents the possible measurement decision codes.
526  *
527  * The following enumerators are defined:
528  * - #GO_DECISION_CODE_OK
529  * - #GO_DECISION_CODE_INVALID_ANCHOR
530  * - #GO_DECISION_CODE_INVALID_VALUE
531  */
532 typedef k8u GoDecisionCode;
533 /** @name GoDecisionCode
534  *@{*/
535 #define GO_DECISION_CODE_OK (0) ///< The measurement value is valid and it falls outside the defined passing decision range.
536 #define GO_DECISION_CODE_INVALID_VALUE (1) ///< The measurement value is invalid.
537 #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).
538 /**@}*/
539 
540 
541 /**
542  * @struct GoStates
543  * @extends kValue
544  * @ingroup GoSdk
545  * @brief Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
546  */
547 typedef struct GoStates
548 {
549  GoState sensorState; ///< The state of the sensor.
550  GoUser loginType; ///< The logged in user.
551  GoAlignmentRef alignmentReference; ///< The alignment reference of the sensor.
552  GoAlignmentState alignmentState; ///< The alignment state of the sensor.
553  kBool recordingEnabled; ///< The current state of recording on the sensor.
554  k32u playbackSource; ///< The current playback source of the sensor.
555  k32u uptimeSec; ///< Sensor uptime in seconds.
556  k32u uptimeMicrosec; ///< Sensor uptime in microseconds.
557  k32u playbackPos; ///< The playback position index.
558  k32u playbackCount; ///< The playback count.
559  kBool autoStartEnabled; ///< The auto-start enabled state.
560 } GoStates;
561 
562 /**
563  * @struct GoAddressInfo
564  * @extends kValue
565  * @ingroup GoSdk
566  * @brief Sensor network address settings.
567  */
568 typedef struct GoAddressInfo
569 {
570  kBool useDhcp; ///< Sensor uses DHCP?
571  kIpAddress address; ///< Sensor IP address.
572  kIpAddress mask; ///< Sensor subnet bit-mask.
573  kIpAddress gateway; ///< Sensor gateway address.
574 } GoAddressInfo;
575 
576 /**
577  * @struct GoElement64f
578  * @extends kValue
579  * @ingroup GoSdk
580  * @brief Represents a 64-bit floating point configuration element with a range and enabled state.
581  */
582 typedef struct GoElement64f
583 {
584  kBool enabled; ///< Represents whether the element value is currently used. (not always applicable)
585  k64f systemValue; ///< The system value. (not always applicable)
586  k64f value; ///< The element's double field value.
587  k64f max; ///< The maximum allowable value that can be set for this element.
588  k64f min; ///< The minimum allowable value that can be set for this element.
589 } GoElement64f;
590 
591 /**
592  * @struct GoElement32u
593  * @extends kValue
594  * @ingroup GoSdk
595  * @brief Represents a 32-bit unsigned integer configuration element with a range and enabled state.
596  */
597 typedef struct GoElement32u
598 {
599  kBool enabled; ///< Represents whether the element value is currently used.
600  k32u systemValue; ///< The system value. (not always applicable)
601  k32u value; ///< The element's 32-bit unsigned field value.
602  k32u max; ///< The maximum allowable value that can be set for this element.
603  k32u min; ///< The minimum allowable value that can be set for this element.
604 } GoElement32u;
605 
606 /**
607  * @struct GoActiveAreaConfig
608  * @extends kValue
609  * @ingroup GoSdk
610  * @brief Represents an active area configuration element.
611  */
612 typedef struct GoActiveAreaConfig
613 {
614  GoElement64f x; ///< The X offset of the active area.
615  GoElement64f y; ///< The Y offset of the active area.
616  GoElement64f z; ///< The Z offset of the active area.
617  GoElement64f height; ///< The height of the active area.
618  GoElement64f length; ///< The length of the active area.
619  GoElement64f width; ///< The width of the active area.
621 
622 /**
623  * @struct GoTransformation
624  * @extends kValue
625  * @ingroup GoSdk
626  * @brief Represents an alignment element.
627  */
628 typedef struct GoTransformation
629 {
630  k64f x; ///< The X offset of the transformation.
631  k64f y; ///< The Y offset of the transformation.
632  k64f z; ///< The Z offset of the transformation.
633  k64f xAngle; ///< The X angle of the transformation.
634  k64f yAngle; ///< The Y angle of the transformation.
635  k64f zAngle; ///< The Z angle of the transformation.
637 
638 /**
639  * @struct GoTransformedDataRegion
640  * @extends kValue
641  * @ingroup GoSdk
642  * @brief Represents a transformed data region.
643  */
645 {
646  k64f x; ///< The X offset of the transformed data region.
647  k64f y; ///< The Y offset of the transformed data region.
648  k64f z; ///< The Z offset of the transformed data region.
649  k64f width; ///< The width of the transformed data region.
650  k64f length; ///< The length of the transformed data region.
651  k64f height; ///< The height of the transformed data region.
653 
654 
655 /**
656  * @struct GoAsciiOperation
657  * @extends kValue
658  * @ingroup GoSdk-Output
659  * @brief Represents an ASCII protocol operational type.
660  *
661  * The following enumerators are defined:
662  * - #GO_ASCII_OPERATION_ASYNCHRONOUS
663  * - #GO_ASCII_OPERATION_POLLING
664  */
665 typedef k32s GoAsciiOperation;
666 /** @name GoAsciiOperation
667  *@{*/
668 #define GO_ASCII_OPERATION_ASYNCHRONOUS (0) ///< Selected measurement output will be sent upon sensor start.
669 #define GO_ASCII_OPERATION_POLLING (1) ///< Measurement output will only be sent as requested.
670 /**@}*/
671 
672 /**
673  * @struct GoSelcomFormat
674  * @extends kValue
675  * @ingroup GoSdk-Serial
676  * @brief Represents the selcom format followed on the serial output.
677  *
678  * The following enumerators are defined:
679  * - #GO_SELCOM_FORMAT_SLS
680  * - #GO_SELCOM_FORMAT_12BIT_ST
681  * - #GO_SELCOM_FORMAT_14BIT
682  * - #GO_SELCOM_FORMAT_14BIT_ST
683  */
684 typedef k32s GoSelcomFormat;
685 /** @name GoSelcomFormat
686  *@{*/
687 #define GO_SELCOM_FORMAT_SLS (0) ///< Selcom uses the SLS format
688 #define GO_SELCOM_FORMAT_12BIT_ST (1) ///< Selcom uses the 12-Bit Search/Track format
689 #define GO_SELCOM_FORMAT_14BIT (2) ///< Selcom uses the 14-Bit format
690 #define GO_SELCOM_FORMAT_14BIT_ST (3) ///< Selcom uses the 14-Bit Search/Track format
691 /**@}*/
692 
693 /**
694  * @struct GoSerialProtocol
695  * @extends kValue
696  * @ingroup GoSdk-Serial
697  * @brief Represents all serial output protocols.
698  *
699  * The following enumerators are defined:
700  * - #GO_SERIAL_PROTOCOL_GOCATOR
701  * - #GO_SERIAL_PROTOCOL_SELCOM
702  */
703 typedef k32s GoSerialProtocol;
704 /** @name GoSerialProtocol
705  *@{*/
706 #define GO_SERIAL_PROTOCOL_GOCATOR (0) ///< Gocator serial protocol.
707 #define GO_SERIAL_PROTOCOL_SELCOM (1) ///< Selcom serial protocol.
708 /**@}*/
709 
710 
711 /**
712  * @struct GoAnalogTrigger
713  * @extends kValue
714  * @ingroup GoSdk-Analog
715  * @brief Represents an analog output trigger.
716  *
717  * The following enumerators are defined:
718  * - #GO_ANALOG_TRIGGER_MEASUREMENT
719  * - #GO_ANALOG_TRIGGER_SOFTWARE
720  */
721 typedef k32s GoAnalogTrigger;
722 /** @name GoAnalogTrigger
723  *@{*/
724 #define GO_ANALOG_TRIGGER_MEASUREMENT (0) ///< Analog output triggered by measurement data.
725 #define GO_ANALOG_TRIGGER_SOFTWARE (1) ///< Analog output triggered by software.
726 /**@}*/
727 
728 /**
729  * @struct GoDigitalPass
730  * @extends kValue
731  * @ingroup GoSdk-Digital
732  * @brief Represents a digital output condition.
733  *
734  * The following enumerators are defined:
735  * - #GO_DIGITAL_PASS_TRUE
736  * - #GO_DIGITAL_PASS_FALSE
737  * - #GO_DIGITAL_PASS_ALWAYS
738  */
739 typedef k32s GoDigitalPass;
740 /** @name GoDigitalPass
741  *@{*/
742 #define GO_DIGITAL_PASS_TRUE (0) ///< Digital output triggers when all selected measurements pass.
743 #define GO_DIGITAL_PASS_FALSE (1) ///< Digital output triggers when all selected measurements fail.
744 #define GO_DIGITAL_PASS_ALWAYS (2) ///< Digital output triggers on every scan.
745 /**@}*/
746 
747 /**
748  * @struct GoDigitalSignal
749  * @extends kValue
750  * @ingroup GoSdk-Digital
751  * @brief Represents a digital output signal type.
752  *
753  * The following enumerators are defined:
754  * - #GO_DIGITAL_SIGNAL_PULSED
755  * - #GO_DIGITAL_SIGNAL_CONTINUOUS
756  */
757 typedef k32s GoDigitalSignal;
758 /** @name GoDigitalSignal
759  *@{*/
760 #define GO_DIGITAL_SIGNAL_PULSED (0) ///< Digital output is pulsed when triggered.
761 #define GO_DIGITAL_SIGNAL_CONTINUOUS (1) ///< Digital output is continuous when triggered.
762 /**@}*/
763 
764 /**
765  * @struct GoDigitalEvent
766  * @extends kValue
767  * @ingroup GoSdk-Digital
768  * @brief Represents a digital output event.
769  *
770  * The following enumerators are defined:
771  * - #GO_DIGITAL_EVENT_MEASUREMENT
772  * - #GO_DIGITAL_EVENT_SOFTWARE
773  */
774 typedef k32s GoDigitalEvent;
775 /** @name GoDigitalEvent
776  *@{*/
777 #define GO_DIGITAL_EVENT_MEASUREMENT (1) ///< Digital output is triggered by measurement data.
778 #define GO_DIGITAL_EVENT_SOFTWARE (2) ///< Digital output is triggered by software.
779 /**@}*/
780 
781 /**
782  * @struct GoAnalogEvent
783  * @extends kValue
784  * @ingroup GoSdk-Analog
785  * @brief Represents a analog output event.
786  *
787  * The following enumerators are defined:
788  * - #GO_ANALOG_EVENT_MEASURMENT
789  * - #GO_ANALOG_EVENT_SOFTWARE
790  */
791 typedef k32s GoAnalogEvent;
792 /** @name GoAnalogEvent
793  *@{*/
794 #define GO_ANALOG_EVENT_MEASURMENT (1) ///< Analog output is triggered by measurement data.
795 #define GO_ANALOG_EVENT_SOFTWARE (2) ///< Analog output is triggered by software.
796 /**@}*/
797 
798 /**
799  * @struct GoEthernetProtocol
800  * @extends kValue
801  * @ingroup GoSdk-Ethernet
802  * @brief Represents a ethernet output protocol.
803  *
804  * The following enumerators are defined:
805  * - #GO_ETHERNET_PROTOCOL_GOCATOR
806  * - #GO_ETHERNET_PROTOCOL_MODBUS
807  * - #GO_ETHERNET_PROTOCOL_ETHERNET_IP
808  * - #GO_ETHERNET_PROTOCOL_ASCII
809  */
810 typedef k32s GoEthernetProtocol;
811 /** @name GoEthernetProtocol
812  *@{*/
813 #define GO_ETHERNET_PROTOCOL_GOCATOR (0) ///< Gocator ethernet protocol.
814 #define GO_ETHERNET_PROTOCOL_MODBUS (1) ///< Modbus ethernet protocol.
815 #define GO_ETHERNET_PROTOCOL_ETHERNET_IP (2) ///< EthernetIP ethernet protocol.
816 #define GO_ETHERNET_PROTOCOL_ASCII (3) ///< ASCII ethernet protocol.
817 /**@}*/
818 
819 /**
820  * @struct GoOutputSource
821  * @extends kValue
822  * @ingroup GoSdk-Output
823  * @brief Represents output sources.
824  *
825  * The following enumerators are defined:
826  * - #GO_OUTPUT_SOURCE_NONE
827  * - #GO_OUTPUT_SOURCE_VIDEO
828  * - #GO_OUTPUT_SOURCE_RANGE
829  * - #GO_OUTPUT_SOURCE_PROFILE
830  * - #GO_OUTPUT_SOURCE_SURFACE
831  * - #GO_OUTPUT_SOURCE_RANGE_INTENSITY
832  * - #GO_OUTPUT_SOURCE_PROFILE_INTENSITY
833  * - #GO_OUTPUT_SOURCE_SURFACE_INTENSITY
834  * - #GO_OUTPUT_SOURCE_MEASUREMENT
835  */
836 typedef k32s GoOutputSource;
837 /** @name GoOutputSource
838  *@{*/
839 #define GO_OUTPUT_SOURCE_NONE (0) ///< Unknown output source.
840 #define GO_OUTPUT_SOURCE_VIDEO (1) ///< Output video data.
841 #define GO_OUTPUT_SOURCE_RANGE (2) ///< Output range data.
842 #define GO_OUTPUT_SOURCE_PROFILE (3) ///< Output profile data.
843 #define GO_OUTPUT_SOURCE_SURFACE (4) ///< Output surface data.
844 #define GO_OUTPUT_SOURCE_RANGE_INTENSITY (5) ///< Output range intensity data.
845 #define GO_OUTPUT_SOURCE_PROFILE_INTENSITY (6) ///< Output profile intensity data.
846 #define GO_OUTPUT_SOURCE_SURFACE_INTENSITY (7) ///< Output surface intensity data.
847 #define GO_OUTPUT_SOURCE_MEASUREMENT (8) ///< Output measurement data.
848 /**@}*/
849 
850 /**
851  * @struct GoOutputDelayDomain
852  * @extends kValue
853  * @ingroup GoSdk-Output
854  * @brief Represents an output delay domain.
855  *
856  * The following enumerators are defined:
857  * - #GO_OUTPUT_DELAY_DOMAIN_TIME
858  * - #GO_OUTPUT_DELAY_DOMAIN_ENCODER
859  */
860 typedef k32s GoOutputDelayDomain;
861 /** @name GoOutputDelayDomain
862  *@{*/
863 #define GO_OUTPUT_DELAY_DOMAIN_TIME (0) ///< Time(uS) based delay domain.
864 #define GO_OUTPUT_DELAY_DOMAIN_ENCODER (1) ///< Encoder tick delay domain.
865 /**@}*/
866 
867 /**
868  * @struct GoPixelType
869  * @ingroup GoSdk
870  * @brief Represents a video message pixel type.
871  *
872  * The following enumerators are defined:
873  * - #GO_PIXEL_TYPE_8U
874  * - #GO_PIXEL_TYPE_RGB
875  */
876 typedef k32s GoPixelType;
877 /** @name GoPixelType
878  *@{*/
879 #define GO_PIXEL_TYPE_8U (0) ///< Each pixel is represented as unsigned 8-bit values.
880 #define GO_PIXEL_TYPE_RGB (1) ///< Each pixel is represented as three unsigned 8-bit values.
881 /**@}*/
882 
883 /**
884  * @struct GoToolType
885  * @extends kValue
886  * @ingroup GoSdk-Tools
887  * @brief Lists all tool types.
888  *
889  * The following enumerators are defined:
890  * - #GO_TOOL_UNKNOWN
891  * - #GO_TOOL_RANGE_POSITION
892  * - #GO_TOOL_RANGE_THICKNESS
893  * - #GO_TOOL_PROFILE_AREA
894  * - #GO_TOOL_PROFILE_CIRCLE
895  * - #GO_TOOL_PROFILE_DIMENSION
896  * - #GO_TOOL_PROFILE_GROOVE
897  * - #GO_TOOL_PROFILE_INTERSECT
898  * - #GO_TOOL_PROFILE_LINE
899  * - #GO_TOOL_PROFILE_PANEL
900  * - #GO_TOOL_PROFILE_POSITION
901  * - #GO_TOOL_PROFILE_STRIP
902  * - #GO_TOOL_SURFACE_BOUNDING_BOX
903  * - #GO_TOOL_SURFACE_ELLIPSE
904  * - #GO_TOOL_SURFACE_HOLE
905  * - #GO_TOOL_SURFACE_OPENING
906  * - #GO_TOOL_SURFACE_PLANE
907  * - #GO_TOOL_SURFACE_POSITION
908  * - #GO_TOOL_SURFACE_STUD
909  * - #GO_TOOL_SURFACE_VOLUME
910  * - #GO_TOOL_SCRIPT
911  */
912 typedef k32s GoToolType;
913 /** @name GoToolType
914  *@{*/
915 #define GO_TOOL_UNKNOWN (-1) ///< Unknown tool.
916 #define GO_TOOL_RANGE_POSITION (0) ///< Range Position tool.
917 #define GO_TOOL_RANGE_THICKNESS (1) ///< Range Thickness tool.
918 #define GO_TOOL_PROFILE_AREA (2) ///< Profile Area tool.
919 #define GO_TOOL_PROFILE_CIRCLE (3) ///< Profile Circle tool.
920 #define GO_TOOL_PROFILE_DIMENSION (4) ///< Profile Dimension tool.
921 #define GO_TOOL_PROFILE_GROOVE (5) ///< Profile Groove tool.
922 #define GO_TOOL_PROFILE_INTERSECT (6) ///< Profile Intersect tool.
923 #define GO_TOOL_PROFILE_LINE (7) ///< Profile Line tool.
924 #define GO_TOOL_PROFILE_PANEL (8) ///< Profile Panel tool.
925 #define GO_TOOL_PROFILE_POSITION (9) ///< Profile Position tool.
926 #define GO_TOOL_PROFILE_STRIP (10) ///< Profile Strip tool.
927 #define GO_TOOL_SURFACE_BOUNDING_BOX (11) ///< Surface Bounding Box tool.
928 #define GO_TOOL_SURFACE_ELLIPSE (12) ///< Surface Ellipse tool.
929 #define GO_TOOL_SURFACE_HOLE (13) ///< Surface Hole tool.
930 #define GO_TOOL_SURFACE_OPENING (14) ///< Surface Opening tool.
931 #define GO_TOOL_SURFACE_PLANE (15) ///< Surface Plane tool.
932 #define GO_TOOL_SURFACE_POSITION (16) ///< Surface Position tool.
933 #define GO_TOOL_SURFACE_STUD (17) ///< Surface Stud tool.
934 #define GO_TOOL_SURFACE_VOLUME (18) ///< Surface Volume tool.
935 #define GO_TOOL_SCRIPT (19) ///< Script tool.
936 /**@}*/
937 
938 
939 /**
940  * @struct GoMeasurementType
941  * @extends kValue
942  * @ingroup GoSdk-Tools
943  * @brief Lists all measurement types.
944  *
945  * The following enumerators are defined:
946  * - #GO_MEASUREMENT_UNKNOWN
947  * - #GO_MEASUREMENT_RANGE_POSITION_Z
948  * - #GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS
949  * - #GO_MEASUREMENT_PROFILE_AREA_AREA
950  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_X
951  * - #GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z
952  * - #GO_MEASUREMENT_PROFILE_CIRCLE_X
953  * - #GO_MEASUREMENT_PROFILE_CIRCLE_Z
954  * - #GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS
955  * - #GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH
956  * - #GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT
957  * - #GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE
958  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X
959  * - #GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z
960  * - #GO_MEASUREMENT_PROFILE_GROOVE_X
961  * - #GO_MEASUREMENT_PROFILE_GROOVE_Z
962  * - #GO_MEASUREMENT_PROFILE_GROOVE_WIDTH
963  * - #GO_MEASUREMENT_PROFILE_GROOVE_DEPTH
964  * - #GO_MEASUREMENT_PROFILE_INTERSECT_X
965  * - #GO_MEASUREMENT_PROFILE_INTERSECT_Z
966  * - #GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE
967  * - #GO_MEASUREMENT_PROFILE_LINE_STDDEV
968  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN
969  * - #GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX
970  * - #GO_MEASUREMENT_PROFILE_LINE_PERCENTILE
971  * - #GO_MEASUREMENT_PROFILE_PANEL_GAP
972  * - #GO_MEASUREMENT_PROFILE_PANEL_FLUSH
973  * - #GO_MEASUREMENT_PROFILE_POSITION_X
974  * - #GO_MEASUREMENT_PROFILE_POSITION_Z
975  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_X
976  * - #GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z
977  * - #GO_MEASUREMENT_PROFILE_STRIP_WIDTH
978  * - #GO_MEASUREMENT_PROFILE_STRIP_HEIGHT
979  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X
980  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y
981  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z
982  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE
983  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT
984  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH
985  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH
986  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X
987  * - #GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y
988  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR
989  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR
990  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO
991  * - #GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE
992  * - #GO_MEASUREMENT_SURFACE_HOLE_X
993  * - #GO_MEASUREMENT_SURFACE_HOLE_Y
994  * - #GO_MEASUREMENT_SURFACE_HOLE_Z
995  * - #GO_MEASUREMENT_SURFACE_HOLE_RADIUS
996  * - #GO_MEASUREMENT_SURFACE_OPENING_X
997  * - #GO_MEASUREMENT_SURFACE_OPENING_Y
998  * - #GO_MEASUREMENT_SURFACE_OPENING_Z
999  * - #GO_MEASUREMENT_SURFACE_OPENING_WIDTH
1000  * - #GO_MEASUREMENT_SURFACE_OPENING_LENGTH
1001  * - #GO_MEASUREMENT_SURFACE_OPENING_ANGLE
1002  * - #GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE
1003  * - #GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE
1004  * - #GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET
1005  * - #GO_MEASUREMENT_SURFACE_POSITION_X
1006  * - #GO_MEASUREMENT_SURFACE_POSITION_Y
1007  * - #GO_MEASUREMENT_SURFACE_POSITION_Z
1008  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_X
1009  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Y
1010  * - #GO_MEASUREMENT_SURFACE_STUD_BASE_Z
1011  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_X
1012  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Y
1013  * - #GO_MEASUREMENT_SURFACE_STUD_TIP_Z
1014  * - #GO_MEASUREMENT_SURFACE_STUD_RADIUS
1015  * - #GO_MEASUREMENT_SURFACE_VOLUME_AREA
1016  * - #GO_MEASUREMENT_SURFACE_VOLUME_VOLUME
1017  * - #GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS
1018  * - #GO_MEASUREMENT_SCRIPT_OUTPUT
1019  */
1020 typedef k32s GoMeasurementType;
1021 /** @name GoMeasurementType
1022  *@{*/
1023 #define GO_MEASUREMENT_UNKNOWN (-1) ///< Unknown measurement.
1024 #define GO_MEASUREMENT_RANGE_POSITION_Z (0) ///< Range Position tool Z measurement.
1025 #define GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS (1) ///< Range Thickness tool Thickness measurement.
1026 #define GO_MEASUREMENT_PROFILE_AREA_AREA (2) ///< Profile Area tool Area measurement.
1027 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_X (3) ///< Profile Area tool Centroid X measurement.
1028 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z (4) ///< Profile Area tool Centroid Z measurement.
1029 #define GO_MEASUREMENT_PROFILE_CIRCLE_X (5) ///< Profile Circle tool X measurement.
1030 #define GO_MEASUREMENT_PROFILE_CIRCLE_Z (6) ///< Profile Circle tool Z measurement.
1031 #define GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS (7) ///< Profile Circle tool Radius measurement.
1032 #define GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH (8) ///< Profile Dimension tool Width measurement.
1033 #define GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT (9) ///< Profile Dimension tool Height measurement.
1034 #define GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE (10) ///< Profile Dimension tool Distance measurement.
1035 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X (11) ///< Profile Dimension tool Center X measurement.
1036 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z (12) ///< Profile Dimension tool Center Z measurement.
1037 #define GO_MEASUREMENT_PROFILE_GROOVE_X (13) ///< Profile Groove tool X measurement.
1038 #define GO_MEASUREMENT_PROFILE_GROOVE_Z (14) ///< Profile Groove tool Z measurement.
1039 #define GO_MEASUREMENT_PROFILE_GROOVE_WIDTH (15) ///< Profile Groove tool Width measurement.
1040 #define GO_MEASUREMENT_PROFILE_GROOVE_DEPTH (16) ///< Profile Groove tool Depth measurement.
1041 #define GO_MEASUREMENT_PROFILE_INTERSECT_X (17) ///< Profile Intersect tool X measurement.
1042 #define GO_MEASUREMENT_PROFILE_INTERSECT_Z (18) ///< Profile Intersect tool Z measurement.
1043 #define GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE (19) ///< Profile Intersect tool Angle measurement.
1044 #define GO_MEASUREMENT_PROFILE_LINE_STDDEV (20) ///< Profile Line tool Standard Deviation measurement.
1045 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN (21) ///< Profile Line tool Minimum Error measurement.
1046 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX (22) ///< Profile Line tool Maximum Error measurement.
1047 #define GO_MEASUREMENT_PROFILE_LINE_PERCENTILE (23) ///< Profile Line tool Percentile measurement.
1048 #define GO_MEASUREMENT_PROFILE_PANEL_GAP (24) ///< Profile Panel tool Gap measurement.
1049 #define GO_MEASUREMENT_PROFILE_PANEL_FLUSH (25) ///< Profile Panel tool Flush measurement.
1050 #define GO_MEASUREMENT_PROFILE_POSITION_X (26) ///< Profile Position tool X measurement.
1051 #define GO_MEASUREMENT_PROFILE_POSITION_Z (27) ///< Profile Position tool Z measurement.
1052 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_X (28) ///< Profile Strip tool X Position measurement.
1053 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z (29) ///< Profile Strip tool Z Position measurement.
1054 #define GO_MEASUREMENT_PROFILE_STRIP_WIDTH (30) ///< Profile Strip tool Width measurement.
1055 #define GO_MEASUREMENT_PROFILE_STRIP_HEIGHT (31) ///< Profile Strip tool Height measurement.
1056 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X (32) ///< Surface Bounding Box X measurement.
1057 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y (33) ///< Surface Bounding Box Y measurement.
1058 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z (34) ///< Surface Bounding Box Z measurement.
1059 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE (35) ///< Surface Bounding Box Z Angle measurement.
1060 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT (36) ///< Surface Bounding Box Height measurement.
1061 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH (37) ///< Surface Bounding Box Width measurement.
1062 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH (38) ///< Surface Bounding Box Length measurement.
1063 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_X (39) ///< Surface Bounding Box Global X measurement.
1064 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBAL_Y (40) ///< Surface Bounding Box Global Y measurement.
1065 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR (41) ///< Surface Ellipse tool Major measurement.
1066 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR (42) ///< Surface Ellipse tool Minor measurement.
1067 #define GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO (43) ///< Surface Ellipse tool Ratio measurement.
1068 #define GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE (44) ///< Surface Ellipse tool Z Angle measurement.
1069 #define GO_MEASUREMENT_SURFACE_HOLE_X (45) ///< Surface Hole tool X measurement.
1070 #define GO_MEASUREMENT_SURFACE_HOLE_Y (46) ///< Surface Hole tool Y measurement.
1071 #define GO_MEASUREMENT_SURFACE_HOLE_Z (47) ///< Surface Hole tool Z measurement.
1072 #define GO_MEASUREMENT_SURFACE_HOLE_RADIUS (48) ///< Surface Hole tool Radius measurement.
1073 #define GO_MEASUREMENT_SURFACE_OPENING_X (49) ///< Surface Opening tool X measurement.
1074 #define GO_MEASUREMENT_SURFACE_OPENING_Y (50) ///< Surface Opening tool Y measurement.
1075 #define GO_MEASUREMENT_SURFACE_OPENING_Z (51) ///< Surface Opening tool Z measurement.
1076 #define GO_MEASUREMENT_SURFACE_OPENING_WIDTH (52) ///< Surface Opening tool Width measurement.
1077 #define GO_MEASUREMENT_SURFACE_OPENING_LENGTH (53) ///< Surface Opening tool Length measurement.
1078 #define GO_MEASUREMENT_SURFACE_OPENING_ANGLE (54) ///< Surface Opening tool Angle measurement.
1079 #define GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE (55) ///< Surface Plane tool X Angle measurement.
1080 #define GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE (56) ///< Surface Plane tool Y Angle measurement.
1081 #define GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET (57) ///< Surface Plane tool Z Offset measurement.
1082 #define GO_MEASUREMENT_SURFACE_POSITION_X (58) ///< Surface Position tool X measurement.
1083 #define GO_MEASUREMENT_SURFACE_POSITION_Y (59) ///< Surface Position tool Y measurement.
1084 #define GO_MEASUREMENT_SURFACE_POSITION_Z (60) ///< Surface Position tool Z measurement.
1085 #define GO_MEASUREMENT_SURFACE_STUD_BASE_X (61) ///< Surface Stud tool Base X measurement.
1086 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Y (62) ///< Surface Stud tool Base Y measurement.
1087 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Z (63) ///< Surface Stud tool Base Z measurement.
1088 #define GO_MEASUREMENT_SURFACE_STUD_TIP_X (64) ///< Surface Stud tool Tip X measurement.
1089 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Y (65) ///< Surface Stud tool Tip Y measurement.
1090 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Z (66) ///< Surface Stud tool Tip Z measurement.
1091 #define GO_MEASUREMENT_SURFACE_STUD_RADIUS (67) ///< Surface Stud tool Radius measurement.
1092 #define GO_MEASUREMENT_SURFACE_VOLUME_AREA (68) ///< Surface Volume tool Area measurement.
1093 #define GO_MEASUREMENT_SURFACE_VOLUME_VOLUME (69) ///< Surface Volume tool Volume measurement.
1094 #define GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS (70) ///< Surface Volume tool Thickness measurement.
1095 #define GO_MEASUREMENT_SCRIPT_OUTPUT (71) ///< Script tool Output.
1096 /**@}*/
1097 
1098 
1099 /**
1100  * @struct GoDataMessageType
1101  * @extends kValue
1102  * @ingroup GoSdk-DataChannel
1103  * @brief Lists all data message types.
1104  *
1105  * The following enumerators are defined:
1106  * - #GO_DATA_MESSAGE_TYPE_UNKNOWN
1107  * - #GO_DATA_MESSAGE_TYPE_STAMP
1108  * - #GO_DATA_MESSAGE_TYPE_HEALTH
1109  * - #GO_DATA_MESSAGE_TYPE_VIDEO
1110  * - #GO_DATA_MESSAGE_TYPE_RANGE
1111  * - #GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY
1112  * - #GO_DATA_MESSAGE_TYPE_PROFILE
1113  * - #GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY
1114  * - #GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE
1115  * - #GO_DATA_MESSAGE_TYPE_SURFACE
1116  * - #GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY
1117  * - #GO_DATA_MESSAGE_TYPE_MEASUREMENT
1118  * - #GO_DATA_MESSAGE_TYPE_ALIGNMENT
1119  * - #GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL
1120  */
1121 typedef k32s GoDataMessageType;
1122 /** @name GoDataMessageType
1123  *@{*/
1124 #define GO_DATA_MESSAGE_TYPE_UNKNOWN (-1) ///< Unknown message type.
1125 #define GO_DATA_MESSAGE_TYPE_STAMP (0) ///< Stamp message type.
1126 #define GO_DATA_MESSAGE_TYPE_HEALTH (1) ///< Health message type.
1127 #define GO_DATA_MESSAGE_TYPE_VIDEO (2) ///< Video message type.
1128 #define GO_DATA_MESSAGE_TYPE_RANGE (3) ///< Range message type.
1129 #define GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY (4) ///< Range Intensity message type.
1130 #define GO_DATA_MESSAGE_TYPE_PROFILE (5) ///< Profile message type.
1131 #define GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY (6) ///< Profile(or Resampled if uniform spacing is enabled) Intensity message type.
1132 #define GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE (7) ///< Resampled Profile message type.
1133 #define GO_DATA_MESSAGE_TYPE_SURFACE (8) ///< Surface message type.
1134 #define GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY (9) ///< Surface Intensity message type.
1135 #define GO_DATA_MESSAGE_TYPE_MEASUREMENT (10) ///< Measurement message type.
1136 #define GO_DATA_MESSAGE_TYPE_ALIGNMENT (11) ///< Alignment result message type.
1137 #define GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL (12) ///< Exposure AutoSet/Calibration result message type.
1138 /**@}*/
1139 
1140 /// @cond (Gocator_2x00)
1141 /**
1142  * @struct GoProfileStripBaseType
1143  * @extends kValue
1144  * @ingroup GoSdk-ProfileTools
1145  * @brief Represents a profile strip tool base type.
1146  *
1147  * The following enumerators are defined:
1148  * - #GO_PROFILE_STRIP_BASE_TYPE_NONE
1149  * - #GO_PROFILE_STRIP_BASE_TYPE_FLAT
1150  */
1151 typedef k32s GoProfileStripBaseType;
1152 /** @name GoProfileStripBaseType
1153  *@{*/
1154 #define GO_PROFILE_STRIP_BASE_TYPE_NONE (0) ///< No strip base type.
1155 #define GO_PROFILE_STRIP_BASE_TYPE_FLAT (1) ///< Flat strip base type.
1156 /**@}*/
1157 
1158 /**
1159  * @struct GoProfileStripEdgeType
1160  * @extends kValue
1161  * @ingroup GoSdk-ProfileTools
1162  * @brief Represents a profile strip tool edge type.
1163  *
1164  * The following enumerators are defined:
1165  * - #GO_PROFILE_STRIP_EDGE_TYPE_RISING
1166  * - #GO_PROFILE_STRIP_EDGE_TYPE_FALLING
1167  * - #GO_PROFILE_STRIP_EDGE_TYPE_DATA_END
1168  * - #GO_PROFILE_STRIP_EDGE_TYPE_VOID
1169  */
1170 typedef k32s GoProfileStripEdgeType;
1171 /** @name GoProfileStripEdgeType
1172  *@{*/
1173 #define GO_PROFILE_STRIP_EDGE_TYPE_RISING (1) ///< Rising strip edge type.
1174 #define GO_PROFILE_STRIP_EDGE_TYPE_FALLING (2) ///< Falling strip edge type.
1175 #define GO_PROFILE_STRIP_EDGE_TYPE_DATA_END (4) ///< Data end strip edge type.
1176 #define GO_PROFILE_STRIP_EDGE_TYPE_VOID (8) ///< Void strip edge type.
1177 /**@}*/
1178 
1179 
1180 /**
1181  * @struct GoProfileFeatureType
1182  * @ingroup GoSdk-ProfileTools
1183  * @brief Represents a profile feature point type.
1184  */
1185 typedef k32s GoProfileFeatureType;
1186 /** @name GoProfileFeatureType
1187  *@{*/
1188 #define GO_PROFILE_FEATURE_TYPE_MAX_Z (0) ///< Point with the maximum Z value.
1189 #define GO_PROFILE_FEATURE_TYPE_MIN_Z (1) ///< Point with the minimum Z value.
1190 #define GO_PROFILE_FEATURE_TYPE_MIN_X (2) ///< Point with the maximum X value.
1191 #define GO_PROFILE_FEATURE_TYPE_MAX_X (3) ///< Point with the minimum X value.
1192 #define GO_PROFILE_FEATURE_TYPE_CORNER (4) ///< Dominant corner.
1193 #define GO_PROFILE_FEATURE_TYPE_AVERAGE (5) ///< Average of points.
1194 #define GO_PROFILE_FEATURE_TYPE_RISING_EDGE (6) ///< Rising edge.
1195 #define GO_PROFILE_FEATURE_TYPE_FALLING_EDGE (7) ///< Falling edge.
1196 #define GO_PROFILE_FEATURE_TYPE_ANY_EDGE (8) ///< Rising or falling edge.
1197 #define GO_PROFILE_FEATURE_TYPE_TOP_CORNER (9) ///< Top-most corner.
1198 #define GO_PROFILE_FEATURE_TYPE_BOTTOM_CORNER (10) ///< Bottom-most corner.
1199 #define GO_PROFILE_FEATURE_TYPE_LEFT_CORNER (11) ///< Left-most corner.
1200 #define GO_PROFILE_FEATURE_TYPE_RIGHT_CORNER (12) ///< Right-most corner.
1201 #define GO_PROFILE_FEATURE_TYPE_MEDIAN (13) ///< Median of points.
1202 /**@}*/
1203 
1204 /**
1205  * @struct GoProfileGapAxis
1206  * @ingroup GoSdk-ProfileTools
1207  * @brief Represents a profile gap measurement axis.
1208  */
1209 typedef k32s GoProfileGapAxis;
1210 /** @name GoProfileGapAxis
1211  *@{*/
1212 #define GO_PROFILE_GAP_AXIS_EDGE (0) ///< Measure the gap along the edge normal.
1213 #define GO_PROFILE_GAP_AXIS_SURFACE (1) ///< Measure the gap along the surface line.
1214 #define GO_PROFILE_GAP_AXIS_DISTANCE (2) ///< Measure the shortest distance between the two edges.
1215 /**@}*/
1216 
1217 /**
1218  * @struct GoProfileEdgeType
1219  * @ingroup GoSdk-ProfileTools
1220  * @brief Represents a profile edge type.
1221  */
1222 typedef k32s GoProfileEdgeType;
1223 /** @name GoProfileEdgeType
1224  *@{*/
1225 #define GO_PROFILE_EDGE_TYPE_TANGENT (0) ///< Detect the edge by looking for the tangent.
1226 #define GO_PROFILE_EDGE_TYPE_CORNER (1) ///< Detect the edge by looking for the corner.
1227 /**@}*/
1228 
1229 /**
1230  * @struct GoProfileLineType
1231  * @ingroup GoSdk-ProfileTools
1232  * @brief Determines whether to use a line based on a Profile Line fit, or based on the x-axis.
1233  */
1234 typedef k32s GoProfileBaseline;
1235 /** @name GoProfileBaseline
1236  *@{*/
1237 #define GO_PROFILE_BASELINE_TYPE_X_AXIS (0) ///< Use the X-Axis.
1238 #define GO_PROFILE_BASELINE_TYPE_Z_AXIS (1) ///< Use the Z-Axis.
1239 #define GO_PROFILE_BASELINE_TYPE_LINE (2) ///< Use the line fit.
1240 /**@}*/
1241 
1242 /**
1243  * @struct GoProfileAreaType
1244  * @ingroup GoSdk-ProfileTools
1245  * @brief Determines how to calculate profile area
1246  */
1247 typedef k32s GoProfileAreaType;
1248 /** @name GoProfileAreaType
1249  *@{*/
1250 #define GO_PROFILE_AREA_TYPE_OBJECT (0) ///< Sum the profile area that is above the line.
1251 #define GO_PROFILE_AREA_TYPE_CLEARANCE (1) ///< Sum the profile area that is below the line.
1252 /**@}*/
1253 
1254 /**
1255  * @struct GoProfileGapSide
1256  * @ingroup GoSdk-ProfileTools
1257  * @brief Selects which edge to use as the reference in a panel tool.
1258  */
1259 typedef k32s GoProfilePanelSide;
1260 /** @name GoProfilePanelSide
1261  *@{*/
1262 #define GO_PROFILE_PANEL_SIDE_LEFT (0) ///< Use the left edge.
1263 #define GO_PROFILE_PANEL_SIDE_RIGHT (1) ///< Use the right edge.
1264 /**@}*/
1265 
1266 
1267 /**
1268  * @struct GoProfileGrooveShape
1269  * @ingroup GoSdk-ProfileTools
1270  * @brief Represents a profile edge type.
1271  */
1272 typedef k32s GoProfileGrooveShape;
1273 /** @name GoProfileGrooveShape
1274  *@{*/
1275 #define GO_PROFILE_GROOVE_SHAPE_U (0) ///< Detect grooves that are U shaped.
1276 #define GO_PROFILE_GROOVE_SHAPE_V (1) ///< Detect grooves that are V shaped.
1277 #define GO_PROFILE_GROOVE_SHAPE_OPEN (2) ///< Detect grooves that are open.
1278 /**@}*/
1279 
1280 /**
1281  * @struct GoProfileGrooveSelectType
1282  * @ingroup GoSdk-ProfileTools
1283  * @brief Determines which groove to select when multiple are present.
1284  */
1285 typedef k32s GoProfileGrooveSelectType;
1286 /** @name GoProfileGrooveSelectType
1287  *@{*/
1288 #define GO_PROFILE_GROOVE_SELECT_TYPE_MAX_DEPTH (0) ///< Select the groove with the maximum depth.
1289 #define GO_PROFILE_GROOVE_SELECT_TYPE_LEFT_INDEX (1) ///< Select the groove with the currently selected index starting from the left side.
1290 #define GO_PROFILE_GROOVE_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the groove with the currently selected index starting from the right side.
1291 /**@}*/
1292 
1293 /**
1294  * @struct GoProfileGrooveLocation
1295  * @ingroup GoSdk-ProfileTools
1296  * @brief Determines which groove position to return.
1297  */
1298 typedef k32s GoProfileGrooveLocation;
1299 /** @name GoProfileGrooveLocation
1300  *@{*/
1301 #define GO_PROFILE_GROOVE_LOCATION_BOTTOM (0) ///< Return the position of the bottom of the groove.
1302 #define GO_PROFILE_GROOVE_LOCATION_LEFT (1) ///< Return the position of the left corner of the groove.
1303 #define GO_PROFILE_GROOVE_LOCATION_RIGHT (2) ///< Return the position of the right corner of the groove.
1304 /**@}*/
1305 
1306 /**
1307  * @struct GoProfileStripSelectType
1308  * @ingroup GoSdk-ProfileTools
1309  * @brief Determines which Strip to select when multiple are present.
1310  */
1311 typedef k32s GoProfileStripSelectType;
1312 /** @name GoProfileStripSelectType
1313  *@{*/
1314 #define GO_PROFILE_STRIP_SELECT_TYPE_BEST (0) ///< Select the best strip.
1315 #define GO_PROFILE_STRIP_SELECT_TYPE_LEFT_INDEX (1) ///< Select the strip with the currently selected index starting from the left side.
1316 #define GO_PROFILE_STRIP_SELECT_TYPE_RIGHT_INDEX (2) ///< Select the strip with the currently selected index starting from the right side.
1317 /**@}*/
1318 
1319 /**
1320  * @struct GoProfileStripLocation
1321  * @ingroup GoSdk-ProfileTools
1322  * @brief Determines which Strip position to return.
1323  */
1324 typedef k32s GoProfileStripLocation;
1325 /** @name GoProfileStripLocation
1326  *@{*/
1327 #define GO_PROFILE_STRIP_LOCATION_LEFT (0) ///< Return the position of the left corner of the Strip.
1328 #define GO_PROFILE_STRIP_LOCATION_RIGHT (1) ///< Return the position of the right corner of the Strip.
1329 #define GO_PROFILE_STRIP_LOCATION_BOTTOM (2) ///< Return the position of the center of the Strip.
1330 /**@}*/
1331 /// @endcond
1332 
1333 /// @cond (Gocator_2x00 || Gocator_3x00)
1334 
1335 /**
1336  * @struct GoPartFrameOfReference
1337  * @extends kValue
1338  * @ingroup GoSdk
1339  * @brief Represents a part detection frame of reference.
1340  *
1341  * The following enumerators are defined:
1342  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR
1343  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN
1344  * - #GO_PART_FRAME_OF_REFERENCE_TYPE_PART
1345  */
1346 typedef k32s GoPartFrameOfReference;
1347 /** @name GoPartFrameOfReference
1348  *@{*/
1349 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR (0) ///< Sensor frame of reference. 2x00 only.
1350 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN (0) ///< Scan frame of reference. 3x00 only. Value duplication is intentional.
1351 #define GO_PART_FRAME_OF_REFERENCE_TYPE_PART (1) ///< Part frame of reference.
1352 /**@}*/
1353 
1354 /**
1355  * @struct GoPartHeightThresholdDirection
1356  * @extends kValue
1357  * @ingroup GoSdk-Surface
1358  * @brief Represents a part detection height threshold direction.
1359  *
1360  * The following enumerators are defined:
1361  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE
1362  * - #GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW
1363  */
1364 typedef k32s GoPartHeightThresholdDirection;
1365 /** @name GoPartHeightThresholdDirection
1366  *@{*/
1367 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE (0) ///< Height threshold direction is above the Z-axis.
1368 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW (1) ///< Height threshold direction is below the Z-axis.
1369 /**@}*/
1370 
1371 /**
1372  * @struct GoSurfaceGenerationType
1373  * @extends kValue
1374  * @ingroup GoSdk-Surface
1375  * @brief Represents a surface generation type.
1376  *
1377  * The following enumerators are defined:
1378  * - #GO_SURFACE_GENERATION_TYPE_CONTINUOUS
1379  * - #GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH
1380  * - #GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH
1381  * - #GO_SURFACE_GENERATION_TYPE_ROTATIONAL
1382  */
1383 typedef k32s GoSurfaceGenerationType;
1384 /** @name GoSurfaceGenerationType
1385  *@{*/
1386 #define GO_SURFACE_GENERATION_TYPE_CONTINUOUS (0) ///< Continuous surface generation.
1387 #define GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH (1) ///< Fixed length surface generation.
1388 #define GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH (2) ///< Variable length surface generation.
1389 #define GO_SURFACE_GENERATION_TYPE_ROTATIONAL (3) ///< Rotational surface generation.
1390 /**@}*/
1391 
1392 /**
1393  * @struct GoSurfaceGenerationStartTrigger
1394  * @extends kValue
1395  * @ingroup GoSdk-Surface
1396  * @brief Represents a surface generation start trigger.
1397  *
1398  * The following enumerators are defined:
1399  * - #GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL
1400  * - #GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL
1401  */
1402 typedef k32s GoSurfaceGenerationStartTrigger;
1403 /** @name GoSurfaceGenerationStartTrigger
1404  *@{*/
1405 #define GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL (0) ///< Sequential start trigger.
1406 #define GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL (1) ///< Digital input start trigger.
1407 /**@}*/
1408 
1409 /**
1410  * @struct GoSurfaceLocation
1411  * @ingroup GoSdk-SurfaceTools
1412  * @brief Represents a surface location.
1413  */
1414 typedef k32s GoSurfaceLocation;
1415 /** @name GoSurfaceLocation
1416  *@{*/
1417 #define GO_SURFACE_LOCATION_TYPE_MAX (0) ///< Location based on the maximum point.
1418 #define GO_SURFACE_LOCATION_TYPE_MIN (1) ///< Location based on the minimum point.
1419 #define GO_SURFACE_LOCATION_TYPE_2D_CENTROID (2) ///< Location based on a 2d centroid.
1420 #define GO_SURFACE_LOCATION_TYPE_3D_CENTROID (3) ///< Location based on a 3d centroid.
1421 #define GO_SURFACE_LOCATION_TYPE_AVG (4) ///< Location based on the average point.
1422 #define GO_SURFACE_LOCATION_TYPE_MEDIAN (5) ///< Location based on the median point.
1423 /**@}*/
1424 
1425 /**
1426  * @struct GoSurfaceFeatureType
1427  * @ingroup GoSdk-SurfaceTools
1428  * @brief Represents a surface feature type.
1429  */
1430 typedef k32s GoSurfaceFeatureType;
1431 /** @name GoSurfaceFeatureType
1432  *@{*/
1433 #define GO_SURFACE_FEATURE_TYPE_CENTROID_2D (0) ///< Feature based on the 2d centroid.
1434 #define GO_SURFACE_FEATURE_TYPE_CENTROID_3D (1) ///< Feature based on the 3d centroid.
1435 #define GO_SURFACE_FEATURE_TYPE_X_MAX (2) ///< Feature based on the X maximum point.
1436 #define GO_SURFACE_FEATURE_TYPE_X_MIN (3) ///< Feature based on the X minimum point.
1437 #define GO_SURFACE_FEATURE_TYPE_Y_MAX (4) ///< Feature based on the Y maximum point.
1438 #define GO_SURFACE_FEATURE_TYPE_Y_MIN (5) ///< Feature based on the Y minimum point.
1439 #define GO_SURFACE_FEATURE_TYPE_Z_MAX (6) ///< Feature based on the Z maximum point.
1440 #define GO_SURFACE_FEATURE_TYPE_Z_MIN (7) ///< Feature based on the Z minimum point.
1441 /**@}*/
1442 
1443 /**
1444  * @struct GoSurfaceOpeningType
1445  * @extends kValue
1446  * @ingroup GoSdk-SurfaceTools
1447  * @brief Represents a surface opening tool type.
1448  *
1449  * The following enumerators are defined:
1450  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT
1451  * - #GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE
1452  */
1453 typedef k32s GoSurfaceOpeningType;
1454 /** @name GoSurfaceOpeningType
1455  *@{*/
1456 #define GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT (0) ///< Rounded slot opening type.
1457 #define GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE (1) ///< Rectangular opening type.
1458 /**@}*/
1459 /// @endcond
1460 
1461 kEndHeader()
1462 #include <GoSdk/GoSdkDef.x.h>
1463 
1464 #endif
Represents an active area configuration element.
Definition: GoSdkDef.h:612
k64f yAngle
The Y angle of the transformation.
Definition: GoSdkDef.h:634
Lists all tool types.
k64f y
The Y offset of the transformed data region.
Definition: GoSdkDef.h:647
Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
Definition: GoSdkDef.h:547
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:597
Represents a surface feature type.
Represents a playback seek direction.
k64f max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:587
GoUser loginType
The logged in user.
Definition: GoSdkDef.h:550
Represents the replay export source type.
GoAlignmentRef alignmentReference
The alignment reference of the sensor.
Definition: GoSdkDef.h:551
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:599
kBool useDhcp
Sensor uses DHCP?
Definition: GoSdkDef.h:570
Represents a ethernet output protocol.
Represents a surface opening tool type.
Represents a data source.
k32u playbackCount
The playback count.
Definition: GoSdkDef.h:558
Represents a transformed data region.
Definition: GoSdkDef.h:644
GoElement64f length
The length of the active area.
Definition: GoSdkDef.h:618
k64f x
The X offset of the transformed data region.
Definition: GoSdkDef.h:646
k32u uptimeSec
Sensor uptime in seconds.
Definition: GoSdkDef.h:555
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:552
Represents a trigger.
k64f y
The Y offset of the transformation.
Definition: GoSdkDef.h:631
Represents an alignment element.
Definition: GoSdkDef.h:628
k64f value
The element's double field value.
Definition: GoSdkDef.h:586
Represents a part detection frame of reference.
GoElement64f width
The width of the active area.
Definition: GoSdkDef.h:619
GoElement64f z
The Z offset of the active area.
Definition: GoSdkDef.h:616
Represents an alignment state.
kBool recordingEnabled
The current state of recording on the sensor.
Definition: GoSdkDef.h:553
kIpAddress gateway
Sensor gateway address.
Definition: GoSdkDef.h:573
kBool autoStartEnabled
The auto-start enabled state.
Definition: GoSdkDef.h:559
Represents a surface generation type.
Represents a profile edge type.
GoElement64f y
The Y offset of the active area.
Definition: GoSdkDef.h:615
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:588
Represents a surface location.
Represents an analog output trigger.
Represents a video message pixel type.
GoState sensorState
The state of the sensor.
Definition: GoSdkDef.h:549
kIpAddress address
Sensor IP address.
Definition: GoSdkDef.h:571
Represents a profile strip tool base type.
kBool enabled
Represents whether the element value is currently used. (not always applicable)
Definition: GoSdkDef.h:584
k64f width
The width of the transformed data region.
Definition: GoSdkDef.h:649
Represents a profile strip tool edge type.
Represents the system's primary synchronization domain.
Represents an encoder's triggering behavior.
Lists all data message types.
k64f progress
Upgrade progress (percentage).
Definition: GoSdkDef.h:62
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:603
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:635
k32u value
The element's 32-bit unsigned field value.
Definition: GoSdkDef.h:601
Represents an ASCII protocol operational type.
Represents a analog output event.
kIpAddress mask
Sensor subnet bit-mask.
Definition: GoSdkDef.h:572
Represents arguments provided to an upgrade callback function.
Definition: GoSdkDef.h:60
Represents a 64-bit floating point configuration element with a range and enabled state...
Definition: GoSdkDef.h:582
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:617
k32u max
The maximum allowable value that can be set for this element.
Definition: GoSdkDef.h:602
Represents an alignment type.
kBeginHeader() kStatus GoSdk_Construct(kAssembly *assembly)
Constructs the Gocator SDK library.
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:554
Represents a digital output event.
k64f systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:585
k64f x
The X offset of the transformation.
Definition: GoSdkDef.h:630
Determines which Strip position to return.
k32u systemValue
The system value. (not always applicable)
Definition: GoSdkDef.h:600
k32u uptimeMicrosec
Sensor uptime in microseconds.
Definition: GoSdkDef.h:556
Represents a part detection height threshold direction.
k32u playbackPos
The playback position index.
Definition: GoSdkDef.h:557
Determines how to calculate profile area.
Represents the selcom format followed on the serial output.
k64f length
The length of the transformed data region.
Definition: GoSdkDef.h:650
GoElement64f x
The X offset of the active area.
Definition: GoSdkDef.h:614
k64f z
The Z offset of the transformation.
Definition: GoSdkDef.h:632
k64f height
The height of the transformed data region.
Definition: GoSdkDef.h:651
Represents a profile edge type.
Represents a profile feature point type.
k64f z
The Z offset of the transformed data region.
Definition: GoSdkDef.h:648
k64f xAngle
The X angle of the transformation.
Definition: GoSdkDef.h:633
Represents a digital output condition.
Sensor network address settings.
Definition: GoSdkDef.h:568
Represents all serial output protocols.
Represents the current state of a sensor object.
Represents the current encoder period limiting source.