Gocator API
 All Classes Files Functions Variables Typedefs Macros Groups 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) 2014 by LMI Technologies Inc.
7  * Licensed under the MIT License.
8  * Redistributed files must retain the above copyright notice.
9  */
10 #ifndef GO_SDK_DATA_TYPES_H
11 #define GO_SDK_DATA_TYPES_H
12 
13 #include <GoSdk/GoSdkDef.h>
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  * @param message A data channel message.
29  * @return A GoDataMessageType value.
30  */
31 GoFx(GoDataMessageType) GoDataMsg_Type(GoDataMsg message);
32 
33 /**
34  * @struct GoStamp
35  * @extends kValue
36  * @ingroup GoSdk-DataChannel
37  * @brief Represents an acquisition stamp.
38  */
39 typedef struct GoStamp
40 {
41  k64u frameIndex; ///< Frame index (counts up from zero).
42  k64u timestamp; ///< Timestamp (approximate ns).
43  k64s encoder; ///< Position (encoder ticks).
44  k64s encoderAtZ; ///< Encoder value latched at z/index mark (encoder ticks).
45  k64u status;
46  /**<
47  * Bit mask containing frame information:
48  *
49  * - Bit 0: Represents sensor digital input state.
50  * - Bit 4: Represents Master digital input state.
51  * - Bits 8 and 9: Represents inter-frame digital pulse trigger
52  (Master digital input if a Master is connected, otherwise
53  sensor digital input. Value is cleared after each frame
54  and clamped at 3 if more than 3 pulses are received).
55  */
56  k64u reserved; ///< Reserved x 2.
57 } GoStamp;
58 
59 /**
60  * @class GoStampMsg
61  * @extends GoDataMsg
62  * @ingroup GoSdk-DataChannel
63  * @brief Represents a message containing a set of acquisition stamps.
64  */
65 typedef GoDataMsg GoStampMsg;
66 
67 /**
68  * Gets the stamp source.
69  *
70  * @public @memberof GoStampMsg
71  * @param msg Message object.
72  * @return Stamp source.
73  */
75 
76 /**
77  * Returns the number of stamps contained in this message.
78  *
79  * @public @memberof GoStampMsg
80  * @param msg Message object.
81  * @return Count of stamps.
82  */
83 GoFx(kSize) GoStampMsg_Count(GoStampMsg msg);
84 
85 /**
86  * Gets the stamp at the specified index.
87  *
88  * @public @memberof GoStampMsg
89  * @param msg Message object.
90  * @param index Stamp index.
91  * @return Stamp pointer.
92  */
93 GoFx(GoStamp*) GoStampMsg_At(GoStampMsg msg, kSize index);
94 
95 /**
96  * @class GoVideoMsg
97  * @extends GoDataMsg
98  * @ingroup GoSdk-DataChannel
99  * @brief Represents a data message containing a video image.
100  */
101 typedef GoDataMsg GoVideoMsg;
102 
103 /**
104  * Gets the video source.
105  *
106  * @public @memberof GoVideoMsg
107  * @param msg Message object.
108  * @return Video source.
109  */
110 GoFx(GoDataSource) GoVideoMsg_Source(GoVideoMsg msg);
111 
112 
113 /**
114  * Gets the camera index that the video data originates from.
115  *
116  * @public @memberof GoVideoMsg
117  * @param msg Message object.
118  * @return Camera index.
119  */
120 GoFx(kSize) GoVideoMsg_CameraIndex(GoVideoMsg msg);
121 
122 
123 /**
124  * Gets the image width, in pixels.
125  *
126  * @public @memberof GoVideoMsg
127  * @param msg Message object.
128  * @return Image width, in pixels.
129  */
130 GoFx(kSize) GoVideoMsg_Width(GoVideoMsg msg);
131 
132 /**
133  * Gets the image height, in pixels.
134  *
135  * @public @memberof GoVideoMsg
136  * @param msg Message object.
137  * @return Image height, in pixels.
138  */
139 GoFx(kSize) GoVideoMsg_Height(GoVideoMsg msg);
140 
141 /**
142  * Gets the data type used to represent an image pixel.
143  *
144  * @public @memberof GoVideoMsg
145  * @param msg Message object.
146  * @return Pixel type.
147  */
148 GoFx(GoPixelType) GoVideoMsg_PixelType(GoVideoMsg msg);
149 
150 /**
151  * Gets the image pixel size, in bytes.
152  *
153  * @public @memberof GoVideoMsg
154  * @param msg Message object.
155  * @return Pixel size, in bytes.
156  */
157 GoFx(kSize) GoVideoMsg_PixelSize(GoVideoMsg msg);
158 
159 /**
160  * Gets the pixel format descriptor.
161  *
162  * @public @memberof GoVideoMsg
163  * @param msg Message object.
164  * @return Pixel format.
165  */
166 GoFx(kPixelFormat) GoVideoMsg_PixelFormat(GoVideoMsg msg);
167 
168 /**
169  * Gets the image color filter array.
170  *
171  * @public @memberof GoVideoMsg
172  * @param msg Message object.
173  * @return Color filter array.
174  */
175 GoFx(kCfa) GoVideoMsg_Cfa(GoVideoMsg msg);
176 
177 /**
178  * Gets a pointer to a row within the image.
179  *
180  * @public @memberof GoVideoMsg
181  * @param msg Message object.
182  * @param rowIndex Row index.
183  * @return Row pointer.
184  */
185 GoFx(void*) GoVideoMsg_RowAt(GoVideoMsg msg, kSize rowIndex);
186 
187 /**
188  * Gets the exposure index.
189  *
190  * @public @memberof GoVideoMsg
191  * @param msg Message object.
192  * @return Exposure index.
193  */
194 GoFx(kSize) GoVideoMsg_ExposureIndex(GoVideoMsg msg);
195 
196 /**
197  * Gets the exposure.
198  *
199  * @public @memberof GoVideoMsg
200  * @param msg Message object.
201  * @return Exposure in uS.
202  */
203 GoFx(k32u) GoVideoMsg_Exposure(GoVideoMsg msg);
204 
205 /// @cond (Gocator_1x00)
206 /**
207  * @class GoRangeMsg
208  * @extends GoDataMsg
209  * @ingroup GoSdk-DataChannel
210  * @brief Represents a data message containing a set of range data.
211  */
212 typedef GoDataMsg GoRangeMsg;
213 
214 /**
215  * Gets the Range source.
216  *
217  * @public @memberof GoRangeMsg
218  * @param msg Message object.
219  * @return Range source.
220  */
221 GoFx(GoDataSource) GoRangeMsg_Source(GoRangeMsg msg);
222 
223 /**
224  * Gets the count of Range data in this message.
225  *
226  * @public @memberof GoRangeMsg
227  * @param msg Message object.
228  * @return Count of Range data.
229  */
230 GoFx(kSize) GoRangeMsg_Count(GoRangeMsg msg);
231 
232 
233 /**
234  * Gets the Range z-resolution, in nanometers.
235  *
236  * @public @memberof GoRangeMsg
237  * @param msg Message object.
238  * @return Z resolution (nm).
239  */
240 GoFx(k32u) GoRangeMsg_ZResolution(GoRangeMsg msg);
241 
242 /**
243  * Gets the Range z-offset, in micrometers.
244  *
245  * @public @memberof GoRangeMsg
246  * @param msg Message object.
247  * @return Z offset (um).
248  */
249 GoFx(k32s) GoRangeMsg_ZOffset(GoRangeMsg msg);
250 
251 /**
252  * Gets a pointer to Range data.
253  *
254  * @public @memberof GoRangeMsg
255  * @param msg Message object.
256  * @param index Range array index.
257  * @return Range pointer.
258  */
259 GoFx(k16s*) GoRangeMsg_At(GoRangeMsg msg, kSize index);
260 
261 /**
262  * Gets the exposure.
263  *
264  * @public @memberof GoRangeMsg
265  * @param msg Message object.
266  * @return Exposure in uS.
267  */
268 GoFx(k32u) GoRangeMsg_Exposure(GoRangeMsg msg);
269 
270 
271 /**
272  * @class GoRangeIntensityMsg
273  * @extends GoDataMsg
274  * @ingroup GoSdk-DataChannel
275  * @brief Represents a data message containing a set of range intensity data.
276  */
278 
279 /**
280  * Gets the range intensity source.
281  *
282  * @public @memberof GoRangeIntensityMsg
283  * @param msg Message object.
284  * @return Range intensity source.
285  */
286 GoFx(GoDataSource) GoRangeIntensityMsg_Source(GoRangeIntensityMsg msg);
287 
288 /**
289  * Gets the count of range intensity data in this message.
290  *
291  * @public @memberof GoRangeIntensityMsg
292  * @param msg Message object.
293  * @return Count of range intensity data.
294  */
295 GoFx(kSize) GoRangeIntensityMsg_Count(GoRangeIntensityMsg msg);
296 
297 /**
298  * Gets a pointer to range intensity data.
299  *
300  * @public @memberof GoRangeIntensityMsg
301  * @param msg Message object.
302  * @param index Range intensity array index.
303  * @return Range intensity data pointer.
304  */
305 GoFx(k8u*) GoRangeIntensityMsg_At(GoRangeIntensityMsg msg, kSize index);
306 
307 /**
308  * Gets the exposure.
309  *
310  * @public @memberof GoRangeIntensityMsg
311  * @param msg Message object.
312  * @return Exposure in uS.
313  */
314 GoFx(k32u) GoRangeIntensityMsg_Exposure(GoRangeIntensityMsg msg);
315 
316 /// @endcond
317 
318 /// @cond (Gocator_2x00)
319 /**
320  * @class GoProfileMsg
321  * @extends GoDataMsg
322  * @ingroup GoSdk-DataChannel
323  * @brief Represents a data message containing a set of profile arrays.
324  */
325 typedef GoDataMsg GoProfileMsg;
326 
327 /**
328  * Gets the profile source.
329  *
330  * @public @memberof GoProfileMsg
331  * @param msg Message object.
332  * @return Profile source.
333  */
334 GoFx(GoDataSource) GoProfileMsg_Source(GoProfileMsg msg);
335 
336 /**
337  * Gets the count of profile arrays in this message.
338  *
339  * @public @memberof GoProfileMsg
340  * @param msg Message object.
341  * @return Count of profile arrays.
342  */
343 GoFx(kSize) GoProfileMsg_Count(GoProfileMsg msg);
344 
345 /**
346  * Gets the count of ranges in each profile array.
347  *
348  * @public @memberof GoProfileMsg
349  * @param msg Message object.
350  * @return Range count.
351  */
352 GoFx(kSize) GoProfileMsg_Width(GoProfileMsg msg);
353 
354 /**
355  * Gets the profile x-resolution, in nanometers.
356  *
357  * @public @memberof GoProfileMsg
358  * @param msg Message object.
359  * @return X resolution (nm).
360  */
361 GoFx(k32u) GoProfileMsg_XResolution(GoProfileMsg msg);
362 
363 /**
364  * Gets the profile z-resolution, in nanometers.
365  *
366  * @public @memberof GoProfileMsg
367  * @param msg Message object.
368  * @return Z resolution (nm).
369  */
370 GoFx(k32u) GoProfileMsg_ZResolution(GoProfileMsg msg);
371 
372 /**
373  * Gets the profile x-offset, in micrometers.
374  *
375  * @public @memberof GoProfileMsg
376  * @param msg Message object.
377  * @return X offset (um).
378  */
379 GoFx(k32s) GoProfileMsg_XOffset(GoProfileMsg msg);
380 
381 /**
382  * Gets the profile z-offset, in micrometers.
383  *
384  * @public @memberof GoProfileMsg
385  * @param msg Message object.
386  * @return Z offset (um).
387  */
388 GoFx(k32s) GoProfileMsg_ZOffset(GoProfileMsg msg);
389 
390 /**
391  * Gets a pointer to a profile array.
392  *
393  * @public @memberof GoProfileMsg
394  * @param msg Message object.
395  * @param index Profile array index.
396  * @return Profile pointer.
397  */
398 GoFx(kPoint16s*) GoProfileMsg_At(GoProfileMsg msg, kSize index);
399 
400 /**
401  * Gets the exposure.
402  *
403  * @public @memberof GoProfileMsg
404  * @param msg Message object.
405  * @return Exposure in uS.
406  */
407 GoFx(k32u) GoProfileMsg_Exposure(GoProfileMsg msg);
408 
409 /**
410  * @class GoResampledProfileMsg
411  * @extends GoDataMsg
412  * @ingroup GoSdk-DataChannel
413  * @brief Represents a data message containing a set of re-sampled profile arrays.
414  */
415 typedef GoDataMsg GoResampledProfileMsg;
416 
417 /**
418  * Gets the profile source.
419  *
420  * @public @memberof GoResampledProfileMsg
421  * @param msg Message object.
422  * @return Profile source.
423  */
424 GoFx(GoDataSource) GoResampledProfileMsg_Source(GoResampledProfileMsg msg);
425 
426 /**
427  * Gets the count of re-sampled profile arrays in this message.
428  *
429  * @public @memberof GoResampledProfileMsg
430  * @param msg Message object.
431  * @return Count of profile arrays.
432  */
433 GoFx(kSize) GoResampledProfileMsg_Count(GoResampledProfileMsg msg);
434 
435 /**
436  * Gets the count of points in each re-sampled profile array.
437  *
438  * @public @memberof GoResampledProfileMsg
439  * @param msg Message object.
440  * @return Point count.
441  */
442 GoFx(kSize) GoResampledProfileMsg_Width(GoResampledProfileMsg msg);
443 
444 /**
445  * Gets the x-resolution, in nanometers.
446  *
447  * @public @memberof GoResampledProfileMsg
448  * @param msg Message object.
449  * @return X resolution (nm).
450  */
451 GoFx(k32u) GoResampledProfileMsg_XResolution(GoResampledProfileMsg msg);
452 
453 /**
454  * Gets the profile z-resolution, in nanometers.
455  *
456  * @public @memberof GoResampledProfileMsg
457  * @param msg Message object.
458  * @return Z resolution (nm).
459  */
460 GoFx(k32u) GoResampledProfileMsg_ZResolution(GoResampledProfileMsg msg);
461 
462 /**
463  * Gets the profile x-offset, in micrometers.
464  *
465  * @public @memberof GoResampledProfileMsg
466  * @param msg Message object.
467  * @return X offset (um).
468  */
469 GoFx(k32s) GoResampledProfileMsg_XOffset(GoResampledProfileMsg msg);
470 
471 /**
472  * Gets the profile z-offset, in micrometers.
473  *
474  * @public @memberof GoResampledProfileMsg
475  * @param msg Message object.
476  * @return Z offset (um).
477  */
478 GoFx(k32s) GoResampledProfileMsg_ZOffset(GoResampledProfileMsg msg);
479 
480 /**
481  * Gets a pointer to a re-sampled profile array.
482  *
483  * @public @memberof GoResampledProfileMsg
484  * @param msg Message object.
485  * @param index Profile array index.
486  * @return Data pointer.
487  */
488 GoFx(k16s*) GoResampledProfileMsg_At(GoResampledProfileMsg msg, kSize index);
489 
490 /**
491  * Gets the exposure.
492  *
493  * @public @memberof GoResampledProfileMsg
494  * @param msg Message object.
495  * @return Exposure in uS.
496  */
497 GoFx(k32u) GoResampledProfileMsg_Exposure(GoResampledProfileMsg msg);
498 
499 
500 /**
501  * @class GoProfileIntensityMsg
502  * @extends GoDataMsg
503  * @ingroup GoSdk-DataChannel
504  * @brief Represents a data message containing a set of profile intensity arrays.
505  */
506 typedef GoDataMsg GoProfileIntensityMsg;
507 
508 /**
509  * Gets the profile source.
510  *
511  * @public @memberof GoProfileIntensityMsg
512  * @param msg Message object.
513  * @return Profile source.
514  */
515 GoFx(GoDataSource) GoProfileIntensityMsg_Source(GoProfileIntensityMsg msg);
516 
517 /**
518  * Gets the count of profile intensity arrays in this message.
519  *
520  * @public @memberof GoProfileIntensityMsg
521  * @param msg Message object.
522  * @return Count of profile arrays.
523  */
524 GoFx(kSize) GoProfileIntensityMsg_Count(GoProfileIntensityMsg msg);
525 
526 /**
527  * Gets the count of intensity values in each profile intensity array.
528  *
529  * @public @memberof GoProfileIntensityMsg
530  * @param msg Message object.
531  * @return Intensity count.
532  */
533 GoFx(kSize) GoProfileIntensityMsg_Width(GoProfileIntensityMsg msg);
534 
535 /**
536  * Gets the x-resolution, in nanometers.
537  *
538  * @public @memberof GoProfileIntensityMsg
539  * @param msg Message object.
540  * @return X resolution (nm).
541  */
542 GoFx(k32u) GoProfileIntensityMsg_XResolution(GoProfileIntensityMsg msg);
543 
544 /**
545  * Gets the profile x-offset, in micrometers.
546  *
547  * @public @memberof GoProfileIntensityMsg
548  * @param msg Message object.
549  * @return X offset (um).
550  */
551 GoFx(k32s) GoProfileIntensityMsg_XOffset(GoProfileIntensityMsg msg);
552 
553 /**
554  * Gets the associated profile type (points or ranges).
555  *
556  * @public @memberof GoProfileIntensityMsg
557  * @param msg Message object.
558  * @return kTRUE for ranges; kFALSE for points.
559  */
560 GoFx(kBool) GoProfileIntensityMsg_IsResampled(GoProfileIntensityMsg msg);
561 
562 /**
563  * Gets a pointer to a profile intensity array.
564  *
565  * @public @memberof GoProfileIntensityMsg
566  * @param msg Message object.
567  * @param index Profile intensity array index.
568  * @return Data pointer.
569  */
570 GoFx(k8u*) GoProfileIntensityMsg_At(GoProfileIntensityMsg msg, kSize index);
571 
572 /**
573  * Gets the exposure.
574  *
575  * @public @memberof GoProfileIntensityMsg
576  * @param msg Message object.
577  * @return Exposure in uS.
578  */
579 GoFx(k32u) GoProfileIntensityMsg_Exposure(GoProfileIntensityMsg msg);
580 
581 /// @endcond
582 
583 /// @cond (Gocator_2x00 || Gocator_3x00)
584 /**
585  * @class GoSurfaceMsg
586  * @extends GoDataMsg
587  * @ingroup GoSdk-DataChannel
588  * @brief Represents a data message containing a surface array.
589  */
590 typedef GoDataMsg GoSurfaceMsg;
591 
592 /**
593  * Gets the profile source.
594  *
595  * @public @memberof GoSurfaceMsg
596  * @param msg Message object.
597  * @return Profile source.
598  */
599 GoFx(GoDataSource) GoSurfaceMsg_Source(GoSurfaceMsg msg);
600 
601 /**
602  * Gets the length of the surface (row count).
603  *
604  * @public @memberof GoSurfaceMsg
605  * @param msg Message object.
606  * @return Surface length.
607  */
608 GoFx(kSize) GoSurfaceMsg_Length(GoSurfaceMsg msg);
609 
610 /**
611  * Gets the width of the surface (column count).
612  *
613  * @public @memberof GoSurfaceMsg
614  * @param msg Message object.
615  * @return Surface width;
616  */
617 GoFx(kSize) GoSurfaceMsg_Width(GoSurfaceMsg msg);
618 
619 /**
620  * Gets the surface x-resolution, in nanometers.
621  *
622  * @public @memberof GoSurfaceMsg
623  * @param msg Message object.
624  * @return X resolution (nm).
625  */
626 GoFx(k32u) GoSurfaceMsg_XResolution(GoSurfaceMsg msg);
627 
628 /**
629  * Gets the surface y-resolution, in nanometers.
630  *
631  * @public @memberof GoSurfaceMsg
632  * @param msg Message object.
633  * @return Y resolution (nm).
634  */
635 GoFx(k32u) GoSurfaceMsg_YResolution(GoSurfaceMsg msg);
636 
637 /**
638  * Gets the surface z-resolution, in nanometers.
639  *
640  * @public @memberof GoSurfaceMsg
641  * @param msg Message object.
642  * @return Z resolution (nm).
643  */
644 GoFx(k32u) GoSurfaceMsg_ZResolution(GoSurfaceMsg msg);
645 
646 /**
647  * Gets the surface x-offset, in micrometers.
648  *
649  * @public @memberof GoSurfaceMsg
650  * @param msg Message object.
651  * @return X offset (um).
652  */
653 GoFx(k32s) GoSurfaceMsg_XOffset(GoSurfaceMsg msg);
654 
655 /**
656  * Gets the surface y-offset, in micrometers.
657  *
658  * @public @memberof GoSurfaceMsg
659  * @param msg Message object.
660  * @return Y offset (um).
661  */
662 GoFx(k32s) GoSurfaceMsg_YOffset(GoSurfaceMsg msg);
663 
664 /**
665  * Gets the surface z-offset, in micrometers.
666  *
667  * @public @memberof GoSurfaceMsg
668  * @param msg Message object.
669  * @return Z offset (um).
670  */
671 GoFx(k32s) GoSurfaceMsg_ZOffset(GoSurfaceMsg msg);
672 
673 /**
674 * Gets the surface ID.
675 *
676 * @public @memberof GoSurfaceMsg
677 * @param msg Message object.
678 * @return Surface ID.
679 */
680 GoFx(k32u) GoSurfaceMsg_SurfaceId(GoSurfaceMsg msg);
681 
682 /**
683  * Gets a pointer to a surface row.
684  *
685  * @public @memberof GoSurfaceMsg
686  * @param msg Message object.
687  * @param index Surface row index.
688  * @return Row pointer.
689  */
690 GoFx(k16s*) GoSurfaceMsg_RowAt(GoSurfaceMsg msg, kSize index);
691 
692 /**
693  * Gets the exposure.
694  *
695  * @public @memberof GoSurfaceMsg
696  * @param msg Message object.
697  * @return Exposure in uS.
698  */
699 GoFx(k32u) GoSurfaceMsg_Exposure(GoSurfaceMsg msg);
700 
701 /**
702  * @class GoSurfaceIntensityMsg
703  * @extends GoDataMsg
704  * @ingroup GoSdk-DataChannel
705  * @brief Represents a data message containing a surface intensity array.
706  */
707 typedef GoDataMsg GoSurfaceIntensityMsg;
708 
709 /**
710  * Gets the profile source.
711  *
712  * @public @memberof GoSurfaceIntensityMsg
713  * @param msg Message object.
714  * @return Profile source.
715  */
716 GoFx(GoDataSource) GoSurfaceIntensityMsg_Source(GoSurfaceIntensityMsg msg);
717 
718 /**
719  * Gets the length of the surface (row count).
720  *
721  * @public @memberof GoSurfaceIntensityMsg
722  * @param msg Message object.
723  * @return Surface length.
724  */
725 GoFx(kSize) GoSurfaceIntensityMsg_Length(GoSurfaceIntensityMsg msg);
726 
727 /**
728  * Gets the width of the surface (column count).
729  *
730  * @public @memberof GoSurfaceIntensityMsg
731  * @param msg Message object.
732  * @return Surface width;
733  */
734 GoFx(kSize) GoSurfaceIntensityMsg_Width(GoSurfaceIntensityMsg msg);
735 
736 /**
737  * Gets the surface x-resolution, in nanometers.
738  *
739  * @public @memberof GoSurfaceIntensityMsg
740  * @param msg Message object.
741  * @return X resolution (nm).
742  */
743 GoFx(k32u) GoSurfaceIntensityMsg_XResolution(GoSurfaceIntensityMsg msg);
744 
745 /**
746  * Gets the surface y-resolution, in nanometers.
747  *
748  * @public @memberof GoSurfaceIntensityMsg
749  * @param msg Message object.
750  * @return Y resolution (nm).
751  */
752 GoFx(k32u) GoSurfaceIntensityMsg_YResolution(GoSurfaceIntensityMsg msg);
753 
754 /**
755  * Gets the surface x-offset, in micrometers.
756  *
757  * @public @memberof GoSurfaceIntensityMsg
758  * @param msg Message object.
759  * @return X offset (um).
760  */
761 GoFx(k32s) GoSurfaceIntensityMsg_XOffset(GoSurfaceIntensityMsg msg);
762 
763 /**
764  * Gets the surface y-offset, in micrometers.
765  *
766  * @public @memberof GoSurfaceIntensityMsg
767  * @param msg Message object.
768  * @return Y offset (um).
769  */
770 GoFx(k32s) GoSurfaceIntensityMsg_YOffset(GoSurfaceIntensityMsg msg);
771 
772 /**
773  * Gets the surface ID.
774  *
775  * @public @memberof GoSurfaceIntensityMsg
776  * @param msg Message object.
777  * @return Surface ID.
778  */
779 GoFx(k32s) GoSurfaceIntensityMsg_SurfaceId(GoSurfaceIntensityMsg msg);
780 
781 /**
782  * Gets a pointer to a surface intensity row.
783  *
784  * @public @memberof GoSurfaceIntensityMsg
785  * @param msg Message object.
786  * @param index Surface intensity row index.
787  * @return Data pointer.
788  */
789 GoFx(k8u*) GoSurfaceIntensityMsg_RowAt(GoSurfaceIntensityMsg msg, kSize index);
790 
791 /**
792  * Gets the exposure.
793  *
794  * @public @memberof GoSurfaceIntensityMsg
795  * @param msg Message object.
796  * @return Exposure in uS.
797  */
798 GoFx(k32u) GoSurfaceIntensityMsg_Exposure(GoSurfaceIntensityMsg msg);
799 
800 /// @endcond
801 
802 
803 /**
804  * @struct GoMeasurementData
805  * @extends kValue
806  * @ingroup GoSdk-DataChannel
807  * @brief Represents a measurement result.
808  */
809 typedef struct GoMeasurementData
810 {
811  k64f value; ///< Measurement value.
812  GoDecision decision; ///< Measurement decision value.
813  GoDecisionCode decisionCode; ///< Measurement decision code - relevant only when the value represents a failure.
815 
816 GoFx(k64f) GoMeasurementData_Value(GoMeasurementData data);
817 GoFx(GoDecision) GoMeasurementData_Decision(GoMeasurementData data);
818 GoFx(GoDecisionCode) GoMeasurementData_DecisionCode(GoMeasurementData data);
819 
820 
821 /**
822  * @class GoMeasurementMsg
823  * @extends GoDataMsg
824  * @ingroup GoSdk-DataChannel
825  * @brief Represents a message containing a set of GoMeasurementData.
826  */
827 typedef GoDataMsg GoMeasurementMsg;
828 
829 /**
830  * Gets the measurement identifier.
831  *
832  * @public @memberof GoMeasurementMsg
833  * @param msg Message object.
834  * @return Measurement identifier.
835  */
836 GoFx(k16u) GoMeasurementMsg_Id(GoMeasurementMsg msg);
837 
838 /**
839  * Count of measurements in this message.
840  *
841  * @public @memberof GoMeasurementMsg
842  * @param msg Message object.
843  * @return Count of measurements.
844  */
845 GoFx(kSize) GoMeasurementMsg_Count(GoMeasurementMsg msg);
846 
847 /**
848  * Gets the measurement at the specified index.
849  *
850  * @public @memberof GoMeasurementMsg
851  * @param msg Message object.
852  * @param index Measurement index.
853  * @return Measurement pointer.
854  */
855 GoFx(GoMeasurementData*) GoMeasurementMsg_At(GoMeasurementMsg msg, kSize index);
856 
857 
858 /**
859  * @class GoAlignMsg
860  * @extends GoDataMsg
861  * @ingroup GoSdk-DataChannel
862  * @brief Represents a message containing an alignment result.
863  */
864 typedef GoDataMsg GoAlignMsg;
865 
866 /**
867  * Gets the alignment result.
868  *
869  * @public @memberof GoAlignMsg
870  * @param msg Message object.
871  * @return Alignment result.
872  */
873 GoFx(kStatus) GoAlignMsg_Status(GoAlignMsg msg);
874 
875 /**
876  * @class GoExposureCalMsg
877  * @extends GoDataMsg
878  * @ingroup GoSdk-DataChannel
879  * @brief Represents a message containing exposure calibration results.
880  */
881 typedef GoDataMsg GoExposureCalMsg;
882 
883 /**
884  * Gets the exposure calibration result.
885  *
886  * @public @memberof GoExposureCalMsg
887  * @param msg Message object.
888  * @return Exposure calibration result.
889  */
890 GoFx(kStatus) GoExposureCalMsg_Status(GoExposureCalMsg msg);
891 
892 /**
893  * Gets the calibrated exposure.
894  *
895  * @public @memberof GoExposureCalMsg
896  * @param msg Message object.
897  * @return Calibrated exposure value in uS.
898  */
899 GoFx(k32u) GoExposureCalMsg_Exposure(GoExposureCalMsg msg);
900 
901 kEndHeader()
902 #include <GoSdk/Messages/GoDataTypes.x.h>
903 
904 #endif
Represents an acquisition stamp.
Definition: GoDataTypes.h:39
GoDecision decision
Measurement decision value.
Definition: GoDataTypes.h:812
kSize GoRangeIntensityMsg_Count(GoRangeIntensityMsg msg)
Gets the count of range intensity data in this message.
Represents a data message containing a video image.
GoDataSource GoStampMsg_Source(GoStampMsg msg)
Gets the stamp source.
kSize GoMeasurementMsg_Count(GoMeasurementMsg msg)
Count of measurements in this message.
Represents the possible measurement decision codes.
k64u reserved
Reserved x 2.
Definition: GoDataTypes.h:56
GoMeasurementData * GoMeasurementMsg_At(GoMeasurementMsg msg, kSize index)
Gets the measurement at the specified index.
kCfa GoVideoMsg_Cfa(GoVideoMsg msg)
Gets the image color filter array.
Represents a data source.
kSize GoVideoMsg_CameraIndex(GoVideoMsg msg)
Gets the camera index that the video data originates from.
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.
k64u timestamp
Timestamp (approximate ns).
Definition: GoDataTypes.h:42
Represents a message containing a set of acquisition stamps.
k64u status
Bit mask containing frame information:
Definition: GoDataTypes.h:45
GoDataSource GoRangeIntensityMsg_Source(GoRangeIntensityMsg msg)
Gets the range intensity source.
kSize GoVideoMsg_Height(GoVideoMsg msg)
Gets the image height, in pixels.
k64s encoderAtZ
Encoder value latched at z/index mark (encoder ticks).
Definition: GoDataTypes.h:44
kSize GoVideoMsg_ExposureIndex(GoVideoMsg msg)
Gets the exposure index.
Essential SDK declarations.
kStatus GoExposureCalMsg_Status(GoExposureCalMsg msg)
Gets the exposure calibration result.
GoPixelType GoVideoMsg_PixelType(GoVideoMsg msg)
Gets the data type used to represent an image pixel.
Represents a message containing exposure calibration results.
Represents a video message pixel type.
k16s * GoRangeMsg_At(GoRangeMsg msg, kSize index)
Gets a pointer to Range data.
kPixelFormat GoVideoMsg_PixelFormat(GoVideoMsg msg)
Gets the pixel format descriptor.
k32u GoRangeMsg_ZResolution(GoRangeMsg msg)
Gets the Range z-resolution, in nanometers.
k16u GoMeasurementMsg_Id(GoMeasurementMsg msg)
Gets the measurement identifier.
k32u GoVideoMsg_Exposure(GoVideoMsg msg)
Gets the exposure.
Represents a data message containing a set of range intensity data.
GoDataSource GoRangeMsg_Source(GoRangeMsg msg)
Gets the Range source.
Lists all data message types.
k32s GoRangeMsg_ZOffset(GoRangeMsg msg)
Gets the Range z-offset, in micrometers.
kSize GoVideoMsg_Width(GoVideoMsg msg)
Gets the image width, in pixels.
kSize GoStampMsg_Count(GoStampMsg msg)
Returns the number of stamps contained in this message.
GoDecisionCode decisionCode
Measurement decision code - relevant only when the value represents a failure.
Definition: GoDataTypes.h:813
GoDataMessageType GoDataMsg_Type(GoDataMsg message)
Returns the message type for a data channel message given in a GoDataSet.
Represents a message containing an alignment result.
GoDataSource GoVideoMsg_Source(GoVideoMsg msg)
Gets the video source.
k64f value
Measurement value.
Definition: GoDataTypes.h:811
kBeginHeader() kStatus GoSdk_Construct(kAssembly *assembly)
Constructs the Gocator SDK library.
kSize GoVideoMsg_PixelSize(GoVideoMsg msg)
Gets the image pixel size, in bytes.
Represents a message containing a set of GoMeasurementData.
Represents a base message sourced from the data channel.
Definition: GoDataTypes.h:14
kStatus GoAlignMsg_Status(GoAlignMsg msg)
Gets the alignment result.
void * GoVideoMsg_RowAt(GoVideoMsg msg, kSize rowIndex)
Gets a pointer to a row within the image.
k64s encoder
Position (encoder ticks).
Definition: GoDataTypes.h:43
GoStamp * GoStampMsg_At(GoStampMsg msg, kSize index)
Gets the stamp at the specified index.
kSize GoRangeMsg_Count(GoRangeMsg msg)
Gets the count of Range data in this message.
k64u frameIndex
Frame index (counts up from zero).
Definition: GoDataTypes.h:41
k32u GoExposureCalMsg_Exposure(GoExposureCalMsg msg)
Gets the calibrated exposure.
k32u GoRangeMsg_Exposure(GoRangeMsg msg)
Gets the exposure.
k32u GoRangeIntensityMsg_Exposure(GoRangeIntensityMsg msg)
Gets the exposure.
Represents a measurement result.
Definition: GoDataTypes.h:809
k8u * GoRangeIntensityMsg_At(GoRangeIntensityMsg msg, kSize index)
Gets a pointer to range intensity data.