GoWebScan API
GoWebScanConfig.h
Go to the documentation of this file.
1 /**
2 * @file GoWebScanConfig.h
3 * @brief Declares a GoWebScanConfig object.
4 *
5 * @internal
6 * Copyright (C) 2017-2026 by LMI Technologies Inc.
7 * Licensed under the MIT License.
8 * Redistributed files must retain the above copyright notice.
9 */
10 
11 #ifndef GO_WEB_SCAN_CONFIG_H
12 #define GO_WEB_SCAN_CONFIG_H
13 
18 #include <GoSdk/GoSdk.h>
19 
20 /**
21 * @class GoWebScanConfig
22 * @extends kObject
23 * @ingroup GoWebScanSdk-Config
24 * @brief Represents a container for system-level parameters which are translated from user
25 * parameters set in GoWebScanSettings. This class maps the orientation of the system
26 * to a standard orientation, performs the X-axis layout of sensors, determines
27 * algorithm parameters based on constants and user parameters, and determines other
28 * various system parameters.
29 *
30 * In standard orientation, the X-axis increases from left to right, the Y-axis
31 * increases away from the observer, and the Z-axis increases towards the sensor
32 * plane. Each sensor X-axis is aligned to the system X-axis, the sensor Y-axis is
33 * opposite to the system Y-axis, and the sensor Z-axis is opposite to the system Z-axis.
34 * Vision lags profile; vision Y-values are offset by a value derived from the sensors
35 * GoGeoCal file for coarse alignment.
36 *
37 * X-axis layout consists of using the values in the user settings (GoWebScanSettings),
38 * the system calibration (GoWebScanCal), and the sensor's GoGeoCal file to
39 * map the profile, vision, and tracheid data from each node (single camera) into
40 * system X-coordinates. The mapping uses the node's X center (calculated by the
41 * system), node X-offset (from the system calibration), vision X-center (from
42 * GoGeoCal), sensor X-center (provided by the user if GoWebScanSettings_UseXCenters()
43 * is enabled or calculated by the system), and the server X-adjustment if using
44 * multiple servers.
45 *
46 * After the X-centres of each node are determined, the start and end boundaries of
47 * each node are determined. These boundaries define the region in system space in
48 * which the node can make a contribution to the final result. If the user has selected
49 * a non-zero overlap amount, then the fields of view of adjacent nodes can overlap by
50 * this amount. The overlapping regions are later blended together.
51 *
52 * Algorithm parameters provided by the user in GoWebScanSettings are broken down into
53 * lower level parameters.
54 *
55 * GoWebScanConfig organizes the configuration at the system, group, sensor, and node
56 * levels. Configuration of the groups within the system are represented by the
57 * GoWebScanConfigGroup class, sensors by the GoWebScanConfigSensor class, and nodes
58 * by the GoWebScanConfigNode class. GoWebScanConfig will construct and own these
59 * classes.
60 */
61 typedef kObject GoWebScanConfig;
62 
63 // Forward declarations
67 
68 /**
69 * @struct GoWebScanConfigSensorInfo
70 * @extends kValue
71 * @ingroup GoWebScanSdk-Config
72 * @brief Represents information from each sensor in the system, collected and provided by the
73 * user application.
74 */
76 {
77  k32u profileId; ///< Profile serial number
78  kBool enabled; ///< Is the sensor enabled?
79  k32s nominalFov; ///< Full X FOV of sensor (mils)
80  kSize viewSpotCount; ///< Width of camera profile messages (same as spot count per camera)
81  k32s maxZ; ///< Max expected Z data (mils)
82  kSize visionWidth; ///< Width of vision camera configuration (pixels)
83  kSize visionHeight; ///< Height of vision camera configuration (pixels)
84  k32u profileTransmitLimit; ///< Data transmit rate limit of profile sensor (% of link speed)
85  k32u visionTransmitLimit; ///< Data transmit rate limit of vision sensor (% of link speed)
86  GoGeoCal profileGeoCal; ///< Profile sensor GoGeoCal file, downloaded from device. Set to kNULL if vision is not used.
87  GoGeoCal visionGeoCal; ///< Associated vision sensor GoGeoCal file, downloaded from device. Set to kNULL if vision is not used.
89 
90 /**
91  * Constructs a GoWebScanConfig object.
92  *
93  * @public @memberof GoWebScanConfig
94  * @param config Receives the constructed GoWebScanConfig object.
95  * @param settings User settings for the system.
96  * @param calTarget Calibration target information. Set to kNULL if not running system
97  * calibration.
98  * @param calibration System calibration. Set to kNULL if running system uncalibrated or if
99  * running system calibration.
100  * @param sensorInfo List of GoWebScanConfigSensorInfo structs representing information from
101  * each sensor in the system.
102  * @param mode System processing mode.
103  * @param allocator Memory allocator (or kNULL for default).
104  * @return Operation status.
105  */
106 GoWebScanFx(kStatus) GoWebScanConfig_Construct(GoWebScanConfig* config, GoWebScanSettings settings, GoWebScanCalTarget calTarget, GoWebScanCal calibration,
107  kArrayList sensorInfo, GoWebScanMode mode, kAlloc allocator);
108 
109 /**
110  * Gets the number of groups in the system.
111  *
112  * @public @memberof GoWebScanConfig
113  * @param config GoWebScanConfig object.
114  * @return Number of groups.
115  */
117 
118 /**
119  * Gets the group configuration at a specified index in the system.
120  *
121  * @public @memberof GoWebScanConfig
122  * @param config GoWebScanConfig object.
123  * @param index Group index.
124  * @return GoWebScanConfigGroup object representing the group config.
125  */
127 
128 /**
129  * Finds the group configuration for a given system plane.
130  *
131  * @public @memberof GoWebScanConfig
132  * @param config GoWebScanConfig object.
133  * @param plane System plane.
134  * @param configGroup Receives the group config object.
135  * @return Operation status.
136  */
138 
139 /**
140  * Gets the number of nodes (cameras) in the system.
141  *
142  * @public @memberof GoWebScanConfig
143  * @param config GoWebScanConfig object.
144  * @return Number of nodes.
145  */
147 
148 /**
149  * Gets the node configuration at a specified index in the system.
150  *
151  * @public @memberof GoWebScanConfig
152  * @param config GoWebScanConfig object.
153  * @param index Node index.
154  * @return GoWebScanConfigNode object representing the group config.
155  */
157 
158 /**
159 * Gets the number of sensors in the system.
160 *
161 * @public @memberof GoWebScanConfig
162 * @param config GoWebScanConfig object.
163 * @return Number of sensors.
164 */
166 
167 /**
168 * Gets the sensor configuration at a specified index in the system.
169 *
170 * @public @memberof GoWebScanConfig
171 * @param config GoWebScanConfig object.
172 * @param index Sensor index.
173 * @return GoWebScanConfigSensor object representing the sensor config.
174 */
176 
177 /**
178 * Gets the number of threads being used by the system.
179 *
180 * @public @memberof GoWebScanConfig
181 * @param config GoWebScanConfig object.
182 * @return Number of sensors.
183 */
185 
186 /**
187  * Gets a flag for whether board detection is enabled.
188  *
189  * @public @memberof GoWebScanConfig
190  * @param config GoWebScanConfig object.
191  * @return Boolean for whether board detection is enabled.
192  */
194 
195 /**
196  * Gets a flag for whether data from a particular source is enabled.
197  *
198  * @public @memberof GoWebScanConfig
199  * @param config GoWebScanConfig object.
200  * @param source Data source.
201  * @return Boolean for whether a source is enabled.
202  */
204 
205 /**
206  * If the encoder simulator is enabled via GoWebScanSettings_SetEncoderSimulated(), this function
207  * returns the simulated encoder value formed from an input time and ignores the sensor
208  * message's actual encoder value. Otherwise, the sensor message's actual encoder value is
209  * returned.
210  *
211  * @public @memberof GoWebScanConfig
212  * @param config GoWebScanConfig object.
213  * @param encoder Encoder value from message stamp.
214  * @param time Timestamp from message stamp.
215  * @return Encoder value (ticks).
216  * @see GoWebScanEncoderSim
217  */
218 GoWebScanFx(k64s) GoWebScanConfig_DomainToEncoder(GoWebScanConfig config, k64s encoder, k64s time);
219 
220 /**
221  * Converts an encoder value to a Y position in mils using the encoder resolution and system Y
222  * offset.
223  *
224  * @public @memberof GoWebScanConfig
225  * @param config GoWebScanConfig object.
226  * @param encoder Encoder value from message stamp (ticks).
227  * @return Y position (mils).
228  */
229 GoWebScanFx(k64s) GoWebScanConfig_EncoderToY(GoWebScanConfig config, k64s encoder);
230 
231 /**
232  * Converts Y position in mils to an encoder value.
233  *
234  * @public @memberof GoWebScanConfig
235  * @param config GoWebScanConfig object.
236  * @param y Y-axis position (mils).
237  * @return Encoder value.
238  */
239 GoWebScanFx(k64s) GoWebScanConfig_YToEncoder(GoWebScanConfig config, k64s y);
240 
241 /**
242  * Converts a simulated encoder value to a Y position in mils if encoder simulation
243  * is enabled, otherwise converts the actual encoder value to a Y position.
244  *
245  * @public @memberof GoWebScanConfig
246  * @param config GoWebScanConfig object.
247  * @param encoder Encoder value from message stamp (ticks).
248  * @param time Timestamp from message stamp. Simulated encoder value is formed from this.
249  * @return Y position (mils).
250  */
251 GoWebScanFx(k64s) GoWebScanConfig_DomainToY(GoWebScanConfig config, k64s encoder, k64s time);
252 
253 /**
254  * Gets the direction of conveyor movement.
255  *
256  * @public @memberof GoWebScanConfig
257  * @param config GoWebScanConfig object.
258  * @return Direction of conveyor movement.
259  * @see GoWebScanSettings_TravelOrientation
260  */
262 
263 /**
264  * Gets the direction of the X-axis.
265  *
266  * @public @memberof GoWebScanConfig
267  * @param config GoWebScanConfig object.
268  * @return X-axis direction.
269  * @see GoWebScanSettings_XOrientation
270  */
272 
273 /**
274  * Gets the X-resolution of a specified data source in mils/pixel.
275  *
276  * @public @memberof GoWebScanConfig
277  * @param config GoWebScanConfig object.
278  * @param source Data source.
279  * @return X-resolution (mils/pixel).
280  */
281 GoWebScanFx(k32s) GoWebScanConfig_XRes(GoWebScanConfig config, GoWebScanDataSource source);
282 
283 /**
284 * Gets the Y-resolution of a specified data source in mils/pixel.
285 *
286 * @public @memberof GoWebScanConfig
287 * @param config GoWebScanConfig object.
288 * @param source Data source.
289 * @return Y-resolution (mils/pixel).
290 */
291 GoWebScanFx(k32s) GoWebScanConfig_YRes(GoWebScanConfig config, GoWebScanDataSource source);
292 
293 /**
294  * Gets the X-resolution for resampling profile data so that it is suitable for the vision
295  * resampler. This resampled profile data is referred to as terrain data.
296  *
297  * @public @memberof GoWebScanConfig
298  * @param config GoWebScanConfig object.
299  * @return Terrain X-resolution (mils/pixel).
300  */
302 
303 /**
304  * Gets the subsampling factor for determining the X-resolution for terrain data. Terrain
305  * X-resolution is determined by bit shifting the vision X-resolution right by this value.
306  *
307  * @public @memberof GoWebScanConfig
308  * @param config GoWebScanConfig object.
309  * @return Terrain X subsampling factor.
310  * @see GoWebScanConfig_VisionTerrainXRes
311  */
313 
314 /**
315  * Gets the Y-extent of all output tiles (mils).
316  *
317  * @public @memberof GoWebScanConfig
318  * @param config GoWebScanConfig object.
319  * @return Y-extent (mils).
320  *
321  */
323 
324 /**
325  * Gets the Y-extent of tiles for each data source (pixels).
326  *
327  * @public @memberof GoWebScanConfig
328  * @param config GoWebScanConfig object.
329  * @param source Data source.
330  * @return Y-extent (pixels).
331  */
333 
334 /**
335  * Gets the maximum data X-gap to be filled in (mils).
336  *
337  * @public @memberof GoWebScanConfig
338  * @param config GoWebScanConfig object.
339  * @return Maximum data x-gap (mils).
340  */
341 GoWebScanFx(k32s) GoWebScanConfig_GapFill(GoWebScanConfig config);
342 
343 /**
344 * Gets the amount of X-overlap to be blended (mils).
345 *
346 * @public @memberof GoWebScanConfig
347 * @param config GoWebScanConfig object.
348 * @return Amount of X-overlap to be blended (mils).
349 */
351 
352 /**
353 * Gets the profile sampling style (linear interpolation or nearest neighbor).
354 *
355 * @public @memberof GoWebScanConfig
356 * @param config GoWebScanConfig object.
357 * @return Profile sampling style.
358 */
360 
361 /**
362 * Gets the flag for whether the obstruction filter is enabled. If enabled, obstruction masks
363 * are applied to input data.
364 *
365 * @public @memberof GoWebScanConfig
366 * @param config GoWebScanConfig object.
367 * @return Obstruction filter enabled flag.
368 */
370 
371 /**
372 * Gets the start of the system output space, in system coordinates (mils).
373 *
374 * @public @memberof GoWebScanConfig
375 * @param config GoWebScanConfig object.
376 * @return X start (mils).
377 */
378 GoWebScanFx(k32s) GoWebScanConfig_XStart(GoWebScanConfig config);
379 
380 /**
381 * Gets the end of the system output space, in system coordinates (mils).
382 *
383 * @public @memberof GoWebScanConfig
384 * @param config GoWebScanConfig object.
385 * @return X end (mils).
386 */
387 GoWebScanFx(k32s) GoWebScanConfig_XEnd(GoWebScanConfig config);
388 
389 /**
390  * Gets the start of output space for each data source, in system coordinates (pixels).
391  *
392  * @public @memberof GoWebScanConfig
393  * @param config GoWebScanConfig object.
394  * @param source Data source.
395  * @return X start (pixels).
396  */
398 
399 /**
400 * Gets the end of output space for each data source, in system coordinates (pixels).
401 *
402 * @public @memberof GoWebScanConfig
403 * @param config GoWebScanConfig object.
404 * @param source Data source.
405 * @return X end (pixels).
406 */
408 
409 /**
410 * Gets the count of output space for each data source (pixels).
411 *
412 * @public @memberof GoWebScanConfig
413 * @param config GoWebScanConfig object.
414 * @param source Data source.
415 * @return X count (pixels).
416 */
418 
419 /**
420 * Gets the minimum Y-distance between data from different nodes before forcing drop (mils).
421 *
422 * @public @memberof GoWebScanConfig
423 * @param config GoWebScanConfig object.
424 * @return Sync coherency distance (mils).
425 */
427 
428 /**
429 * Gets the minimum time between data from different nodes before forcing drop (microseconds).
430 *
431 * @public @memberof GoWebScanConfig
432 * @param config GoWebScanConfig object.
433 * @return Sync coherency time (microseconds).
434 */
436 
437 /**
438  * Gets the minimum Y-distance from the current position to drop all data (mils).
439  *
440  * @public @memberof GoWebScanConfig
441  * @param config GoWebScanConfig object.
442  * @return Sync break distance (mils).
443  */
445 
446 /**
447 * Gets the maximum supported system speed (mils per second).
448 *
449 * @public @memberof GoWebScanConfig
450 * @param config GoWebScanConfig object.
451 * @return Max system speed (mils/s).
452 */
454 
455 /**
456  * Gets the approximate maximum amount of time to buffer data at input to each pipe task
457  * (seconds).
458  *
459  * @public @memberof GoWebScanConfig
460  * @param config GoWebScanConfig object.
461  * @return Max buffer time for tasks (s).
462  */
464 
465 /**
466  * Gets the detection triggering style.
467  *
468  * @public @memberof GoWebScanConfig
469  * @param config GoWebScanConfig object.
470  * @return Detection triggering style.
471  * @see GoWebScanSettings_SetDetectTriggerStyle
472  */
474 
475 /**
476  * Gets the detection triggering threshold.
477  *
478  * @public @memberof GoWebScanConfig
479  * @param config GoWebScanConfig object.
480  * @return Detection triggering threshold.
481  * @see GoWebScanSettings_SetDetectTriggerLength
482  */
484 
485 /**
486 * Gets the detection Y-margin row count, which are extra data included in output.
487 *
488 * @public @memberof GoWebScanConfig
489 * @param config GoWebScanConfig object.
490 * @return Detection margin row count.
491 */
493 
494 /**
495 * Gets the detection minimum Y-extent (presence pixels)
496 *
497 * @public @memberof GoWebScanConfig
498 * @param config GoWebScanConfig object.
499 * @return Detection minimum rows.
500 */
502 
503 /**
504 * Gets the detection maximum Y-extent, excluding margins (presence pixels).
505 *
506 * @public @memberof GoWebScanConfig
507 * @param config GoWebScanConfig object.
508 * @return Detection maximum rows.
509 */
511 
512 /**
513 * Gets the detection minimum inter-object Y-gap (presence pixels).
514 *
515 * @public @memberof GoWebScanConfig
516 * @param config GoWebScanConfig object.
517 * @return Detection minimum Y-gap in rows.
518 */
520 
521 /**
522  * Gets a flag for whether a particular data source be subjected to post-detection data clean-up.
523  *
524  * @public @memberof GoWebScanConfig
525  * @param config GoWebScanConfig object.
526  * @param source Data source.
527  * @return Boolean for whether data source is filtered after detection.
528  */
530 
531 /**
532  * Gets a flag for whether extending the board side edge to correct for distortions is enabled.
533  *
534  * @public @memberof GoWebScanConfig
535  * @param config GoWebScanConfig object.
536  * @return Boolean for whether board side extension is enabled.
537  */
539 
540 /**
541 * Gets the detection maximum number of tiles for one detected object.
542 *
543 * @public @memberof GoWebScanConfig
544 * @param config GoWebScanConfig object.
545 * @return Detection maximum tiles.
546 */
548 
549 /**
550  * Gets the minimum number of non-null profile dots for system calibration bar detection.
551  *
552  * @public @memberof GoWebScanConfig
553  * @param config GoWebScanConfig object.
554  * @return Trigger threshold for calibration bar detection.
555  */
557 
558 /**
559 * Gets the tile length in Y-axis for internal system calibration calculations (mils).
560 *
561 * @public @memberof GoWebScanConfig
562 * @param config GoWebScanConfig object.
563 * @return Tile Y-extent for calibration (mils).
564 */
566 
567 /**
568 * Gets the leading edge data capture margin in Y for calibration (tiles).
569 *
570 * @public @memberof GoWebScanConfig
571 * @param config GoWebScanConfig object.
572 * @return Leading Y edge capture margin (tiles).
573 */
575 
576 /**
577 * Gets the trailing edge data capture margin in Y for calibration (tiles).
578 *
579 * @public @memberof GoWebScanConfig
580 * @param config GoWebScanConfig object.
581 * @return Trailing Y edge capture margin (tiles).
582 */
584 
585 /**
586 * Gets the minimum count of tiles needed for detection of the calibration bar.
587 *
588 * @public @memberof GoWebScanConfig
589 * @param config GoWebScanConfig object.
590 * @return Minimum count of tiles for calibration detection.
591 */
593 
594 /**
595 * Gets the maximum count of tiles needed for detection of the calibration bar.
596 *
597 * @public @memberof GoWebScanConfig
598 * @param config GoWebScanConfig object.
599 * @return Maximum count of tiles for calibration detection.
600 */
602 
603 /**
604 * Gets the minimum Y-axis gap between successive objects for calibration object detection (tiles).
605 *
606 * @public @memberof GoWebScanConfig
607 * @param config GoWebScanConfig object.
608 * @return Minimum Y-axis gap during calibration detection (tiles).
609 */
611 
612 /**
613 * Gets the Y-resolution to use when resampling during calibration processing (mils/pixel).
614 *
615 * @public @memberof GoWebScanConfig
616 * @param config GoWebScanConfig object.
617 * @param source Data source.
618 * @return Calibration Y-resolution (mils/pixel).
619 */
621 
622 /**
623  * Gets a flag for whether GoWebScan should attempt to detect calibration reference holes (1),
624  * or assume that sensors are mounted at their nominal locations along the X-axis (0).
625  *
626  * @public @memberof GoWebScanConfig
627  * @param config GoWebScanConfig object.
628  * @return Boolean representing whether detection of locators on calibration bar is enabled.
629  */
631 
632 /**
633 * Gets a flag for whether the use of target intensities for each color channel during vision
634 * system calibration is enabled.
635 *
636 * @public @memberof GoWebScanConfig
637 * @param config GoWebScanConfig object.
638 * @return Boolean for whether target vision intensities are enabled.
639 */
641 
642 /**
643 * Gets the target intensity level for all color channels during vision system calibration.
644 *
645 * @public @memberof GoWebScanConfig
646 * @param config GoWebScanConfig object.
647 * @return Target intensity for vision calibration.
648 */
650 
651 /**
652  * Gets the divisor to use when calculating minimum Y-interval for retained data during
653  * calibration data collection.
654  *
655  * @public @memberof GoWebScanConfig
656  * @param config GoWebScanConfig object.
657  * @return Divisor in Y-axis for retaining data during calibration.
658  */
660 
661 /**
662  * Gets a flag for whether user-defined obstructions are used instead of automatic chain
663  * detection during calibration processing.
664  *
665  * @public @memberof GoWebScanConfig
666  * @param config GoWebScanConfig object.
667  * @return Boolean for whether user-defined obstructions are used during calibration.
668  */
670 
671 /**
672 * Gets the width of the calibration target (Y-axis extent) in mils.
673 *
674 * @public @memberof GoWebScanConfig
675 * @param config GoWebScanConfig object.
676 * @return Calibration bar width (mils).
677 */
679 
680 /**
681 * Gets the height of the calibration target (Z-axis extent) in mils.
682 *
683 * @public @memberof GoWebScanConfig
684 * @param config GoWebScanConfig object.
685 * @return Calibration bar height (mils).
686 */
688 
689 /**
690 * Gets the total Y-axis extent of the off-axis calibration target in mils.
691 *
692 * @public @memberof GoWebScanConfig
693 * @param config GoWebScanConfig object.
694 * @return Effective Y-axis extent (mils).
695 */
697 
698 /**
699 * Gets the effective thickness of the off-axis calibration target in mils.
700 *
701 * @public @memberof GoWebScanConfig
702 * @param config GoWebScanConfig object.
703 * @return Effective thickness (mils).
704 */
706 
707 /**
708 * Gets the system angle in degrees.
709 *
710 * @public @memberof GoWebScanConfig
711 * @param config GoWebScanConfig object.
712 * @return Angle (degrees).
713 */
715 
716 /**
717 * Update the system processing mode.
718 *
719 * @public @memberof GoWebScanConfig
720 * @param config GoWebScanConfig object.
721 * @param mode System processing mode.
722 * @return Operation status.
723 */
725 
726 /**
727 * Gets the system processing mode.
728 *
729 * @public @memberof GoWebScanConfig
730 * @param config GoWebScanConfig object.
731 * @return System processing mode.
732 */
734 
735 /**
736 * Update the system calibration.
737 *
738 * @public @memberof GoWebScanConfig
739 * @param config GoWebScanConfig object.
740 * @param calibration System calibration. Set to kNULL if running system uncalibrated or if running system calibration.
741 * @return Operation status.
742 */
744 
745 /**
746 * Stores the sensor info to a specified path, excluding the GoGeoCal instances.
747 *
748 * @public @memberof GoWebScanConfig
749 * @param sensorInfo Pointer to the GoWebScanConfigSensorInfo struct representing information of a single profile and vision sensor pair.
750 * @param filePath Path to save to.
751 * @param allocator Memory allocator (or kNULL for default).
752 * @return Operation status.
753 */
754 GoWebScanFx(kStatus) GoWebScanConfigSensorInfo_Save(const GoWebScanConfigSensorInfo* sensorInfo, const kChar* filePath, kAlloc allocator);
755 
756 /**
757 * Loads the sensor info from a specified path, excluding the GoGeoCal instances.
758 *
759 * @public @memberof GoWebScanConfig
760 * @param sensorInfo Pointer to the GoWebScanConfigSensorInfo struct representing information of a single profile and vision sensor pair.
761 * @param filePath Path to load from.
762 * @param allocator Memory allocator (or kNULL for default).
763 * @return Operation status.
764 */
765 GoWebScanFx(kStatus) GoWebScanConfigSensorInfo_Load(GoWebScanConfigSensorInfo* sensorInfo, const kChar* filePath, kAlloc allocator);
766 
767 /**
768  * Determine the sensor node column given the sensor index and bank id.
769  *
770  * @public @memberof GoWebScanConfig
771  * @param config GoWebScanConfig object.
772  * @param settings GoWebScanSettings settings.
773  * @param plane Plane of sensor.
774  * @param sensorIndex Sensor index.
775  * @param bankId Node bank id.
776  * @param column Pointer receiving sensor node column.
777  * @return Operation status.
778  */
779 GoWebScanFx(kStatus) GoWebScanConfig_NodeIndexToColumn(GoWebScanConfig config, GoWebScanSettings settings, GoWebScanSystemPlane plane, kSize sensorIndex, kSSize bankId, kSSize* column);
780 
781 /**
782  * Determine the sensor index and bank id given the node column.
783  *
784  * @public @memberof GoWebScanConfig
785  * @param config GoWebScanConfig object.
786  * @param settings GoWebScanSettings settings.
787  * @param plane Plane of sensor.
788  * @param column Node column.
789  * @param sensorIndex Pointer receiving sensor index.
790  * @param bankId Pointer receiving node bank id.
791  * @return Operation status.
792  */
793 GoWebScanFx(kStatus) GoWebScanConfig_NodeColumnToIndex(GoWebScanConfig config, GoWebScanSettings settings, GoWebScanSystemPlane plane, kSSize column, kSize* sensorIndex, kSize* bankId);
794 
795 #include <GoWebScanSdk/GoWebScanConfig.x.h>
796 
797 #endif
k32s GoWebScanConfig_CalTrailMarginTiles(GoWebScanConfig config)
Gets the trailing edge data capture margin in Y for calibration (tiles).
k32s GoWebScanConfig_CalTargetTotalYExtent(GoWebScanConfig config)
Gets the total Y-axis extent of the off-axis calibration target in mils.
Represents a container for node-level parameters which are translated from user parameters set in GoW...
kSSize GoWebScanConfig_DetectMinRows(GoWebScanConfig config)
Gets the detection minimum Y-extent (presence pixels)
kRgb GoWebScanConfig_CalVisionIntensity(GoWebScanConfig config)
Gets the target intensity level for all color channels during vision system calibration.
Represents a style of triggering the start of an object when in detection mode. The start of an objec...
k32u profileTransmitLimit
Data transmit rate limit of profile sensor (% of link speed)
Definition: GoWebScanConfig.h:84
Represents a style of interpolation used during profile resampling.
kBool GoWebScanConfig_CalDetectLocators(GoWebScanConfig config)
Gets a flag for whether GoWebScan should attempt to detect calibration reference holes (1)...
k32s GoWebScanConfig_SyncCoherencyTime(GoWebScanConfig config)
Gets the minimum time between data from different nodes before forcing drop (microseconds).
k64s GoWebScanConfig_DomainToY(GoWebScanConfig config, k64s encoder, k64s time)
Converts a simulated encoder value to a Y position in mils if encoder simulation is enabled...
kBool GoWebScanConfig_DetectionEnabled(GoWebScanConfig config)
Gets a flag for whether board detection is enabled.
kSSize GoWebScanConfig_SensorCount(GoWebScanConfig config)
Gets the number of sensors in the system.
kSSize GoWebScanConfig_DetectMinGapRows(GoWebScanConfig config)
Gets the detection minimum inter-object Y-gap (presence pixels).
k64s GoWebScanConfig_EncoderToY(GoWebScanConfig config, k64s encoder)
Converts an encoder value to a Y position in mils using the encoder resolution and system Y offset...
kSSize GoWebScanConfig_DetectMaxTiles(GoWebScanConfig config)
Gets the detection maximum number of tiles for one detected object.
k32s GoWebScanConfig_XEnd(GoWebScanConfig config)
Gets the end of the system output space, in system coordinates (mils).
Represents a type of sensor data.
kSize GoWebScanConfig_CalTargetFaceYExtent(GoWebScanConfig config)
Gets the width of the calibration target (Y-axis extent) in mils.
k32s GoWebScanConfig_CalTargetEffectiveThickness(GoWebScanConfig config)
Gets the effective thickness of the off-axis calibration target in mils.
k32s GoWebScanConfig_VisionTerrainXSubsampling(GoWebScanConfig config)
Gets the subsampling factor for determining the X-resolution for terrain data.
k32s GoWebScanConfig_CalMaxTiles(GoWebScanConfig config)
Gets the maximum count of tiles needed for detection of the calibration bar.
k32u visionTransmitLimit
Data transmit rate limit of vision sensor (% of link speed)
Definition: GoWebScanConfig.h:85
k32s GoWebScanConfig_GapFill(GoWebScanConfig config)
Gets the maximum data X-gap to be filled in (mils).
kSize visionWidth
Width of vision camera configuration (pixels)
Definition: GoWebScanConfig.h:82
GoWebScanXOrientation GoWebScanConfig_XOrientation(GoWebScanConfig config)
Gets the direction of the X-axis.
Represents a container for user-configurable settings of the system. The class reads and writes the s...
k32s GoWebScanConfig_SyncBreakDistance(GoWebScanConfig config)
Gets the minimum Y-distance from the current position to drop all data (mils).
k32s GoWebScanConfig_XStart(GoWebScanConfig config)
Gets the start of the system output space, in system coordinates (mils).
Essential GoWebScan declarations.
Represents a scan mode.
k32s GoWebScanConfig_XRes(GoWebScanConfig config, GoWebScanDataSource source)
Gets the X-resolution of a specified data source in mils/pixel.
GoWebScanConfigNode GoWebScanConfig_NodeAt(GoWebScanConfig config, kSSize index)
Gets the node configuration at a specified index in the system.
kSSize GoWebScanConfig_TileYPix(GoWebScanConfig config, GoWebScanDataSource source)
Gets the Y-extent of tiles for each data source (pixels).
kSSize GoWebScanConfig_DetectMaxRows(GoWebScanConfig config)
Gets the detection maximum Y-extent, excluding margins (presence pixels).
kSSize GoWebScanConfig_DetectTriggerColumns(GoWebScanConfig config)
Gets the detection triggering threshold.
kSSize GoWebScanConfig_XStartPix(GoWebScanConfig config, GoWebScanDataSource source)
Gets the start of output space for each data source, in system coordinates (pixels).
Represents information from each sensor in the system, collected and provided by the user application...
Definition: GoWebScanConfig.h:75
k32s GoWebScanConfig_VisionTerrainXRes(GoWebScanConfig config)
Gets the X-resolution for resampling profile data so that it is suitable for the vision resampler...
k32s GoWebScanConfig_CalLeadMarginTiles(GoWebScanConfig config)
Gets the leading edge data capture margin in Y for calibration (tiles).
k32s GoWebScanConfig_SyncCoherencyDistance(GoWebScanConfig config)
Gets the minimum Y-distance between data from different nodes before forcing drop (mils)...
kSSize GoWebScanConfig_XCountPix(GoWebScanConfig config, GoWebScanDataSource source)
Gets the count of output space for each data source (pixels).
GoGeoCal visionGeoCal
Associated vision sensor GoGeoCal file, downloaded from device. Set to kNULL if vision is not used...
Definition: GoWebScanConfig.h:87
kStatus GoWebScanConfigSensorInfo_Load(GoWebScanConfigSensorInfo *sensorInfo, const kChar *filePath, kAlloc allocator)
Loads the sensor info from a specified path, excluding the GoGeoCal instances.
k64f GoWebScanConfig_MaxTravelRate(GoWebScanConfig config)
Gets the maximum supported system speed (mils per second).
Represents a container for sensor-level parameters which are translated from user parameters set in G...
GoWebScanInterpolation GoWebScanConfig_ProfileInterpolation(GoWebScanConfig config)
Gets the profile sampling style (linear interpolation or nearest neighbor).
k64f GoWebScanConfig_CalYIntervalDivisor(GoWebScanConfig config)
Gets the divisor to use when calculating minimum Y-interval for retained data during calibration data...
Declares a GoWebScanCalTarget object.
kSSize GoWebScanConfig_DetectMarginRows(GoWebScanConfig config)
Gets the detection Y-margin row count, which are extra data included in output.
kSSize GoWebScanConfig_NodeCount(GoWebScanConfig config)
Gets the number of nodes (cameras) in the system.
GoWebScanConfigGroup GoWebScanConfig_GroupAt(GoWebScanConfig config, kSSize index)
Gets the group configuration at a specified index in the system.
kBool GoWebScanConfig_CalUseVisionIntensity(GoWebScanConfig config)
Gets a flag for whether the use of target intensities for each color channel during vision system cal...
Represents a container for group-level parameters which are translated from user parameters set in Go...
k32s nominalFov
Full X FOV of sensor (mils)
Definition: GoWebScanConfig.h:79
kBool GoWebScanConfig_DetectFilterSource(GoWebScanConfig config, GoWebScanDataSource source)
Gets a flag for whether a particular data source be subjected to post-detection data clean-up...
Declares a GoWebScanCal object.
GoWebScanConfigSensor GoWebScanConfig_SensorAt(GoWebScanConfig config, kSSize index)
Gets the sensor configuration at a specified index in the system.
kSize GoWebScanConfig_CalTargetEdgeZExtent(GoWebScanConfig config)
Gets the height of the calibration target (Z-axis extent) in mils.
k64f GoWebScanConfig_SystemAngle(GoWebScanConfig config)
Gets the system angle in degrees.
GoWebScanYOrientation GoWebScanConfig_TravelOrientation(GoWebScanConfig config)
Gets the direction of conveyor movement.
k64f GoWebScanConfig_TaskBufferTime(GoWebScanConfig config)
Gets the approximate maximum amount of time to buffer data at input to each pipe task (seconds)...
kBool GoWebScanConfig_CalUseObstructions(GoWebScanConfig config)
Gets a flag for whether user-defined obstructions are used instead of automatic chain detection durin...
k32u profileId
Profile serial number.
Definition: GoWebScanConfig.h:77
kStatus GoWebScanConfig_UpdateCalibration(GoWebScanConfig config, GoWebScanCal calibration)
Update the system calibration.
Represents the top or bottom plane of the system.
GoGeoCal profileGeoCal
Profile sensor GoGeoCal file, downloaded from device. Set to kNULL if vision is not used...
Definition: GoWebScanConfig.h:86
kStatus GoWebScanConfig_FindGroupByPlane(GoWebScanConfig config, GoWebScanSystemPlane plane, GoWebScanConfigGroup *configGroup)
Finds the group configuration for a given system plane.
k32s GoWebScanConfig_CalTileYExtent(GoWebScanConfig config)
Gets the tile length in Y-axis for internal system calibration calculations (mils).
k64s GoWebScanConfig_YToEncoder(GoWebScanConfig config, k64s y)
Converts Y position in mils to an encoder value.
kSize viewSpotCount
Width of camera profile messages (same as spot count per camera)
Definition: GoWebScanConfig.h:80
Declares a GoWebScanProcess object.
kStatus GoWebScanConfigSensorInfo_Save(const GoWebScanConfigSensorInfo *sensorInfo, const kChar *filePath, kAlloc allocator)
Stores the sensor info to a specified path, excluding the GoGeoCal instances.
k32s GoWebScanConfig_OverlapBlend(GoWebScanConfig config)
Gets the amount of X-overlap to be blended (mils).
k32s GoWebScanConfig_TileYExtent(GoWebScanConfig config)
Gets the Y-extent of all output tiles (mils).
k32s GoWebScanConfig_CalYRes(GoWebScanConfig config, GoWebScanDataSource source)
Gets the Y-resolution to use when resampling during calibration processing (mils/pixel).
Represents a container for the system calibration. The system calibration corrects for mounting diffe...
k64f GoWebScanConfig_CalTriggerThreshold(GoWebScanConfig config)
Gets the minimum number of non-null profile dots for system calibration bar detection.
kStatus GoWebScanConfig_NodeColumnToIndex(GoWebScanConfig config, GoWebScanSettings settings, GoWebScanSystemPlane plane, kSSize column, kSize *sensorIndex, kSize *bankId)
Determine the sensor index and bank id given the node column.
GoWebScanDetectionStyle GoWebScanConfig_DetectTriggerStyle(GoWebScanConfig config)
Gets the detection triggering style.
k32s GoWebScanConfig_YRes(GoWebScanConfig config, GoWebScanDataSource source)
Gets the Y-resolution of a specified data source in mils/pixel.
kSize visionHeight
Height of vision camera configuration (pixels)
Definition: GoWebScanConfig.h:83
kBool GoWebScanConfig_ObstructionFilter(GoWebScanConfig config)
Gets the flag for whether the obstruction filter is enabled.
k32s GoWebScanConfig_CalMinTiles(GoWebScanConfig config)
Gets the minimum count of tiles needed for detection of the calibration bar.
kStatus GoWebScanConfig_UpdateMode(GoWebScanConfig config, GoWebScanMode mode)
Update the system processing mode.
Represents the direction of the X orientation. In a left-to-right system (as viewed from the front)...
Represents the Y-orientation of the sensors: Facing Toward (1) or Facing Away (0). The sensor logo and labels are visible when sensors are facing toward.
kBool enabled
Is the sensor enabled?
Definition: GoWebScanConfig.h:78
kSSize GoWebScanConfig_XEndPix(GoWebScanConfig config, GoWebScanDataSource source)
Gets the end of output space for each data source, in system coordinates (pixels).
kSSize GoWebScanConfig_ThreadCount(GoWebScanConfig config)
Gets the number of threads being used by the system.
k64s GoWebScanConfig_DomainToEncoder(GoWebScanConfig config, k64s encoder, k64s time)
If the encoder simulator is enabled via GoWebScanSettings_SetEncoderSimulated(), this function return...
kSSize GoWebScanConfig_GroupCount(GoWebScanConfig config)
Gets the number of groups in the system.
kBool GoWebScanConfig_SourceEnabled(GoWebScanConfig config, GoWebScanDataSource source)
Gets a flag for whether data from a particular source is enabled.
kStatus GoWebScanConfig_Construct(GoWebScanConfig *config, GoWebScanSettings settings, GoWebScanCalTarget calTarget, GoWebScanCal calibration, kArrayList sensorInfo, GoWebScanMode mode, kAlloc allocator)
Constructs a GoWebScanConfig object.
k32s maxZ
Max expected Z data (mils)
Definition: GoWebScanConfig.h:81
k32s GoWebScanConfig_CalMinGapTiles(GoWebScanConfig config)
Gets the minimum Y-axis gap between successive objects for calibration object detection (tiles)...
kBool GoWebScanConfig_DetectSideExtensionEnabled(GoWebScanConfig config)
Gets a flag for whether extending the board side edge to correct for distortions is enabled...
kStatus GoWebScanConfig_NodeIndexToColumn(GoWebScanConfig config, GoWebScanSettings settings, GoWebScanSystemPlane plane, kSize sensorIndex, kSSize bankId, kSSize *column)
Determine the sensor node column given the sensor index and bank id.
GoWebScanMode GoWebScanConfig_Mode(GoWebScanConfig config)
Gets the system processing mode.
Represents a container for user-specified dimensions of the calibration target which are used during ...
Represents a container for system-level parameters which are translated from user parameters set in G...