13 #include <kApi/kApiDef.h>
14 #include <kApi/Io/kNetwork.h>
18 # define GoFx(TYPE) kExportFx(TYPE)
19 # define GoDx(TYPE) kExportDx(TYPE)
21 # define GoFx(TYPE) kImportFx(TYPE)
22 # define GoDx(TYPE) kImportDx(TYPE)
37 #define GO_USER_NONE (0)
38 #define GO_USER_ADMIN (1)
39 #define GO_USER_TECH (2)
61 #define GO_STATE_ONLINE (0)
62 #define GO_STATE_OFFLINE (1)
63 #define GO_STATE_RESETTING (2)
64 #define GO_STATE_INCOMPATIBLE (4)
65 #define GO_STATE_INCONSISTENT (5)
66 #define GO_STATE_UNRESPONSIVE (6)
67 #define GO_STATE_CANCELLED (7)
68 #define GO_STATE_INCOMPLETE (8)
69 #define GO_STATE_BUSY (9)
70 #define GO_STATE_READY (10)
71 #define GO_STATE_RUNNING (11)
75 #define GO_ROLE_MAIN (0)
76 #define GO_ROLE_BUDDY (1)
78 typedef k32s GoAlignmentState;
80 #define GO_ALIGNMENT_STATE_NOT_ALIGNED (0)
81 #define GO_ALIGNMENT_STATE_ALIGNED (1)
83 typedef k32s GoAlignmentRef;
85 #define GO_ALIGNMENT_REF_FIXED (0)
86 #define GO_ALIGNMENT_REF_DYNAMIC (1)
90 #define GO_MODE_UNKNOWN (-1)
91 #define GO_MODE_VIDEO (0)
92 #define GO_MODE_RANGE (1)
93 #define GO_MODE_PROFILE (2)
94 #define GO_MODE_SURFACE (3)
96 GoFx(kStatus) GoMode_Parse(GoMode* mode, const kChar* text);
97 GoFx(kStatus) GoMode_Format(GoMode mode, kChar* buffer, kSize bufferSize);
99 typedef k32s GoTrigger;
101 #define GO_TRIGGER_TIME (0)
102 #define GO_TRIGGER_ENCODER (1)
103 #define GO_TRIGGER_INPUT (2)
104 #define GO_TRIGGER_SOFTWARE (3)
106 typedef k32s GoEncoderTriggerMode;
108 #define GO_ENCODER_TRIGGER_MODE_TRACK_REVERSE (0) // Do not reverse trigger. Track reverse motion to prevent repeat forward triggers.
109 #define GO_ENCODER_TRIGGER_MODE_IGNORE_REVERSE (1) // Do not reverse trigger. Forward trigger unconditionally.
110 #define GO_ENCODER_TRIGGER_MODE_BIDIRECTIONAL (2) // Forward and reverse trigger.
112 typedef k32s GoFrameRateMaxSource;
114 #define GO_FRAME_RATE_MAX_SOURCE_IMAGER (0) // Limited by the imager's configuration.
115 #define GO_FRAME_RATE_MAX_SOURCE_PART_DETECTION (1) // Limited by part detection logic.
118 typedef k32s GoEncoderSpacingMinSource;
120 #define GO_ENCODER_PERIOD_MAX_SOURCE_RESOLUTION (0) // Limited by encoder resolution.
121 #define GO_ENCODER_PERIOD_MAX_SOURCE_PART_DETECTION (1) // Limited by part detection logic.
123 typedef k32s GoTriggerUnits;
125 #define GO_TRIGGER_UNIT_TIME (0) // Base the system on the internal clock.
126 #define GO_TRIGGER_UNIT_ENCODER (1) // Base the system on the encoder.
130 #define GO_AXIS_X (0)
131 #define GO_AXIS_Y (1)
133 typedef k32s GoExposureMode;
135 #define GO_EXPOSURE_MODE_SINGLE (0)
136 #define GO_EXPOSURE_MODE_MULTIPLE (1)
137 #define GO_EXPOSURE_MODE_DYNAMIC (2)
139 typedef k32s GoOrientation;
141 #define GO_ORIENTATION_WIDE (0) // Wide sensor orientation.
142 #define GO_ORIENTATION_OPPOSITE (1) // Opposite sensor orientation.
143 #define GO_ORIENTATION_REVERSE (2) // Opposite sensor orientation.
145 typedef k32s GoAlignmentSource;
147 #define GO_ALIGNMENT_SOURCE_GLOBAL (0)
148 #define GO_ALIGNMENT_SOURCE_LOCAL (1)
150 typedef k32s GoPartFrameOfReference;
152 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SENSOR (0)
153 #define GO_PART_FRAME_OF_REFERENCE_TYPE_SCAN (0) //intentional value duplicate
154 #define GO_PART_FRAME_OF_REFERENCE_TYPE_PART (1)
156 typedef k32s GoPartHeightThresholdDirection;
158 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_ABOVE (0)
159 #define GO_PART_HEIGHT_THRESHOLD_DIRECTION_BELOW (1)
162 typedef k32s GoInputSource;
164 #define GO_INPUT_SOURCE_LIVE (0)
165 #define GO_INPUT_SOURCE_RECORDING (1)
168 typedef k32s GoSeekDirection;
170 #define GO_SEEK_DIRECTION_FORWARD (0)
171 #define GO_SEEK_DIRECTION_BACKWARD (0)
188 #define GO_DATA_SOURCE_NONE (-1) //used to represent a buddy device when the buddy is not connected
189 #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
190 #define GO_DATA_SOURCE_BOTTOM (1) //represents the buddy device in an opposite orientation buddy configuration
191 #define GO_DATA_SOURCE_TOP_LEFT (2) //represents the main device in a wide or reverse orientation buddy configuration
192 #define GO_DATA_SOURCE_TOP_RIGHT (3) //represents the buddy device in a wide or reverse orientation buddy configuration
193 #define GO_DATA_SOURCE_TOP_BOTTOM (4) //represents both the main and buddy devices in a opposite orientation
194 #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)
197 typedef k32s GoProfileStripBaseType;
199 #define GO_PROFILE_STRIP_BASE_TYPE_NONE (0)
200 #define GO_PROFILE_STRIP_BASE_TYPE_FLAT (1)
202 typedef k32s GoProfileStripEdgeType;
204 #define GO_PROFILE_STRIP_EDGE_TYPE_RISING (1)
205 #define GO_PROFILE_STRIP_EDGE_TYPE_FALLING (2)
206 #define GO_PROFILE_STRIP_EDGE_TYPE_DATA_END (4)
207 #define GO_PROFILE_STRIP_EDGE_TYPE_VOID (8)
210 typedef k32s GoSurfaceGenerationType;
212 #define GO_SURFACE_GENERATION_TYPE_CONTINUOUS (0)
213 #define GO_SURFACE_GENERATION_TYPE_FIXED_LENGTH (1)
214 #define GO_SURFACE_GENERATION_TYPE_VARIABLE_LENGTH (2)
215 #define GO_SURFACE_GENERATION_TYPE_ROTATIONAL (3)
218 typedef k32s GoSurfaceGenerationStartTrigger;
220 #define GO_SURFACE_GENERATION_START_TRIGGER_SEQUENTIAL (0)
221 #define GO_SURFACE_GENERATION_START_TRIGGER_DIGITAL (1)
224 typedef k32s GoSurfaceOpeningType;
226 #define GO_SURFACE_OPENING_TYPE_ROUNDED_SLOT (0)
227 #define GO_SURFACE_OPENING_TYPE_ROUNDED_RECTANGLE (1)
230 typedef k32s GoAnalogTrigger;
232 #define GO_ANALOG_TRIGGER_MEASUREMENT (0)
233 #define GO_ANALOG_TRIGGER_SOFTWARE (1)
235 typedef k32s GoDigitalPass;
237 #define GO_DIGITAL_PASS_TRUE (0)
238 #define GO_DIGITAL_PASS_FALSE (1)
239 #define GO_DIGITAL_PASS_ALWAYS (2)
241 typedef k32s GoDigitalSignal;
243 #define GO_DIGITAL_SIGNAL_PULSED (0)
244 #define GO_DIGITAL_SIGNAL_CONTINUOUS (1)
246 typedef k32s GoDigitalEvent;
248 #define GO_DIGITAL_EVENT_MEASUREMENT (1)
249 #define GO_DIGITAL_EVENT_SOFTWARE (2)
251 typedef k32s GoAnalogEvent;
253 #define GO_ANALOG_EVENT_MEASURMENT (1)
254 #define GO_ANALOG_EVENT_SOFTWARE (2)
256 typedef k32s GoEthernetProtocol;
258 #define GO_ETHERNET_PROTOCOL_GOCATOR (0)
259 #define GO_ETHERNET_PROTOCOL_MODBUS (1)
260 #define GO_ETHERNET_PROTOCOL_ETHERNET_IP (2)
261 #define GO_ETHERNET_PROTOCOL_ASCII (3)
263 typedef k32s GoOutputSource;
265 #define GO_OUTPUT_SOURCE_NONE (0)
266 #define GO_OUTPUT_SOURCE_VIDEO (1)
267 #define GO_OUTPUT_SOURCE_RANGE (2)
268 #define GO_OUTPUT_SOURCE_PROFILE (3)
269 #define GO_OUTPUT_SOURCE_SURFACE (4)
270 #define GO_OUTPUT_SOURCE_RANGE_INTENSITY (5)
271 #define GO_OUTPUT_SOURCE_PROFILE_INTENSITY (6)
272 #define GO_OUTPUT_SOURCE_SURFACE_INTENSITY (7)
273 #define GO_OUTPUT_SOURCE_MEASUREMENT (8)
276 typedef k32s GoOutputDelayDomain;
278 #define GO_OUTPUT_DELAY_DOMAIN_TIME (0)
279 #define GO_OUTPUT_DELAY_DOMAIN_ENCODER (1)
282 typedef k32s GoSpotDetectionType;
284 #define GS_SPOT_DETECTION_NORMAL (0)
285 #define GS_SPOT_DETECTION_XLINE (1)
288 typedef k32s GoSpotSelectionType;
290 #define GS_SPOT_SELECTION_INTENSITY (0)
291 #define GS_SPOT_SELECTION_ROW_MIN (1)
292 #define GS_SPOT_SELECTION_ROW_MAX (2)
295 typedef k32s GoSpacingIntervalType;
297 #define GO_SPACING_INTERVAL_TYPE_MAX_RES (0)
298 #define GO_SPACING_INTERVAL_TYPE_BALANCED (1)
299 #define GO_SPACING_INTERVAL_TYPE_MAX_SPEED (2)
301 typedef k32s GoMaterialType;
303 #define GO_MATERIAL_TYPE_DIFFUSE (0)
304 #define GO_MATERIAL_TYPE_SMOKE (0)
306 typedef k32s GoTriggerSource;
308 #define GO_TRIGGER_SOURCE_TIME (0) // Trigger on internal clock.
309 #define GO_TRIGGER_SOURCE_ENCODER (1) // Trigger on encoder.
310 #define GO_TRIGGER_SOURCE_INPUT (2) // Trigger on digital input.
311 #define GO_TRIGGER_SOURCE_SOFTWARE (3) // Trigger on software messages.
314 typedef k32s GoAlignmentType;
316 #define GO_ALIGNMENT_TYPE_STATIONARY (0)
317 #define GO_ALIGNMENT_TYPE_MOVING (1)
319 typedef k32s GoAlignmentTarget;
321 #define GO_ALIGNMENT_TARGET_NONE (0) // No calibration target.
322 #define GO_ALIGNMENT_TARGET_DISK (1) // Calibration disk.
323 #define GO_ALIGNMENT_TARGET_BAR (2) // Calibration bar.
324 #define GO_ALIGNMENT_TARGET_PLATE (3) // Calibration plate.
326 typedef k32s GoAsciiOperation;
328 #define GO_ASCII_OPERATION_ASYNCHRONOUS (0)
329 #define GO_ASCII_OPERATION_POLLING (1)
331 typedef k32s GoSelcomFormat;
333 #define GO_SELCOM_FORMAT_SLS (0) // Selcom uses the SLS format
334 #define GO_SELCOM_FORMAT_12BIT_ST (1) // Selcom uses the 12-Bit Search/Track format
335 #define GO_SELCOM_FORMAT_14BIT (2) // Selcom uses the 14-Bit format
336 #define GO_SELCOM_FORMAT_14BIT_ST (3) // Selcom uses the 14-Bit Search/Track format
338 typedef k32s GoSerialProtocol;
339 #define GO_SERIAL_PROTOCOL_GOCATOR (0)
340 #define GO_SERIAL_PROTOCOL_SELCOM (1)
342 typedef k32s GoReplayExportSourceType;
343 #define GO_REPLAY_EXPORT_SOURCE_PRIMARY (0)
344 #define GO_REPLAY_EXPORT_SOURCE_INTENSITY (1)
346 typedef k32s GoFamily;
347 #define GO_FAMILY_1000 (0)
348 #define GO_FAMILY_2000 (1)
349 #define GO_FAMILY_3000 (2)
351 typedef k8s GoDecision;
352 #define GO_DECISION_INVALID_ANCHOR (-2)
353 #define GO_DECISION_INVALID_VALUE (-1)
354 #define GO_DECISION_FAIL (0)
355 #define GO_DECISION_PASS (1)
366 GoAlignmentRef alignmentReference;
367 GoAlignmentState alignmentState;
368 kBool recordingEnabled;
374 kBool autoStartEnabled;
401 typedef struct GoElement64f
409 typedef struct GoElementUInt32
418 typedef struct GoActiveAreaConfig
426 } GoActiveAreaConfig;
428 typedef struct GoTransformation
438 typedef struct GoTransformedDataRegion
446 } GoTransformedDataRegion;
449 typedef struct GoAsciiConfig
451 GoAsciiOperation operation;
455 kString customFormat;
456 kBool customFormatEnabled;
459 kString invalidValue;
462 typedef struct GoSelcomConfig
464 GoSelcomFormat format;
465 kArrayList formatOptions;
467 kArrayList rateOptions;
473 typedef k32s GoToolType;
474 #define GO_TOOL_UNKNOWN (-1)
475 #define GO_TOOL_RANGE_POSITION (0)
476 #define GO_TOOL_RANGE_THICKNESS (1)
477 #define GO_TOOL_PROFILE_AREA (2)
478 #define GO_TOOL_PROFILE_CIRCLE (3)
479 #define GO_TOOL_PROFILE_DIMENSION (4)
480 #define GO_TOOL_PROFILE_GROOVE (5)
481 #define GO_TOOL_PROFILE_INTERSECT (6)
482 #define GO_TOOL_PROFILE_LINE (7)
483 #define GO_TOOL_PROFILE_PANEL (8)
484 #define GO_TOOL_PROFILE_POSITION (9)
485 #define GO_TOOL_PROFILE_STRIP (10)
486 #define GO_TOOL_SURFACE_BOUNDING_BOX (11)
487 #define GO_TOOL_SURFACE_ELLIPSE (12)
488 #define GO_TOOL_SURFACE_HOLE (13)
489 #define GO_TOOL_SURFACE_OPENING (14)
490 #define GO_TOOL_SURFACE_PLANE (15)
491 #define GO_TOOL_SURFACE_POSITION (16)
492 #define GO_TOOL_SURFACE_STUD (17)
493 #define GO_TOOL_SURFACE_VOLUME (18)
494 #define GO_TOOL_SCRIPT (19)
497 typedef k32s GoMeasurementType;
498 #define GO_MEASUREMENT_UNKNOWN (-1)
499 #define GO_MEASUREMENT_RANGE_POSITION_Z (0)
500 #define GO_MEASUREMENT_RANGE_THICKNESS_THICKNESS (1)
501 #define GO_MEASUREMENT_PROFILE_AREA_AREA (2)
502 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_X (3)
503 #define GO_MEASUREMENT_PROFILE_AREA_CENTROID_Z (4)
504 #define GO_MEASUREMENT_PROFILE_CIRCLE_X (5)
505 #define GO_MEASUREMENT_PROFILE_CIRCLE_Z (6)
506 #define GO_MEASUREMENT_PROFILE_CIRCLE_RADIUS (7)
507 #define GO_MEASUREMENT_PROFILE_DIMENSION_WIDTH (8)
508 #define GO_MEASUREMENT_PROFILE_DIMENSION_HEIGHT (9)
509 #define GO_MEASUREMENT_PROFILE_DIMENSION_DISTANCE (10)
510 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_X (11)
511 #define GO_MEASUREMENT_PROFILE_DIMENSION_CENTER_Z (12)
512 #define GO_MEASUREMENT_PROFILE_GROOVE_X (13)
513 #define GO_MEASUREMENT_PROFILE_GROOVE_Z (14)
514 #define GO_MEASUREMENT_PROFILE_GROOVE_WIDTH (15)
515 #define GO_MEASUREMENT_PROFILE_GROOVE_DEPTH (16)
516 #define GO_MEASUREMENT_PROFILE_INTERSECT_X (17)
517 #define GO_MEASUREMENT_PROFILE_INTERSECT_Z (18)
518 #define GO_MEASUREMENT_PROFILE_INTERSECT_ANGLE (19)
519 #define GO_MEASUREMENT_PROFILE_LINE_STDDEV (20)
520 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MIN (21)
521 #define GO_MEASUREMENT_PROFILE_LINE_ERROR_MAX (22)
522 #define GO_MEASUREMENT_PROFILE_LINE_PERCENTILE (23)
523 #define GO_MEASUREMENT_PROFILE_PANEL_GAP (24)
524 #define GO_MEASUREMENT_PROFILE_PANEL_FLUSH (25)
525 #define GO_MEASUREMENT_PROFILE_POSITION_X (26)
526 #define GO_MEASUREMENT_PROFILE_POSITION_Z (27)
527 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_X (28)
528 #define GO_MEASUREMENT_PROFILE_STRIP_POSITION_Z (29)
529 #define GO_MEASUREMENT_PROFILE_STRIP_WIDTH (30)
530 #define GO_MEASUREMENT_PROFILE_STRIP_HEIGHT (31)
531 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_X (32)
532 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Y (33)
533 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_Z (34)
534 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_ZANGLE (35)
535 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_HEIGHT (36)
536 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_WIDTH (37)
537 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_LENGTH (38)
538 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBALX (39)
539 #define GO_MEASUREMENT_SURFACE_BOUNDING_BOX_GLOBALY (40)
540 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MAJOR (41)
541 #define GO_MEASUREMENT_SURFACE_ELLIPSE_MINOR (42)
542 #define GO_MEASUREMENT_SURFACE_ELLIPSE_RATIO (43)
543 #define GO_MEASUREMENT_SURFACE_ELLIPSE_ZANGLE (44)
544 #define GO_MEASUREMENT_SURFACE_HOLE_X (45)
545 #define GO_MEASUREMENT_SURFACE_HOLE_Y (46)
546 #define GO_MEASUREMENT_SURFACE_HOLE_Z (47)
547 #define GO_MEASUREMENT_SURFACE_HOLE_RADIUS (48)
548 #define GO_MEASUREMENT_SURFACE_OPENING_X (49)
549 #define GO_MEASUREMENT_SURFACE_OPENING_Y (50)
550 #define GO_MEASUREMENT_SURFACE_OPENING_Z (51)
551 #define GO_MEASUREMENT_SURFACE_OPENING_WIDTH (52)
552 #define GO_MEASUREMENT_SURFACE_OPENING_LENGTH (53)
553 #define GO_MEASUREMENT_SURFACE_OPENING_ANGLE (54)
554 #define GO_MEASUREMENT_SURFACE_PLANE_X_ANGLE (55)
555 #define GO_MEASUREMENT_SURFACE_PLANE_Y_ANGLE (56)
556 #define GO_MEASUREMENT_SURFACE_PLANE_Z_OFFSET (57)
557 #define GO_MEASUREMENT_SURFACE_POSITION_X (58)
558 #define GO_MEASUREMENT_SURFACE_POSITION_Y (59)
559 #define GO_MEASUREMENT_SURFACE_POSITION_Z (60)
560 #define GO_MEASUREMENT_SURFACE_STUD_BASE_X (61)
561 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Y (62)
562 #define GO_MEASUREMENT_SURFACE_STUD_BASE_Z (63)
563 #define GO_MEASUREMENT_SURFACE_STUD_TIP_X (64)
564 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Y (65)
565 #define GO_MEASUREMENT_SURFACE_STUD_TIP_Z (66)
566 #define GO_MEASUREMENT_SURFACE_STUD_RADIUS (67)
567 #define GO_MEASUREMENT_SURFACE_VOLUME_AREA (68)
568 #define GO_MEASUREMENT_SURFACE_VOLUME_VOLUME (69)
569 #define GO_MEASUREMENT_SURFACE_VOLUME_THICKNESS (70)
570 #define GO_MEASUREMENT_SCRIPT_OUTPUT (71)
573 typedef k32s GoDataMessageType;
574 #define GO_DATA_MESSAGE_TYPE_UNKNOWN (-1)
575 #define GO_DATA_MESSAGE_TYPE_STAMP (0)
576 #define GO_DATA_MESSAGE_TYPE_HEALTH (1)
577 #define GO_DATA_MESSAGE_TYPE_VIDEO (2)
578 #define GO_DATA_MESSAGE_TYPE_RANGE (3)
579 #define GO_DATA_MESSAGE_TYPE_RANGE_INTENSITY (4)
580 #define GO_DATA_MESSAGE_TYPE_PROFILE (5)
581 #define GO_DATA_MESSAGE_TYPE_PROFILE_INTENSITY (6)
582 #define GO_DATA_MESSAGE_TYPE_RESAMPLED_PROFILE (7)
583 #define GO_DATA_MESSAGE_TYPE_SURFACE (8)
584 #define GO_DATA_MESSAGE_TYPE_SURFACE_INTENSITY (9)
585 #define GO_DATA_MESSAGE_TYPE_MEASUREMENT (10)
586 #define GO_DATA_MESSAGE_TYPE_ALIGNMENT (11)
587 #define GO_DATA_MESSAGE_TYPE_EXPOSURE_CAL (12)
590 typedef kStatus (kCall* GoUpgradeFx) (kPointer receiver, kObject sender,
GoUpgradeFxArgs* args);
592 GoFx(kVersion) GoSdk_ProtocolVersion();
594 GoFx(kStatus) GoDestroy(kObject
object);
598 #include <GoSdk/GoSdkDef.x.h>
Sensor state, login, alignment reference, alignment state, recording state, and playback source...
Definition: GoSdkDef.h:362
Represents a data source.
kIpAddress gateway
Sensor IP gateway setting.
Definition: GoSdkDef.h:387
kIpAddress address
Sensor uses DHCP?
Definition: GoSdkDef.h:385
k64f progress
Upgrade progress (percentage).
Definition: GoSdkDef.h:398
Represents a user id.
Definition: GoSdkDef.h:15
kIpAddress mask
Sensor IP address setting.
Definition: GoSdkDef.h:386
Represents arguments provided to an upgrade callback function.
Definition: GoSdkDef.h:396
Sensor network address settings.
Definition: GoSdkDef.h:382
Represents the current state of a sensor object.