Gocator API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
GoDataTypes.h
Go to the documentation of this file.
1 /**
2  * @file GoDataTypes.h
3  * @brief Declares Gocator data message classes and related types.
4  *
5  * @internal
6  * Copyright (C) 2016 by LMI Technologies Inc.
7  * Licensed under the MIT License.
8  * Redistributed files must retain the above copyright notice.
9  */
10 #ifndef GO_SDK_DATA_TYPES_H
11 #define GO_SDK_DATA_TYPES_H
12 
13 #include <GoSdk/GoSdkDef.h>
14 kBeginHeader()
15 
16 /**
17  * @class GoDataMsg
18  * @extends kObject
19  * @ingroup GoSdk-DataChannel
20  * @brief Represents a base message sourced from the data channel.
21  */
22 typedef kObject GoDataMsg;
23 
24 /**
25  * Returns the message type for a data channel message given in a GoDataSet.
26  *
27  * @public @memberof GoDataMsg
28  * @version Introduced in firmware 4.0.10.27
29  * @param message A data channel message.
30  * @return A GoDataMessageType value.
31  */
32 GoFx(GoDataMessageType) GoDataMsg_Type(GoDataMsg message);
33 
34 /**
35  * @struct GoStamp
36  * @extends kValue
37  * @ingroup GoSdk-DataChannel
38  * @brief Represents an acquisition stamp.
39  */
40 typedef struct GoStamp
41 {
42  k64u frameIndex; ///< Frame index (counts up from zero).
43  k64u timestamp; ///< Timestamp in internal units approximating microseconds where the true time in us = timestamp value / 1.024.
44  k64s encoder; ///< Position (encoder ticks).
45  k64s encoderAtZ; ///< Encoder value latched at z-index mark (encoder ticks).
47  /**<
48  * Bit mask containing frame information:
49  *
50  * - Bit 0: Represents sensor digital input state.
51  * - Bit 4: Represents Master digital input state.
52  * - Bits 8 and 9: Represents inter-frame digital pulse trigger
53  (Master digital input if a Master is connected, otherwise
54  sensor digital input. Value is cleared after each frame
55  and clamped at 3 if more than 3 pulses are received).
56  */
57  k32u id; ///< Source device ID.
58  k32u reserved32u; ///< Reserved.
59  k64u reserved64u; ///< Reserved.
60 } GoStamp;
61 
62 /**
63  * @class GoStampMsg
64  * @extends GoDataMsg
65  * @ingroup GoSdk-DataChannel
66  * @brief Represents a message containing a set of acquisition stamps.
67  */
68 typedef GoDataMsg GoStampMsg;
69 
70 /**
71  * Gets the stamp source.
72  *
73  * @public @memberof GoStampMsg
74  * @version Introduced in firmware 4.0.10.27
75  * @param msg Message object.
76  * @return Stamp source.
77  */
79 
80 /**
81  * Returns the number of stamps contained in this message.
82  *
83  * @public @memberof GoStampMsg
84  * @version Introduced in firmware 4.0.10.27
85  * @param msg Message object.
86  * @return Count of stamps.
87  */
89 
90 /**
91  * Gets the stamp at the specified index.
92  *
93  * @public @memberof GoStampMsg
94  * @version Introduced in firmware 4.0.10.27
95  * @param msg Message object.
96  * @param index Stamp index.
97  * @return Stamp pointer.
98  */
99 GoFx(GoStamp*) GoStampMsg_At(GoStampMsg msg, kSize index);
100 
101 /**
102  * @class GoVideoMsg
103  * @extends GoDataMsg
104  * @ingroup GoSdk-DataChannel
105  * @brief Represents a data message containing a video image.
106  */
107 typedef GoDataMsg GoVideoMsg;
108 
109 /**
110  * Gets the video source.
111  *
112  * @public @memberof GoVideoMsg
113  * @version Introduced in firmware 4.0.10.27
114  * @param msg Message object.
115  * @return Video source.
116  */
117 GoFx(GoDataSource) GoVideoMsg_Source(GoVideoMsg msg);
118 
119 
120 /**
121  * Gets the camera index that the video data originates from.
122  *
123  * @public @memberof GoVideoMsg
124  * @version Introduced in firmware 4.0.10.27
125  * @param msg Message object.
126  * @return Camera index.
127  */
128 GoFx(kSize) GoVideoMsg_CameraIndex(GoVideoMsg msg);
129 
130 
131 /**
132  * Gets the image width, in pixels.
133  *
134  * @public @memberof GoVideoMsg
135  * @version Introduced in firmware 4.0.10.27
136  * @param msg Message object.
137  * @return Image width, in pixels.
138  */
139 GoFx(kSize) GoVideoMsg_Width(GoVideoMsg msg);
140 
141 /**
142  * Gets the image height, in pixels.
143  *
144  * @public @memberof GoVideoMsg
145  * @version Introduced in firmware 4.0.10.27
146  * @param msg Message object.
147  * @return Image height, in pixels.
148  */
149 GoFx(kSize) GoVideoMsg_Height(GoVideoMsg msg);
150 
151 /**
152  * Gets the data type used to represent an image pixel.
153  *
154  * @public @memberof GoVideoMsg
155  * @version Introduced in firmware 4.0.10.27
156  * @param msg Message object.
157  * @return Pixel type.
158  */
159 GoFx(GoPixelType) GoVideoMsg_PixelType(GoVideoMsg msg);
160 
161 /**
162  * Gets the image pixel size, in bytes.
163  *
164  * @public @memberof GoVideoMsg
165  * @version Introduced in firmware 4.0.10.27
166  * @param msg Message object.
167  * @return Pixel size, in bytes.
168  */
169 GoFx(kSize) GoVideoMsg_PixelSize(GoVideoMsg msg);
170 
171 /**
172  * Gets the pixel format descriptor.
173  *
174  * @public @memberof GoVideoMsg
175  * @version Introduced in firmware 4.0.10.27
176  * @param msg Message object.
177  * @return Pixel format.
178  */
179 GoFx(kPixelFormat) GoVideoMsg_PixelFormat(GoVideoMsg msg);
180 
181 /**
182  * Gets the image color filter array.
183  *
184  * @public @memberof GoVideoMsg
185  * @version Introduced in firmware 4.0.10.27
186  * @param msg Message object.
187  * @return Color filter array.
188  */
189 GoFx(kCfa) GoVideoMsg_Cfa(GoVideoMsg msg);
190 
191 /**
192  * Gets a pointer to a row within the image.
193  *
194  * @public @memberof GoVideoMsg
195  * @version Introduced in firmware 4.0.10.27
196  * @param msg Message object.
197  * @param rowIndex Row index.
198  * @return Row pointer.
199  */
200 GoFx(void*) GoVideoMsg_RowAt(GoVideoMsg msg, kSize rowIndex);
201 
202 /**
203  * Gets the exposure index.
204  *
205  * @public @memberof GoVideoMsg
206  * @version Introduced in firmware 4.0.10.27
207  * @param msg Message object.
208  * @return Exposure index.
209  */
210 GoFx(kSize) GoVideoMsg_ExposureIndex(GoVideoMsg msg);
211 
212 /**
213  * Gets the exposure.
214  *
215  * @public @memberof GoVideoMsg
216  * @version Introduced in firmware 4.0.10.27
217  * @param msg Message object.
218  * @return Exposure in uS.
219  */
220 GoFx(k32u) GoVideoMsg_Exposure(GoVideoMsg msg);
221 
222 /**
223  * Indicates whether the video message data requires horizontal flipping to match up with profile data.
224  *
225  * @public @memberof GoVideoMsg
226  * @version Introduced in firmware 4.4.4.14
227  * @param msg Message object.
228  * @return kTRUE if rotation is required, kFALSE otherwise.
229  */
230 GoFx(kBool) GoVideoMsg_IsFlippedX(GoVideoMsg msg);
231 
232 /**
233  * Indicates whether the video message data requires vertical flipping to match up with profile data.
234  *
235  * @public @memberof GoVideoMsg
236  * @version Introduced in firmware 4.4.4.14
237  * @param msg Message object.
238  * @return kTRUE if rotation is required, kFALSE otherwise.
239  */
240 GoFx(kBool) GoVideoMsg_IsFlippedY(GoVideoMsg msg);
241 
242 /// @cond (Gocator_1x00)
243 /**
244  * @class GoRangeMsg
245  * @extends GoDataMsg
246  * @ingroup GoSdk-DataChannel
247  * @brief Represents a data message containing a set of range data.
248  */
249 typedef GoDataMsg GoRangeMsg;
250 
251 /**
252  * Gets the Range source.
253  *
254  * @public @memberof GoRangeMsg
255  * @version Introduced in firmware 4.0.10.27
256  * @param msg Message object.
257  * @return Range source.
258  */
259 GoFx(GoDataSource) GoRangeMsg_Source(GoRangeMsg msg);
260 
261 /**
262  * Gets the count of Range data in this message.
263  *
264  * @public @memberof GoRangeMsg
265  * @version Introduced in firmware 4.0.10.27
266  * @param msg Message object.
267  * @return Count of Range data.
268  */
269 GoFx(kSize) GoRangeMsg_Count(GoRangeMsg msg);
270 
271 
272 /**
273  * Gets the Range z-resolution, in nanometers.
274  *
275  * @public @memberof GoRangeMsg
276  * @version Introduced in firmware 4.0.10.27
277  * @param msg Message object.
278  * @return Z resolution (nm).
279  */
280 GoFx(k32u) GoRangeMsg_ZResolution(GoRangeMsg msg);
281 
282 /**
283  * Gets the Range z-offset, in micrometers.
284  *
285  * @public @memberof GoRangeMsg
286  * @version Introduced in firmware 4.0.10.27
287  * @param msg Message object.
288  * @return Z offset (um).
289  */
290 GoFx(k32s) GoRangeMsg_ZOffset(GoRangeMsg msg);
291 
292 /**
293  * Gets a pointer to Range data.
294  *
295  * @public @memberof GoRangeMsg
296  * @version Introduced in firmware 4.0.10.27
297  * @param msg Message object.
298  * @param index Range array index.
299  * @return Range pointer.
300  */
301 GoFx(k16s*) GoRangeMsg_At(GoRangeMsg msg, kSize index);
302 
303 /**
304  * Gets the exposure.
305  *
306  * @public @memberof GoRangeMsg
307  * @version Introduced in firmware 4.0.10.27
308  * @param msg Message object.
309  * @return Exposure in uS.
310  */
311 GoFx(k32u) GoRangeMsg_Exposure(GoRangeMsg msg);
312 
313 
314 /**
315  * @class GoRangeIntensityMsg
316  * @extends GoDataMsg
317  * @ingroup GoSdk-DataChannel
318  * @brief Represents a data message containing a set of range intensity data.
319  */
321 
322 /**
323  * Gets the range intensity source.
324  *
325  * @public @memberof GoRangeIntensityMsg
326  * @version Introduced in firmware 4.0.10.27
327  * @param msg Message object.
328  * @return Range intensity source.
329  */
330 GoFx(GoDataSource) GoRangeIntensityMsg_Source(GoRangeIntensityMsg msg);
331 
332 /**
333  * Gets the count of range intensity data in this message.
334  *
335  * @public @memberof GoRangeIntensityMsg
336  * @version Introduced in firmware 4.0.10.27
337  * @param msg Message object.
338  * @return Count of range intensity data.
339  */
340 GoFx(kSize) GoRangeIntensityMsg_Count(GoRangeIntensityMsg msg);
341 
342 /**
343  * Gets a pointer to range intensity data.
344  *
345  * @public @memberof GoRangeIntensityMsg
346  * @version Introduced in firmware 4.0.10.27
347  * @param msg Message object.
348  * @param index Range intensity array index.
349  * @return Range intensity data pointer.
350  */
351 GoFx(k8u*) GoRangeIntensityMsg_At(GoRangeIntensityMsg msg, kSize index);
352 
353 /**
354  * Gets the exposure.
355  *
356  * @public @memberof GoRangeIntensityMsg
357  * @version Introduced in firmware 4.0.10.27
358  * @param msg Message object.
359  * @return Exposure in uS.
360  */
361 GoFx(k32u) GoRangeIntensityMsg_Exposure(GoRangeIntensityMsg msg);
362 
363 /// @endcond
364 
365 /// @cond (Gocator_1x00 || Gocator_2x00)
366 /**
367  * @class GoProfileMsg
368  * @extends GoDataMsg
369  * @ingroup GoSdk-DataChannel
370  * @brief Represents a data message containing a set of profile arrays.
371  */
372 typedef GoDataMsg GoProfileMsg;
373 
374 /**
375  * Gets the profile source.
376  *
377  * @public @memberof GoProfileMsg
378  * @version Introduced in firmware 4.0.10.27
379  * @param msg Message object.
380  * @return Profile source.
381  */
382 GoFx(GoDataSource) GoProfileMsg_Source(GoProfileMsg msg);
383 
384 /**
385  * Gets the count of profile arrays in this message.
386  *
387  * @public @memberof GoProfileMsg
388  * @version Introduced in firmware 4.0.10.27
389  * @param msg Message object.
390  * @return Count of profile arrays.
391  */
392 GoFx(kSize) GoProfileMsg_Count(GoProfileMsg msg);
393 
394 /**
395  * Gets the count of ranges in each profile array.
396  *
397  * @public @memberof GoProfileMsg
398  * @version Introduced in firmware 4.0.10.27
399  * @param msg Message object.
400  * @return Range count.
401  */
402 GoFx(kSize) GoProfileMsg_Width(GoProfileMsg msg);
403 
404 /**
405  * Gets the profile x-resolution, in nanometers.
406  *
407  * @public @memberof GoProfileMsg
408  * @version Introduced in firmware 4.0.10.27
409  * @param msg Message object.
410  * @return X resolution (nm).
411  */
412 GoFx(k32u) GoProfileMsg_XResolution(GoProfileMsg msg);
413 
414 /**
415  * Gets the profile z-resolution, in nanometers.
416  *
417  * @public @memberof GoProfileMsg
418  * @version Introduced in firmware 4.0.10.27
419  * @param msg Message object.
420  * @return Z resolution (nm).
421  */
422 GoFx(k32u) GoProfileMsg_ZResolution(GoProfileMsg msg);
423 
424 /**
425  * Gets the profile x-offset, in micrometers.
426  *
427  * @public @memberof GoProfileMsg
428  * @version Introduced in firmware 4.0.10.27
429  * @param msg Message object.
430  * @return X offset (um).
431  */
432 GoFx(k32s) GoProfileMsg_XOffset(GoProfileMsg msg);
433 
434 /**
435  * Gets the profile z-offset, in micrometers.
436  *
437  * @public @memberof GoProfileMsg
438  * @version Introduced in firmware 4.0.10.27
439  * @param msg Message object.
440  * @return Z offset (um).
441  */
442 GoFx(k32s) GoProfileMsg_ZOffset(GoProfileMsg msg);
443 
444 /**
445  * Gets a pointer to a profile array.
446  *
447  * @public @memberof GoProfileMsg
448  * @version Introduced in firmware 4.0.10.27
449  * @param msg Message object.
450  * @param index Profile array index.
451  * @return Profile pointer.
452  */
453 GoFx(kPoint16s*) GoProfileMsg_At(GoProfileMsg msg, kSize index);
454 
455 /**
456  * Gets the exposure.
457  *
458  * @public @memberof GoProfileMsg
459  * @version Introduced in firmware 4.0.10.27
460  * @param msg Message object.
461  * @return Exposure in uS.
462  */
463 GoFx(k32u) GoProfileMsg_Exposure(GoProfileMsg msg);
464 
465 
466 /**
467  * Gets the source camera index.
468  *
469  * @public @memberof GoProfileMsg
470  * @version Introduced in firmware 4.1.3.106
471  * @param msg Message object.
472  * @return Camera index (0 - Front camera, 1 - Back camera).
473  */
474 GoFx(k8u) GoProfileMsg_CameraIndex(GoProfileMsg msg);
475 
476 
477 /**
478  * @class GoResampledProfileMsg
479  * @extends GoDataMsg
480  * @ingroup GoSdk-DataChannel
481  * @brief Represents a data message containing a set of re-sampled profile arrays.
482  */
484 
485 /**
486  * Gets the profile source.
487  *
488  * @public @memberof GoResampledProfileMsg
489  * @version Introduced in firmware 4.0.10.27
490  * @param msg Message object.
491  * @return Profile source.
492  */
493 GoFx(GoDataSource) GoResampledProfileMsg_Source(GoResampledProfileMsg msg);
494 
495 /**
496  * Gets the count of re-sampled profile arrays in this message.
497  *
498  * @public @memberof GoResampledProfileMsg
499  * @version Introduced in firmware 4.0.10.27
500  * @param msg Message object.
501  * @return Count of profile arrays.
502  */
503 GoFx(kSize) GoResampledProfileMsg_Count(GoResampledProfileMsg msg);
504 
505 /**
506  * Gets the count of points in each re-sampled profile array.
507  *
508  * @public @memberof GoResampledProfileMsg
509  * @version Introduced in firmware 4.0.10.27
510  * @param msg Message object.
511  * @return Point count.
512  */
513 GoFx(kSize) GoResampledProfileMsg_Width(GoResampledProfileMsg msg);
514 
515 /**
516  * Gets the x-resolution, in nanometers.
517  *
518  * @public @memberof GoResampledProfileMsg
519  * @version Introduced in firmware 4.0.10.27
520  * @param msg Message object.
521  * @return X resolution (nm).
522  */
523 GoFx(k32u) GoResampledProfileMsg_XResolution(GoResampledProfileMsg msg);
524 
525 /**
526  * Gets the profile z-resolution, in nanometers.
527  *
528  * @public @memberof GoResampledProfileMsg
529  * @version Introduced in firmware 4.0.10.27
530  * @param msg Message object.
531  * @return Z resolution (nm).
532  */
533 GoFx(k32u) GoResampledProfileMsg_ZResolution(GoResampledProfileMsg msg);
534 
535 /**
536  * Gets the profile x-offset, in micrometers.
537  *
538  * @public @memberof GoResampledProfileMsg
539  * @version Introduced in firmware 4.0.10.27
540  * @param msg Message object.
541  * @return X offset (um).
542  */
543 GoFx(k32s) GoResampledProfileMsg_XOffset(GoResampledProfileMsg msg);
544 
545 /**
546  * Gets the profile z-offset, in micrometers.
547  *
548  * @public @memberof GoResampledProfileMsg
549  * @version Introduced in firmware 4.0.10.27
550  * @param msg Message object.
551  * @return Z offset (um).
552  */
553 GoFx(k32s) GoResampledProfileMsg_ZOffset(GoResampledProfileMsg msg);
554 
555 /**
556  * Gets a pointer to a re-sampled profile array.
557  *
558  * @public @memberof GoResampledProfileMsg
559  * @version Introduced in firmware 4.0.10.27
560  * @param msg Message object.
561  * @param index Profile array index.
562  * @return Data pointer.
563  */
564 GoFx(k16s*) GoResampledProfileMsg_At(GoResampledProfileMsg msg, kSize index);
565 
566 /**
567  * Gets the exposure.
568  *
569  * @public @memberof GoResampledProfileMsg
570  * @version Introduced in firmware 4.0.10.27
571  * @param msg Message object.
572  * @return Exposure in uS.
573  */
574 GoFx(k32u) GoResampledProfileMsg_Exposure(GoResampledProfileMsg msg);
575 
576 
577 /**
578  * @class GoProfileIntensityMsg
579  * @extends GoDataMsg
580  * @ingroup GoSdk-DataChannel
581  * @brief Represents a data message containing a set of profile intensity arrays.
582  */
584 
585 /**
586  * Gets the profile source.
587  *
588  * @public @memberof GoProfileIntensityMsg
589  * @version Introduced in firmware 4.0.10.27
590  * @param msg Message object.
591  * @return Profile source.
592  */
593 GoFx(GoDataSource) GoProfileIntensityMsg_Source(GoProfileIntensityMsg msg);
594 
595 /**
596  * Gets the count of profile intensity arrays in this message.
597  *
598  * @public @memberof GoProfileIntensityMsg
599  * @version Introduced in firmware 4.0.10.27
600  * @param msg Message object.
601  * @return Count of profile arrays.
602  */
603 GoFx(kSize) GoProfileIntensityMsg_Count(GoProfileIntensityMsg msg);
604 
605 /**
606  * Gets the count of intensity values in each profile intensity array.
607  *
608  * @public @memberof GoProfileIntensityMsg
609  * @version Introduced in firmware 4.0.10.27
610  * @param msg Message object.
611  * @return Intensity count.
612  */
613 GoFx(kSize) GoProfileIntensityMsg_Width(GoProfileIntensityMsg msg);
614 
615 /**
616  * Gets the x-resolution, in nanometers.
617  *
618  * @public @memberof GoProfileIntensityMsg
619  * @version Introduced in firmware 4.0.10.27
620  * @param msg Message object.
621  * @return X resolution (nm).
622  */
623 GoFx(k32u) GoProfileIntensityMsg_XResolution(GoProfileIntensityMsg msg);
624 
625 /**
626  * Gets the profile x-offset, in micrometers.
627  *
628  * @public @memberof GoProfileIntensityMsg
629  * @version Introduced in firmware 4.0.10.27
630  * @param msg Message object.
631  * @return X offset (um).
632  */
633 GoFx(k32s) GoProfileIntensityMsg_XOffset(GoProfileIntensityMsg msg);
634 
635 /**
636  * Gets a pointer to a profile intensity array.
637  *
638  * @public @memberof GoProfileIntensityMsg
639  * @version Introduced in firmware 4.0.10.27
640  * @param msg Message object.
641  * @param index Profile intensity array index.
642  * @return Data pointer.
643  */
644 GoFx(k8u*) GoProfileIntensityMsg_At(GoProfileIntensityMsg msg, kSize index);
645 
646 /**
647  * Gets the exposure.
648  *
649  * @public @memberof GoProfileIntensityMsg
650  * @version Introduced in firmware 4.0.10.27
651  * @param msg Message object.
652  * @return Exposure in uS.
653  */
654 GoFx(k32u) GoProfileIntensityMsg_Exposure(GoProfileIntensityMsg msg);
655 
656 /**
657  * Gets the source camera index.
658  *
659  * @public @memberof GoProfileMsg
660  * @version Introduced in firmware 4.1.3.106
661  * @param msg Message object.
662  * @return Camera index (0 - Front camera, 1 - Back camera).
663  */
664 GoFx(k8u) GoProfileIntensityMsg_CameraIndex(GoProfileMsg msg);
665 
666 /// @endcond
667 
668 /// @cond (Gocator_2x00 || Gocator_3x00)
669 /**
670  * @class GoSurfaceMsg
671  * @extends GoDataMsg
672  * @ingroup GoSdk-DataChannel
673  * @brief Represents a data message containing a surface array.
674  */
675 typedef GoDataMsg GoSurfaceMsg;
676 
677 /**
678  * Gets the profile source.
679  *
680  * @public @memberof GoSurfaceMsg
681  * @version Introduced in firmware 4.0.10.27
682  * @param msg Message object.
683  * @return Profile source.
684  */
685 GoFx(GoDataSource) GoSurfaceMsg_Source(GoSurfaceMsg msg);
686 
687 /**
688  * Gets the length of the surface (row count).
689  *
690  * @public @memberof GoSurfaceMsg
691  * @version Introduced in firmware 4.0.10.27
692  * @param msg Message object.
693  * @return Surface length.
694  */
695 GoFx(kSize) GoSurfaceMsg_Length(GoSurfaceMsg msg);
696 
697 /**
698  * Gets the width of the surface (column count).
699  *
700  * @public @memberof GoSurfaceMsg
701  * @version Introduced in firmware 4.0.10.27
702  * @param msg Message object.
703  * @return Surface width;
704  */
705 GoFx(kSize) GoSurfaceMsg_Width(GoSurfaceMsg msg);
706 
707 /**
708  * Gets the surface x-resolution, in nanometers.
709  *
710  * @public @memberof GoSurfaceMsg
711  * @version Introduced in firmware 4.0.10.27
712  * @param msg Message object.
713  * @return X resolution (nm).
714  */
715 GoFx(k32u) GoSurfaceMsg_XResolution(GoSurfaceMsg msg);
716 
717 /**
718  * Gets the surface y-resolution, in nanometers.
719  *
720  * @public @memberof GoSurfaceMsg
721  * @version Introduced in firmware 4.0.10.27
722  * @param msg Message object.
723  * @return Y resolution (nm).
724  */
725 GoFx(k32u) GoSurfaceMsg_YResolution(GoSurfaceMsg msg);
726 
727 /**
728  * Gets the surface z-resolution, in nanometers.
729  *
730  * @public @memberof GoSurfaceMsg
731  * @version Introduced in firmware 4.0.10.27
732  * @param msg Message object.
733  * @return Z resolution (nm).
734  */
735 GoFx(k32u) GoSurfaceMsg_ZResolution(GoSurfaceMsg msg);
736 
737 /**
738  * Gets the surface x-offset, in micrometers.
739  *
740  * @public @memberof GoSurfaceMsg
741  * @version Introduced in firmware 4.0.10.27
742  * @param msg Message object.
743  * @return X offset (um).
744  */
745 GoFx(k32s) GoSurfaceMsg_XOffset(GoSurfaceMsg msg);
746 
747 /**
748  * Gets the surface y-offset, in micrometers.
749  *
750  * @public @memberof GoSurfaceMsg
751  * @version Introduced in firmware 4.0.10.27
752  * @param msg Message object.
753  * @return Y offset (um).
754  */
755 GoFx(k32s) GoSurfaceMsg_YOffset(GoSurfaceMsg msg);
756 
757 /**
758  * Gets the surface z-offset, in micrometers.
759  *
760  * @public @memberof GoSurfaceMsg
761  * @version Introduced in firmware 4.0.10.27
762  * @param msg Message object.
763  * @return Z offset (um).
764  */
765 GoFx(k32s) GoSurfaceMsg_ZOffset(GoSurfaceMsg msg);
766 
767 /**
768  * Gets the surface z-angle, in microdegrees.
769  *
770  * @public @memberof GoSurfaceMsg
771  * @version Introduced in firmware 4.1.3.106
772  * @param msg Message object.
773  * @return Z angle (microdegrees).
774  */
775 GoFx(k32s) GoSurfaceMsg_ZAngle(GoSurfaceMsg msg);
776 
777 /**
778  * Gets a pointer to a surface row.
779  *
780  * @public @memberof GoSurfaceMsg
781  * @version Introduced in firmware 4.0.10.27
782  * @param msg Message object.
783  * @param index Surface row index.
784  * @return Row pointer.
785  */
786 GoFx(k16s*) GoSurfaceMsg_RowAt(GoSurfaceMsg msg, kSize index);
787 
788 /**
789  * Gets the exposure.
790  *
791  * @public @memberof GoSurfaceMsg
792  * @version Introduced in firmware 4.0.10.27
793  * @param msg Message object.
794  * @return Exposure in uS.
795  */
796 GoFx(k32u) GoSurfaceMsg_Exposure(GoSurfaceMsg msg);
797 
798 /**
799  * @class GoSurfaceIntensityMsg
800  * @extends GoDataMsg
801  * @ingroup GoSdk-DataChannel
802  * @brief Represents a data message containing a surface intensity array.
803  */
804 typedef GoDataMsg GoSurfaceIntensityMsg;
805 
806 /**
807  * Gets the profile source.
808  *
809  * @public @memberof GoSurfaceIntensityMsg
810  * @version Introduced in firmware 4.0.10.27
811  * @param msg Message object.
812  * @return Profile source.
813  */
814 GoFx(GoDataSource) GoSurfaceIntensityMsg_Source(GoSurfaceIntensityMsg msg);
815 
816 /**
817  * Gets the length of the surface (row count).
818  *
819  * @public @memberof GoSurfaceIntensityMsg
820  * @version Introduced in firmware 4.0.10.27
821  * @param msg Message object.
822  * @return Surface length.
823  */
824 GoFx(kSize) GoSurfaceIntensityMsg_Length(GoSurfaceIntensityMsg msg);
825 
826 /**
827  * Gets the width of the surface (column count).
828  *
829  * @public @memberof GoSurfaceIntensityMsg
830  * @version Introduced in firmware 4.0.10.27
831  * @param msg Message object.
832  * @return Surface width;
833  */
834 GoFx(kSize) GoSurfaceIntensityMsg_Width(GoSurfaceIntensityMsg msg);
835 
836 /**
837  * Gets the surface x-resolution, in nanometers.
838  *
839  * @public @memberof GoSurfaceIntensityMsg
840  * @version Introduced in firmware 4.0.10.27
841  * @param msg Message object.
842  * @return X resolution (nm).
843  */
844 GoFx(k32u) GoSurfaceIntensityMsg_XResolution(GoSurfaceIntensityMsg msg);
845 
846 /**
847  * Gets the surface y-resolution, in nanometers.
848  *
849  * @public @memberof GoSurfaceIntensityMsg
850  * @version Introduced in firmware 4.0.10.27
851  * @param msg Message object.
852  * @return Y resolution (nm).
853  */
854 GoFx(k32u) GoSurfaceIntensityMsg_YResolution(GoSurfaceIntensityMsg msg);
855 
856 /**
857  * Gets the surface x-offset, in micrometers.
858  *
859  * @public @memberof GoSurfaceIntensityMsg
860  * @version Introduced in firmware 4.0.10.27
861  * @param msg Message object.
862  * @return X offset (um).
863  */
864 GoFx(k32s) GoSurfaceIntensityMsg_XOffset(GoSurfaceIntensityMsg msg);
865 
866 /**
867  * Gets the surface y-offset, in micrometers.
868  *
869  * @public @memberof GoSurfaceIntensityMsg
870  * @version Introduced in firmware 4.0.10.27
871  * @param msg Message object.
872  * @return Y offset (um).
873  */
874 GoFx(k32s) GoSurfaceIntensityMsg_YOffset(GoSurfaceIntensityMsg msg);
875 
876 /**
877  * Gets a pointer to a surface intensity row.
878  *
879  * @public @memberof GoSurfaceIntensityMsg
880  * @version Introduced in firmware 4.0.10.27
881  * @param msg Message object.
882  * @param index Surface intensity row index.
883  * @return Data pointer.
884  */
885 GoFx(k8u*) GoSurfaceIntensityMsg_RowAt(GoSurfaceIntensityMsg msg, kSize index);
886 
887 /**
888  * Gets the exposure.
889  *
890  * @public @memberof GoSurfaceIntensityMsg
891  * @version Introduced in firmware 4.0.10.27
892  * @param msg Message object.
893  * @return Exposure in uS.
894  */
895 GoFx(k32u) GoSurfaceIntensityMsg_Exposure(GoSurfaceIntensityMsg msg);
896 
897 
898 /**
899  * @class GoSectionMsg
900  * @extends GoDataMsg
901  * @ingroup GoSdk-DataChannel
902  * @brief Represents a data message containing a set of section arrays.
903  */
904 typedef GoDataMsg GoSectionMsg;
905 
906 /**
907  * Gets the section ID.
908  *
909  * @public @memberof GoSectionMsg
910  * @version Introduced in firmware 4.4.4.14
911  * @param msg Message object.
912  * @return Section ID.
913  */
914 GoFx(k32u) GoSectionMsg_Id(GoSectionMsg msg);
915 
916 /**
917  * Gets the section source.
918  *
919  * @public @memberof GoSectionMsg
920  * @version Introduced in firmware 4.4.4.14
921  * @param msg Message object.
922  * @return Section source.
923  */
924 GoFx(GoDataSource) GoSectionMsg_Source(GoSectionMsg msg);
925 
926 /**
927  * Gets the count of section arrays in this message.
928  *
929  * @public @memberof GoSectionMsg
930  * @version Introduced in firmware 4.4.4.14
931  * @param msg Message object.
932  * @return Count of section arrays.
933  */
934 GoFx(kSize) GoSectionMsg_Count(GoSectionMsg msg);
935 
936 /**
937  * Gets the count of points in each section array.
938  *
939  * @public @memberof GoSectionMsg
940  * @version Introduced in firmware 4.4.4.14
941  * @param msg Message object.
942  * @return Point count.
943  */
944 GoFx(kSize) GoSectionMsg_Width(GoSectionMsg msg);
945 
946 /**
947  * Gets the x-resolution, in nanometers.
948  *
949  * @public @memberof GoSectionMsg
950  * @version Introduced in firmware 4.4.4.14
951  * @param msg Message object.
952  * @return X resolution (nm).
953  */
954 GoFx(k32u) GoSectionMsg_XResolution(GoSectionMsg msg);
955 
956 /**
957  * Gets the z-resolution, in nanometers.
958  *
959  * @public @memberof GoSectionMsg
960  * @version Introduced in firmware 4.4.4.14
961  * @param msg Message object.
962  * @return Z resolution (nm).
963  */
964 GoFx(k32u) GoSectionMsg_ZResolution(GoSectionMsg msg);
965 
966 /**
967  * Gets the X-Pose, in micrometers.
968  *
969  * @public @memberof GoSectionMsg
970  * @version Introduced in firmware 4.4.4.14
971  * @param msg Message object.
972  * @return X Pose (um).
973  */
974 GoFx(k32s) GoSectionMsg_XPose(GoSectionMsg msg);
975 
976 /**
977  * Gets the Y-Pose, in micrometers.
978  *
979  * @public @memberof GoSectionMsg
980  * @version Introduced in firmware 4.4.4.14
981  * @param msg Message object.
982  * @return Y Pose (um).
983  */
984 GoFx(k32s) GoSectionMsg_YPose(GoSectionMsg msg);
985 
986 /**
987  * Gets the Pose Angle, in microdegrees.
988  *
989  * @public @memberof GoSectionMsg
990  * @version Introduced in firmware 4.4.4.14
991  * @param msg Message object.
992  * @return Angle Pose (microdegrees).
993  */
994 GoFx(k32s) GoSectionMsg_AnglePose(GoSectionMsg msg);
995 
996 /**
997  * Gets the x-offset, in micrometers.
998  *
999  * @public @memberof GoSectionMsg
1000  * @version Introduced in firmware 4.4.4.14
1001  * @param msg Message object.
1002  * @return X offset (um).
1003  */
1004 GoFx(k32s) GoSectionMsg_XOffset(GoSectionMsg msg);
1005 
1006 /**
1007  * Gets the z-offset, in micrometers.
1008  *
1009  * @public @memberof GoSectionMsg
1010  * @version Introduced in firmware 4.4.4.14
1011  * @param msg Message object.
1012  * @return Z offset (um).
1013  */
1014 GoFx(k32s) GoSectionMsg_ZOffset(GoSectionMsg msg);
1015 
1016 /**
1017  * Gets a pointer to a section array.
1018  *
1019  * @public @memberof GoSectionMsg
1020  * @version Introduced in firmware 4.4.4.14
1021  * @param msg Message object.
1022  * @param index Section array index.
1023  * @return Data pointer.
1024  */
1025 GoFx(k16s*) GoSectionMsg_At(GoSectionMsg msg, kSize index);
1026 
1027 /**
1028  * Gets the exposure.
1029  *
1030  * @public @memberof GoSectionMsg
1031  * @version Introduced in firmware 4.4.4.14
1032  * @param msg Message object.
1033  * @return Exposure in uS.
1034  */
1035 GoFx(k32u) GoSectionMsg_Exposure(GoSectionMsg msg);
1036 
1037 
1038 /**
1039  * @class GoSectionIntensityMsg
1040  * @extends GoDataMsg
1041  * @ingroup GoSdk-DataChannel
1042  * @brief Represents a data message containing a set of profile intensity arrays.
1043  */
1044 typedef GoDataMsg GoSectionIntensityMsg;
1045 
1046 /**
1047  * Gets the section ID.
1048  *
1049  * @public @memberof GoSectionIntensityMsg
1050  * @version Introduced in firmware 4.4.4.14
1051  * @param msg Message object.
1052  * @return Section ID.
1053  */
1054 GoFx(k32u) GoSectionIntensityMsg_Id(GoSectionIntensityMsg msg);
1055 
1056 /**
1057  * Gets the section source.
1058  *
1059  * @public @memberof GoSectionIntensityMsg
1060  * @version Introduced in firmware 4.4.4.14
1061  * @param msg Message object.
1062  * @return Section source.
1063  */
1064 GoFx(GoDataSource) GoSectionIntensityMsg_Source(GoSectionIntensityMsg msg);
1065 
1066 /**
1067  * Gets the count of section arrays in this message.
1068  *
1069  * @public @memberof GoSectionIntensityMsg
1070  * @version Introduced in firmware 4.4.4.14
1071  * @param msg Message object.
1072  * @return Count of section arrays.
1073  */
1074 GoFx(kSize) GoSectionIntensityMsg_Count(GoSectionIntensityMsg msg);
1075 
1076 /**
1077  * Gets the count of points in each section array.
1078  *
1079  * @public @memberof GoSectionIntensityMsg
1080  * @version Introduced in firmware 4.4.4.14
1081  * @param msg Message object.
1082  * @return Point count.
1083  */
1084 GoFx(kSize) GoSectionIntensityMsg_Width(GoSectionIntensityMsg msg);
1085 
1086 /**
1087  * Gets the x-resolution, in nanometers.
1088  *
1089  * @public @memberof GoSectionIntensityMsg
1090  * @version Introduced in firmware 4.4.4.14
1091  * @param msg Message object.
1092  * @return X resolution (nm).
1093  */
1094 GoFx(k32u) GoSectionIntensityMsg_XResolution(GoSectionIntensityMsg msg);
1095 
1096 /**
1097  * Gets the X-Pose, in micrometers.
1098  *
1099  * @public @memberof GoSectionIntensityMsg
1100  * @version Introduced in firmware 4.4.4.14
1101  * @param msg Message object.
1102  * @return X Pose (um).
1103  */
1104 GoFx(k32s) GoSectionIntensityMsg_XPose(GoSectionIntensityMsg msg);
1105 
1106 /**
1107  * Gets the Y-Pose, in micrometers.
1108  *
1109  * @public @memberof GoSectionIntensityMsg
1110  * @version Introduced in firmware 4.4.4.14
1111  * @param msg Message object.
1112  * @return Y Pose (um).
1113  */
1114 GoFx(k32s) GoSectionIntensityMsg_YPose(GoSectionIntensityMsg msg);
1115 
1116 /**
1117  * Gets the Pose Angle, in microdegrees.
1118  *
1119  * @public @memberof GoSectionIntensityMsg
1120  * @version Introduced in firmware 4.4.4.14
1121  * @param msg Message object.
1122  * @return Angle Pose (microdegrees).
1123  */
1124 GoFx(k32s) GoSectionIntensityMsg_AnglePose(GoSectionIntensityMsg msg);
1125 
1126 /**
1127  * Gets the x-offset, in micrometers.
1128  *
1129  * @public @memberof GoSectionIntensityMsg
1130  * @version Introduced in firmware 4.4.4.14
1131  * @param msg Message object.
1132  * @return X offset (um).
1133  */
1134 GoFx(k32s) GoSectionIntensityMsg_XOffset(GoSectionIntensityMsg msg);
1135 
1136 /**
1137  * Gets a pointer to a Section intensity array.
1138  *
1139  * @public @memberof GoSectionIntensityMsg
1140  * @version Introduced in firmware 4.4.4.14
1141  * @param msg Message object.
1142  * @param index Section intensity array index.
1143  * @return Data pointer.
1144  */
1145 GoFx(k8u*) GoSectionIntensityMsg_At(GoSectionIntensityMsg msg, kSize index);
1146 
1147 /**
1148  * Gets the exposure.
1149  *
1150  * @public @memberof GoSectionIntensityMsg
1151  * @version Introduced in firmware 4.4.4.14
1152  * @param msg Message object.
1153  * @return Exposure in uS.
1154  */
1155 GoFx(k32u) GoSectionIntensityMsg_Exposure(GoSectionIntensityMsg msg);
1156 
1157 /// @endcond
1158 
1159 
1160 /**
1161  * @struct GoMeasurementData
1162  * @extends kValue
1163  * @ingroup GoSdk-DataChannel
1164  * @brief Represents a measurement result.
1165  */
1166 typedef struct GoMeasurementData
1167 {
1168  k64f value; ///< Measurement value.
1169  GoDecision decision; ///< Measurement decision value.
1170  GoDecisionCode decisionCode; ///< Measurement decision code - relevant only when the value represents a failure.
1172 
1173 /**
1174  * Gets the measurement data value.
1175  *
1176  * @public @memberof GoMeasurementData
1177  * @version Introduced in firmware 4.2.4.7
1178  * @param data Data object.
1179  * @return Measurement value.
1180  */
1182 
1183 /**
1184  * Gets the measurement data decision.
1185  *
1186  * @public @memberof GoMeasurementData
1187  * @version Introduced in firmware 4.2.4.7
1188  * @param data Data object.
1189  * @return Measurement decision.
1190  */
1192 
1193 /**
1194  * Gets the measurement decision code.
1195  *
1196  * @public @memberof GoMeasurementData
1197  * @version Introduced in firmware 4.2.4.7
1198  * @param data Data object.
1199  * @return Measurement decision code.
1200  */
1202 
1203 
1204 /**
1205  * @class GoMeasurementMsg
1206  * @extends GoDataMsg
1207  * @ingroup GoSdk-DataChannel
1208  * @brief Represents a message containing a set of GoMeasurementData.
1209  */
1210 typedef GoDataMsg GoMeasurementMsg;
1211 
1212 /**
1213  * Gets the measurement identifier.
1214  *
1215  * @public @memberof GoMeasurementMsg
1216  * @version Introduced in firmware 4.0.10.27
1217  * @param msg Message object.
1218  * @return Measurement identifier.
1219  */
1220 GoFx(k16u) GoMeasurementMsg_Id(GoMeasurementMsg msg);
1221 
1222 /**
1223  * Count of measurements in this message.
1224  *
1225  * @public @memberof GoMeasurementMsg
1226  * @version Introduced in firmware 4.0.10.27
1227  * @param msg Message object.
1228  * @return Count of measurements.
1229  */
1230 GoFx(kSize) GoMeasurementMsg_Count(GoMeasurementMsg msg);
1231 
1232 /**
1233  * Gets the measurement at the specified index.
1234  *
1235  * @public @memberof GoMeasurementMsg
1236  * @version Introduced in firmware 4.0.10.27
1237  * @param msg Message object.
1238  * @param index Measurement index.
1239  * @return Measurement pointer.
1240  */
1241 GoFx(GoMeasurementData*) GoMeasurementMsg_At(GoMeasurementMsg msg, kSize index);
1242 
1243 
1244 /**
1245  * @class GoAlignMsg
1246  * @extends GoDataMsg
1247  * @ingroup GoSdk-DataChannel
1248  * @brief Represents a message containing an alignment result.
1249  */
1250 typedef GoDataMsg GoAlignMsg;
1251 
1252 /**
1253  * Gets the alignment result.
1254  *
1255  * @public @memberof GoAlignMsg
1256  * @version Introduced in firmware 4.0.10.27
1257  * @param msg Message object.
1258  * @return Alignment result.
1259  */
1260 GoFx(kStatus) GoAlignMsg_Status(GoAlignMsg msg);
1261 
1262 /**
1263  * @class GoExposureCalMsg
1264  * @extends GoDataMsg
1265  * @ingroup GoSdk-DataChannel
1266  * @brief Represents a message containing exposure calibration results.
1267  */
1268 typedef GoDataMsg GoExposureCalMsg;
1269 
1270 /**
1271  * Gets the exposure calibration result.
1272  *
1273  * @public @memberof GoExposureCalMsg
1274  * @version Introduced in firmware 4.0.10.27
1275  * @param msg Message object.
1276  * @return Exposure calibration result.
1277  */
1278 GoFx(kStatus) GoExposureCalMsg_Status(GoExposureCalMsg msg);
1279 
1280 /**
1281  * Gets the calibrated exposure.
1282  *
1283  * @public @memberof GoExposureCalMsg
1284  * @version Introduced in firmware 4.0.10.27
1285  * @param msg Message object.
1286  * @return Calibrated exposure value in uS if the result is kOK.
1287  */
1288 GoFx(k64f) GoExposureCalMsg_Exposure(GoExposureCalMsg msg);
1289 
1290 
1291 /**
1292  * @class GoEdgeMatchMsg
1293  * @extends GoDataMsg
1294  * @ingroup GoSdk-DataChannel
1295  * @brief Represents a message containing edge based part matching results.
1296  */
1297 typedef GoDataMsg GoEdgeMatchMsg;
1298 
1299 /**
1300  * Gets the edge match decision.
1301  *
1302  * @public @memberof GoEdgeMatchMsg
1303  * @version Introduced in firmware 4.2.4.7
1304  * @param msg Message object.
1305  * @return Edge match decision.
1306  */
1307 GoFx(k8u) GoEdgeMatchMsg_Decision(GoEdgeMatchMsg msg);
1308 
1309 /**
1310  * Gets the edge match X offset.
1311  *
1312  * @public @memberof GoEdgeMatchMsg
1313  * @version Introduced in firmware 4.2.4.7
1314  * @param msg Message object.
1315  * @return Edge match X offset.
1316  */
1317 GoFx(k64f) GoEdgeMatchMsg_XOffset(GoEdgeMatchMsg msg);
1318 
1319 /**
1320  * Gets the edge match Y offset.
1321  *
1322  * @public @memberof GoEdgeMatchMsg
1323  * @version Introduced in firmware 4.2.4.7
1324  * @param msg Message object.
1325  * @return Edge match Y offset.
1326  */
1327 GoFx(k64f) GoEdgeMatchMsg_YOffset(GoEdgeMatchMsg msg);
1328 
1329 /**
1330  * Gets the edge match Z angle.
1331  *
1332  * @public @memberof GoEdgeMatchMsg
1333  * @version Introduced in firmware 4.2.4.7
1334  * @param msg Message object.
1335  * @return Edge match Z angle.
1336  */
1337 GoFx(k64f) GoEdgeMatchMsg_ZAngle(GoEdgeMatchMsg msg);
1338 
1339 /**
1340  * Gets the edge match quality value.
1341  *
1342  * @public @memberof GoEdgeMatchMsg
1343  * @version Introduced in firmware 4.2.4.7
1344  * @param msg Message object.
1345  * @return Edge match quality value.
1346  */
1347 GoFx(k64f) GoEdgeMatchMsg_QualityValue(GoEdgeMatchMsg msg);
1348 
1349 /**
1350  * Gets the edge match quality decision.
1351  *
1352  * @public @memberof GoEdgeMatchMsg
1353  * @version Introduced in firmware 4.2.4.7
1354  * @param msg Message object.
1355  * @return Edge match quality decision.
1356  */
1357 GoFx(k8u) GoEdgeMatchMsg_QualityDecision(GoEdgeMatchMsg msg);
1358 
1359 
1360 /**
1361  * @class GoEllipseMatchMsg
1362  * @extends GoDataMsg
1363  * @ingroup GoSdk-DataChannel
1364  * @brief Represents a message containing ellipse based part matching results.
1365  */
1367 
1368 /**
1369  * Gets the ellipse match decision.
1370  *
1371  * @public @memberof GoEllipseMatchMsg
1372  * @version Introduced in firmware 4.2.4.7
1373  * @param msg Message object.
1374  * @return Ellipse match quality decision.
1375  */
1376 GoFx(k8u) GoEllipseMatchMsg_Decision(GoEllipseMatchMsg msg);
1377 
1378 /**
1379  * Gets the ellipse match X offset.
1380  *
1381  * @public @memberof GoEllipseMatchMsg
1382  * @version Introduced in firmware 4.2.4.7
1383  * @param msg Message object.
1384  * @return Ellipse match X offset.
1385  */
1386 GoFx(k64f) GoEllipseMatchMsg_XOffset(GoEllipseMatchMsg msg);
1387 
1388 /**
1389  * Gets the ellipse match Y offset.
1390  *
1391  * @public @memberof GoEllipseMatchMsg
1392  * @version Introduced in firmware 4.2.4.7
1393  * @param msg Message object.
1394  * @return Ellipse match Y offset.
1395  */
1396 GoFx(k64f) GoEllipseMatchMsg_YOffset(GoEllipseMatchMsg msg);
1397 
1398 /**
1399  * Gets the ellipse match Z angle.
1400  *
1401  * @public @memberof GoEllipseMatchMsg
1402  * @version Introduced in firmware 4.2.4.7
1403  * @param msg Message object.
1404  * @return Ellipse match Z angle.
1405  */
1406 GoFx(k64f) GoEllipseMatchMsg_ZAngle(GoEllipseMatchMsg msg);
1407 
1408 /**
1409 * Gets the ellipse match minor value.
1410 *
1411  * @public @memberof GoEllipseMatchMsg
1412  * @version Introduced in firmware 4.2.4.7
1413  * @param msg Message object.
1414  * @return Ellipse match minor value.
1415  */
1416 GoFx(k64f) GoEllipseMatchMsg_MinorValue(GoEllipseMatchMsg msg);
1417 
1418 /**
1419  * Gets the ellipse match minor decision.
1420  *
1421  * @public @memberof GoEllipseMatchMsg
1422  * @version Introduced in firmware 4.2.4.7
1423  * @param msg Message object.
1424  * @return Ellipse match minor decision.
1425  */
1426 GoFx(k8u) GoEllipseMatchMsg_MinorDecision(GoEllipseMatchMsg msg);
1427 
1428 /**
1429  * Gets the ellipse match major value.
1430  *
1431  * @public @memberof GoEllipseMatchMsg
1432  * @version Introduced in firmware 4.2.4.7
1433  * @param msg Message object.
1434  * @return Ellipse match major value.
1435  */
1436 GoFx(k64f) GoEllipseMatchMsg_MajorValue(GoEllipseMatchMsg msg);
1437 
1438 /**
1439  * Gets the ellipse match major decision.
1440  *
1441  * @public @memberof GoEllipseMatchMsg
1442  * @version Introduced in firmware 4.2.4.7
1443  * @param msg Message object.
1444  * @return Ellipse match major decision.
1445  */
1446 GoFx(k8u) GoEllipseMatchMsg_MajorDecision(GoEllipseMatchMsg msg);
1447 
1448 
1449 /**
1450  * @class GoBoundingBoxMatchMsg
1451  * @extends GoDataMsg
1452  * @ingroup GoSdk-DataChannel
1453  * @brief Represents a message containing bounding box based part matching results.
1454  */
1456 
1457 /**
1458  * Gets the bounding box match major value.
1459  *
1460  * @public @memberof GoBoundingBoxMatchMsg
1461  * @version Introduced in firmware 4.2.4.7
1462  * @param msg Message object.
1463  * @return Bounding box match major value.
1464  */
1465 GoFx(k8u) GoBoundingBoxMatchMsg_Decision(GoBoundingBoxMatchMsg msg);
1466 
1467 /**
1468  * Gets the bounding box match X offset.
1469  *
1470  * @public @memberof GoBoundingBoxMatchMsg
1471  * @version Introduced in firmware 4.2.4.7
1472  * @param msg Message object.
1473  * @return Bounding box match X offset.
1474  */
1475 GoFx(k64f) GoBoundingBoxMatchMsg_XOffset(GoBoundingBoxMatchMsg msg);
1476 
1477 /**
1478  * Gets the bounding box match Y offset.
1479  *
1480  * @public @memberof GoBoundingBoxMatchMsg
1481  * @version Introduced in firmware 4.2.4.7
1482  * @param msg Message object.
1483  * @return Bounding box match Y offset.
1484  */
1485 GoFx(k64f) GoBoundingBoxMatchMsg_YOffset(GoBoundingBoxMatchMsg msg);
1486 
1487 /**
1488  * Gets the bounding box match Z angle.
1489  *
1490  * @public @memberof GoBoundingBoxMatchMsg
1491  * @version Introduced in firmware 4.2.4.7
1492  * @param msg Message object.
1493  * @return Bounding box match Z angle.
1494  */
1495 GoFx(k64f) GoBoundingBoxMatchMsg_ZAngle(GoBoundingBoxMatchMsg msg);
1496 
1497 /**
1498  * Gets the bounding box match length value.
1499  *
1500  * @public @memberof GoBoundingBoxMatchMsg
1501  * @version Introduced in firmware 4.2.4.7
1502  * @param msg Message object.
1503  * @return Bounding box match length value.
1504  */
1505 GoFx(k64f) GoBoundingBoxMatchMsg_LengthValue(GoBoundingBoxMatchMsg msg);
1506 
1507 /**
1508  * Gets the bounding box match length decision.
1509  *
1510  * @public @memberof GoBoundingBoxMatchMsg
1511  * @version Introduced in firmware 4.2.4.7
1512  * @param msg Message object.
1513  * @return Bounding box match length decision.
1514  */
1515 GoFx(k8u) GoBoundingBoxMatchMsg_LengthDecision(GoBoundingBoxMatchMsg msg);
1516 
1517 /**
1518  * Gets the bounding box match width value.
1519  *
1520  * @public @memberof GoBoundingBoxMatchMsg
1521  * @version Introduced in firmware 4.2.4.7
1522  * @param msg Message object.
1523  * @return Bounding box match width value.
1524  */
1525 GoFx(k64f) GoBoundingBoxMatchMsg_WidthValue(GoBoundingBoxMatchMsg msg);
1526 
1527 /**
1528  * Gets the bounding box match width decision.
1529  *
1530  * @public @memberof GoBoundingBoxMatchMsg
1531  * @version Introduced in firmware 4.2.4.7
1532  * @param msg Message object.
1533  * @return Bounding box match width decision.
1534  */
1535 GoFx(k8u) GoBoundingBoxMatchMsg_WidthDecision(GoBoundingBoxMatchMsg msg);
1536 
1537 
1538 /**
1539  * @class GoEventMsg
1540  * @extends GoDataMsg
1541  * @ingroup GoSdk-DataChannel
1542  * @brief Represents a message containing bounding box based part matching results.
1543  */
1544 typedef GoDataMsg GoEventMsg;
1545 
1546 /**
1547  * Gets the event type.
1548  *
1549  * @public @memberof GoEventMsg
1550  * @version Introduced in firmware 4.5.3.57
1551  * @param msg Message object.
1552  * @return Event type.
1553  */
1554 GoFx(GoEventType) GoEventMsg_Type(GoEventMsg msg);
1555 
1556 
1557 /**
1558  * @class GoTracheidMsg
1559  * @extends GoDataMsg
1560  * @ingroup GoSdk-DataChannel
1561  * @brief Represents a data message containing a set of tracheid data.
1562  */
1563 typedef GoDataMsg GoTracheidMsg;
1564 
1565 /**
1566 * @struct GoTracheidEllipse
1567 * @extends kValue
1568 * @ingroup GoSdk-DataChannel
1569 * @brief Represents a tracheid ellipse.
1570 */
1571 typedef struct GoTracheidEllipse
1572 {
1573  k64f area; ///< Ellipse area
1574  k64f angle; ///< Ellipse angle
1575  k64f scatter; ///< Ellipse scatter
1576  k64f minor; ///< Ellipse minor
1577  k64f major; ///< Ellipse major
1578 
1580 
1581 /**
1582  * Gets the tracheid source.
1583  *
1584  * @public @memberof GoTracheidMsg
1585  * @version Introduced in firmware 4.5.3.57
1586  * @param msg Message object.
1587  * @return Tracheid source.
1588  */
1590 
1591 /**
1592  * Gets the tracheid camera index.
1593  *
1594  * @public @memberof GoTracheidMsg
1595  * @version Introduced in firmware 4.5.3.57
1596  * @param msg Message object.
1597  * @return Tracheid camera index.
1598  */
1600 
1601 /**
1602  * Gets the tracheid ellipses for all spots.
1603  *
1604  * @public @memberof GoTracheidMsg
1605  * @version Introduced in firmware 4.5.3.57
1606  * @param msg Message object.
1607  * @return Tracheid ellipses (array of GoTracheidEllipse).
1608  */
1610 
1611 
1612 kEndHeader()
1613 #include <GoSdk/Messages/GoDataTypes.x.h>
1614 
1615 #endif
Represents an acquisition stamp.
Definition: GoDataTypes.h:40
GoStamp * GoStampMsg_At(GoStampMsg msg, kSize index)
Gets the stamp at the specified index.
k64f scatter
Ellipse scatter.
Definition: GoDataTypes.h:1575
k8u GoTracheidMsg_CameraIndex(GoTracheidMsg msg)
Gets the tracheid camera index.
k32s GoRangeMsg_ZOffset(GoRangeMsg msg)
Gets the Range z-offset, in micrometers.
kSize GoProfileIntensityMsg_Count(GoProfileIntensityMsg msg)
Gets the count of profile intensity arrays in this message.
GoDecision decision
Measurement decision value.
Definition: GoDataTypes.h:1169
kSize GoVideoMsg_Width(GoVideoMsg msg)
Gets the image width, in pixels.
kBool GoVideoMsg_IsFlippedX(GoVideoMsg msg)
Indicates whether the video message data requires horizontal flipping to match up with profile data...
kCfa GoVideoMsg_Cfa(GoVideoMsg msg)
Gets the image color filter array.
k32s GoResampledProfileMsg_ZOffset(GoResampledProfileMsg msg)
Gets the profile z-offset, in micrometers.
k64f GoBoundingBoxMatchMsg_YOffset(GoBoundingBoxMatchMsg msg)
Gets the bounding box match Y offset.
k32u GoResampledProfileMsg_XResolution(GoResampledProfileMsg msg)
Gets the x-resolution, in nanometers.
k8u GoProfileMsg_CameraIndex(GoProfileMsg msg)
Gets the source camera index.
k8u GoEllipseMatchMsg_MajorDecision(GoEllipseMatchMsg msg)
Gets the ellipse match major decision.
k64f GoBoundingBoxMatchMsg_ZAngle(GoBoundingBoxMatchMsg msg)
Gets the bounding box match Z angle.
k8u GoProfileIntensityMsg_CameraIndex(GoProfileMsg msg)
Gets the source camera index.
k32s GoProfileIntensityMsg_XOffset(GoProfileIntensityMsg msg)
Gets the profile x-offset, in micrometers.
k8u GoBoundingBoxMatchMsg_WidthDecision(GoBoundingBoxMatchMsg msg)
Gets the bounding box match width decision.
k32s GoProfileMsg_ZOffset(GoProfileMsg msg)
Gets the profile z-offset, in micrometers.
k32u GoProfileMsg_Exposure(GoProfileMsg msg)
Gets the exposure.
Represents a data message containing a video image.
k64f area
Ellipse area.
Definition: GoDataTypes.h:1573
k32u GoResampledProfileMsg_Exposure(GoResampledProfileMsg msg)
Gets the exposure.
kPoint16s * GoProfileMsg_At(GoProfileMsg msg, kSize index)
Gets a pointer to a profile array.
Represents a message containing edge based part matching results.
Represents the possible measurement decision codes.
k8u GoEllipseMatchMsg_Decision(GoEllipseMatchMsg msg)
Gets the ellipse match decision.
k32u GoProfileIntensityMsg_Exposure(GoProfileIntensityMsg msg)
Gets the exposure.
Represents a data message containing a set of re-sampled profile arrays.
GoEventType GoEventMsg_Type(GoEventMsg msg)
Gets the event type.
k8u GoBoundingBoxMatchMsg_Decision(GoBoundingBoxMatchMsg msg)
Gets the bounding box match major value.
k64f minor
Ellipse minor.
Definition: GoDataTypes.h:1576
kSize GoProfileMsg_Width(GoProfileMsg msg)
Gets the count of ranges in each profile array.
Represents a data source.
GoDataSource GoVideoMsg_Source(GoVideoMsg msg)
Gets the video source.
Represents the measurement output decision values. Bit 0 represents the decision value, while bits 1 through 7 represent the decision code, outlined by GoDecisionCode.
Represents a data message containing a set of range data.
k32u GoProfileIntensityMsg_XResolution(GoProfileIntensityMsg msg)
Gets the x-resolution, in nanometers.
kSize GoResampledProfileMsg_Count(GoResampledProfileMsg msg)
Gets the count of re-sampled profile arrays in this message.
k64f GoEllipseMatchMsg_XOffset(GoEllipseMatchMsg msg)
Gets the ellipse match X offset.
kSize GoVideoMsg_CameraIndex(GoVideoMsg msg)
Gets the camera index that the video data originates from.
GoDecision GoMeasurementData_Decision(GoMeasurementData data)
Gets the measurement data decision.
kSize GoRangeMsg_Count(GoRangeMsg msg)
Gets the count of Range data in this message.
kSize GoRangeIntensityMsg_Count(GoRangeIntensityMsg msg)
Gets the count of range intensity data in this message.
k32u GoProfileMsg_ZResolution(GoProfileMsg msg)
Gets the profile z-resolution, in nanometers.
k64f GoExposureCalMsg_Exposure(GoExposureCalMsg msg)
Gets the calibrated exposure.
k64u timestamp
Timestamp in internal units approximating microseconds where the true time in us = timestamp value / ...
Definition: GoDataTypes.h:43
void * GoVideoMsg_RowAt(GoVideoMsg msg, kSize rowIndex)
Gets a pointer to a row within the image.
kSize GoVideoMsg_PixelSize(GoVideoMsg msg)
Gets the image pixel size, in bytes.
k8u GoBoundingBoxMatchMsg_LengthDecision(GoBoundingBoxMatchMsg msg)
Gets the bounding box match length decision.
Represents a message containing a set of acquisition stamps.
Represents a message containing bounding box based part matching results.
kSize GoStampMsg_Count(GoStampMsg msg)
Returns the number of stamps contained in this message.
k64f major
Ellipse major.
Definition: GoDataTypes.h:1577
k32u GoVideoMsg_Exposure(GoVideoMsg msg)
Gets the exposure.
kSize GoVideoMsg_Height(GoVideoMsg msg)
Gets the image height, in pixels.
kPixelFormat GoVideoMsg_PixelFormat(GoVideoMsg msg)
Gets the pixel format descriptor.
k32u GoProfileMsg_XResolution(GoProfileMsg msg)
Gets the profile x-resolution, in nanometers.
k64f GoEllipseMatchMsg_MajorValue(GoEllipseMatchMsg msg)
Gets the ellipse match major value.
k64s encoderAtZ
Encoder value latched at z-index mark (encoder ticks).
Definition: GoDataTypes.h:45
k64u status
Bit mask containing frame information:
Definition: GoDataTypes.h:46
Essential SDK declarations.
kSize GoProfileIntensityMsg_Width(GoProfileIntensityMsg msg)
Gets the count of intensity values in each profile intensity array.
kSize GoProfileMsg_Count(GoProfileMsg msg)
Gets the count of profile arrays in this message.
k16u GoMeasurementMsg_Id(GoMeasurementMsg msg)
Gets the measurement identifier.
GoDataSource GoProfileIntensityMsg_Source(GoProfileIntensityMsg msg)
Gets the profile source.
GoDataSource GoStampMsg_Source(GoStampMsg msg)
Gets the stamp source.
Represents a message containing exposure calibration results.
kBool GoVideoMsg_IsFlippedY(GoVideoMsg msg)
Indicates whether the video message data requires vertical flipping to match up with profile data...
Represents a video message pixel type.
k32u GoRangeMsg_Exposure(GoRangeMsg msg)
Gets the exposure.
GoDataSource GoRangeMsg_Source(GoRangeMsg msg)
Gets the Range source.
Represents a data message containing a set of profile intensity arrays.
Represents a data message containing a set of tracheid data.
k32u id
Source device ID.
Definition: GoDataTypes.h:57
GoDataMessageType GoDataMsg_Type(GoDataMsg message)
Returns the message type for a data channel message given in a GoDataSet.
k64f GoMeasurementData_Value(GoMeasurementData data)
Gets the measurement data value.
k64f GoEllipseMatchMsg_ZAngle(GoEllipseMatchMsg msg)
Gets the ellipse match Z angle.
GoMeasurementData * GoMeasurementMsg_At(GoMeasurementMsg msg, kSize index)
Gets the measurement at the specified index.
Represents a data message containing a set of range intensity data.
k8u GoEdgeMatchMsg_QualityDecision(GoEdgeMatchMsg msg)
Gets the edge match quality decision.
Lists all data message types.
kSize GoMeasurementMsg_Count(GoMeasurementMsg msg)
Count of measurements in this message.
k32u GoResampledProfileMsg_ZResolution(GoResampledProfileMsg msg)
Gets the profile z-resolution, in nanometers.
k64f GoBoundingBoxMatchMsg_LengthValue(GoBoundingBoxMatchMsg msg)
Gets the bounding box match length value.
k64f angle
Ellipse angle.
Definition: GoDataTypes.h:1574
k32s GoProfileMsg_XOffset(GoProfileMsg msg)
Gets the profile x-offset, in micrometers.
GoDecisionCode GoMeasurementData_DecisionCode(GoMeasurementData data)
Gets the measurement decision code.
GoDecisionCode decisionCode
Measurement decision code - relevant only when the value represents a failure.
Definition: GoDataTypes.h:1170
k64f GoEllipseMatchMsg_MinorValue(GoEllipseMatchMsg msg)
Gets the ellipse match minor value.
Represents a data message containing a set of profile arrays.
GoDataSource GoRangeIntensityMsg_Source(GoRangeIntensityMsg msg)
Gets the range intensity source.
Represents a message containing an alignment result.
k64f value
Measurement value.
Definition: GoDataTypes.h:1168
k32u reserved32u
Reserved.
Definition: GoDataTypes.h:58
Represents a message containing a set of GoMeasurementData.
k64f GoEdgeMatchMsg_QualityValue(GoEdgeMatchMsg msg)
Gets the edge match quality value.
Represents a base message sourced from the data channel.
kArray1 GoTracheidMsg_Ellipses(GoTracheidMsg msg)
Gets the tracheid ellipses for all spots.
Represents a message containing bounding box based part matching results.
kStatus GoAlignMsg_Status(GoAlignMsg msg)
Gets the alignment result.
k8u * GoProfileIntensityMsg_At(GoProfileIntensityMsg msg, kSize index)
Gets a pointer to a profile intensity array.
Represents a message containing ellipse based part matching results.
k64f GoEdgeMatchMsg_ZAngle(GoEdgeMatchMsg msg)
Gets the edge match Z angle.
k32u GoRangeIntensityMsg_Exposure(GoRangeIntensityMsg msg)
Gets the exposure.
k16s * GoRangeMsg_At(GoRangeMsg msg, kSize index)
Gets a pointer to Range data.
k64f GoBoundingBoxMatchMsg_XOffset(GoBoundingBoxMatchMsg msg)
Gets the bounding box match X offset.
GoPixelType GoVideoMsg_PixelType(GoVideoMsg msg)
Gets the data type used to represent an image pixel.
Represents the event type represented by an event message.
k16s * GoResampledProfileMsg_At(GoResampledProfileMsg msg, kSize index)
Gets a pointer to a re-sampled profile array.
GoDataSource GoTracheidMsg_Source(GoTracheidMsg msg)
Gets the tracheid source.
GoDataSource GoResampledProfileMsg_Source(GoResampledProfileMsg msg)
Gets the profile source.
k64s encoder
Position (encoder ticks).
Definition: GoDataTypes.h:44
k64f GoEllipseMatchMsg_YOffset(GoEllipseMatchMsg msg)
Gets the ellipse match Y offset.
k64u frameIndex
Frame index (counts up from zero).
Definition: GoDataTypes.h:42
k32u GoRangeMsg_ZResolution(GoRangeMsg msg)
Gets the Range z-resolution, in nanometers.
k64f GoEdgeMatchMsg_YOffset(GoEdgeMatchMsg msg)
Gets the edge match Y offset.
k64f GoEdgeMatchMsg_XOffset(GoEdgeMatchMsg msg)
Gets the edge match X offset.
kSize GoResampledProfileMsg_Width(GoResampledProfileMsg msg)
Gets the count of points in each re-sampled profile array.
kSize GoVideoMsg_ExposureIndex(GoVideoMsg msg)
Gets the exposure index.
Represents a tracheid ellipse.
Definition: GoDataTypes.h:1571
k8u GoEdgeMatchMsg_Decision(GoEdgeMatchMsg msg)
Gets the edge match decision.
k8u GoEllipseMatchMsg_MinorDecision(GoEllipseMatchMsg msg)
Gets the ellipse match minor decision.
kStatus GoExposureCalMsg_Status(GoExposureCalMsg msg)
Gets the exposure calibration result.
k64f GoBoundingBoxMatchMsg_WidthValue(GoBoundingBoxMatchMsg msg)
Gets the bounding box match width value.
k32s GoResampledProfileMsg_XOffset(GoResampledProfileMsg msg)
Gets the profile x-offset, in micrometers.
k64u reserved64u
Reserved.
Definition: GoDataTypes.h:59
Represents a measurement result.
Definition: GoDataTypes.h:1166
GoDataSource GoProfileMsg_Source(GoProfileMsg msg)
Gets the profile source.
k8u * GoRangeIntensityMsg_At(GoRangeIntensityMsg msg, kSize index)
Gets a pointer to range intensity data.