Gocator API

- Home
- Topics
- Types
- Files

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