GoWebScan API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
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-2022 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  GoGeoCal profileGeoCal; ///< Profile sensor GoGeoCal file, downloaded from device. Set to kNULL if vision is not used.
85  GoGeoCal visionGeoCal; ///< Associated vision sensor GoGeoCal file, downloaded from device. Set to kNULL if vision is not used.
87 
88 /**
89  * Constructs a GoWebScanConfig object.
90  *
91  * @public @memberof GoWebScanConfig
92  * @param config Receives the constructed GoWebScanConfig object.
93  * @param settings User settings for the system.
94  * @param calTarget Calibration target information. Set to kNULL if not running system
95  * calibration.
96  * @param calibration System calibration. Set to kNULL if running system uncalibrated or if
97  * running system calibration.
98  * @param sensorInfo List of GoWebScanConfigSensorInfo structs representing information from
99  * each sensor in the system.
100  * @param mode System processing mode.
101  * @param allocator Memory allocator (or kNULL for default).
102  * @return Operation status.
103  */
104 GoWebScanFx(kStatus) GoWebScanConfig_Construct(GoWebScanConfig* config, GoWebScanSettings settings, GoWebScanCalTarget calTarget, GoWebScanCal calibration,
105  kArrayList sensorInfo, GoWebScanMode mode, kAlloc allocator);
106 
107 /**
108  * Gets the number of groups in the system.
109  *
110  * @public @memberof GoWebScanConfig
111  * @param config GoWebScanConfig object.
112  * @return Number of groups.
113  */
115 
116 /**
117  * Gets the group configuration at a specified index in the system.
118  *
119  * @public @memberof GoWebScanConfig
120  * @param config GoWebScanConfig object.
121  * @param index Group index.
122  * @return GoWebScanConfigGroup object representing the group config.
123  */
125 
126 /**
127  * Finds the group configuration for a given system plane.
128  *
129  * @public @memberof GoWebScanConfig
130  * @param config GoWebScanConfig object.
131  * @param plane System plane.
132  * @param configGroup Receives the group config object.
133  * @return Operation status.
134  */
136 
137 /**
138  * Gets the number of nodes (cameras) in the system.
139  *
140  * @public @memberof GoWebScanConfig
141  * @param config GoWebScanConfig object.
142  * @return Number of nodes.
143  */
145 
146 /**
147  * Gets the node configuration at a specified index in the system.
148  *
149  * @public @memberof GoWebScanConfig
150  * @param config GoWebScanConfig object.
151  * @param index Node index.
152  * @return GoWebScanConfigNode object representing the group config.
153  */
155 
156 /**
157 * Gets the number of sensors in the system.
158 *
159 * @public @memberof GoWebScanConfig
160 * @param config GoWebScanConfig object.
161 * @return Number of sensors.
162 */
164 
165 /**
166 * Gets the sensor configuration at a specified index in the system.
167 *
168 * @public @memberof GoWebScanConfig
169 * @param config GoWebScanConfig object.
170 * @param index Sensor index.
171 * @return GoWebScanConfigSensor object representing the sensor config.
172 */
174 
175 /**
176 * Gets the number of threads being used by the system.
177 *
178 * @public @memberof GoWebScanConfig
179 * @param config GoWebScanConfig object.
180 * @return Number of sensors.
181 */
183 
184 /**
185  * Gets a flag for whether board detection is enabled.
186  *
187  * @public @memberof GoWebScanConfig
188  * @param config GoWebScanConfig object.
189  * @return Boolean for whether board detection is enabled.
190  */
192 
193 /**
194  * Gets a flag for whether data from a particular source is enabled.
195  *
196  * @public @memberof GoWebScanConfig
197  * @param config GoWebScanConfig object.
198  * @param source Data source.
199  * @return Boolean for whether a source is enabled.
200  */
202 
203 /**
204  * If the encoder simulator is enabled via GoWebScanSettings_SetEncoderSimulated(), this function
205  * returns the simulated encoder value formed from an input time and ignores the sensor
206  * message's actual encoder value. Otherwise, the sensor message's actual encoder value is
207  * returned.
208  *
209  * @public @memberof GoWebScanConfig
210  * @param config GoWebScanConfig object.
211  * @param encoder Encoder value from message stamp.
212  * @param time Timestamp from message stamp.
213  * @return Encoder value (ticks).
214  * @see GoWebScanEncoderSim
215  */
216 GoWebScanFx(k64s) GoWebScanConfig_DomainToEncoder(GoWebScanConfig config, k64s encoder, k64s time);
217 
218 /**
219  * Converts an encoder value to a Y position in mils using the encoder resolution and system Y
220  * offset.
221  *
222  * @public @memberof GoWebScanConfig
223  * @param config GoWebScanConfig object.
224  * @param encoder Encoder value from message stamp (ticks).
225  * @return Y position (mils).
226  */
227 GoWebScanFx(k64s) GoWebScanConfig_EncoderToY(GoWebScanConfig config, k64s encoder);
228 
229 /**
230  * Converts Y position in mils to an encoder value.
231  *
232  * @public @memberof GoWebScanConfig
233  * @param config GoWebScanConfig object.
234  * @param y Y-axis position (mils).
235  * @return Encoder value.
236  */
237 GoWebScanFx(k64s) GoWebScanConfig_YToEncoder(GoWebScanConfig config, k64s y);
238 
239 /**
240  * Converts a simulated encoder value to a Y position in mils if encoder simulation
241  * is enabled, otherwise converts the actual encoder value to a Y position.
242  *
243  * @public @memberof GoWebScanConfig
244  * @param config GoWebScanConfig object.
245  * @param encoder Encoder value from message stamp (ticks).
246  * @param time Timestamp from message stamp. Simulated encoder value is formed from this.
247  * @return Y position (mils).
248  */
249 GoWebScanFx(k64s) GoWebScanConfig_DomainToY(GoWebScanConfig config, k64s encoder, k64s time);
250 
251 /**
252  * Gets the direction of conveyor movement.
253  *
254  * @public @memberof GoWebScanConfig
255  * @param config GoWebScanConfig object.
256  * @return Direction of conveyor movement.
257  * @see GoWebScanSettings_TravelOrientation
258  */
260 
261 /**
262  * Gets the direction of the X-axis.
263  *
264  * @public @memberof GoWebScanConfig
265  * @param config GoWebScanConfig object.
266  * @return X-axis direction.
267  * @see GoWebScanSettings_XOrientation
268  */
270 
271 /**
272  * Gets the X-resolution of a specified data source in mils/pixel.
273  *
274  * @public @memberof GoWebScanConfig
275  * @param config GoWebScanConfig object.
276  * @param source Data source.
277  * @return X-resolution (mils/pixel).
278  */
279 GoWebScanFx(k32s) GoWebScanConfig_XRes(GoWebScanConfig config, GoWebScanDataSource source);
280 
281 /**
282 * Gets the Y-resolution of a specified data source in mils/pixel.
283 *
284 * @public @memberof GoWebScanConfig
285 * @param config GoWebScanConfig object.
286 * @param source Data source.
287 * @return Y-resolution (mils/pixel).
288 */
289 GoWebScanFx(k32s) GoWebScanConfig_YRes(GoWebScanConfig config, GoWebScanDataSource source);
290 
291 /**
292  * Gets the X-resolution for resampling profile data so that it is suitable for the vision
293  * resampler. This resampled profile data is referred to as terrain data.
294  *
295  * @public @memberof GoWebScanConfig
296  * @param config GoWebScanConfig object.
297  * @return Terrain X-resolution (mils/pixel).
298  */
300 
301 /**
302  * Gets the subsampling factor for determining the X-resolution for terrain data. Terrain
303  * X-resolution is determined by bit shifting the vision X-resolution right by this value.
304  *
305  * @public @memberof GoWebScanConfig
306  * @param config GoWebScanConfig object.
307  * @return Terrain X subsampling factor.
308  * @see GoWebScanConfig_VisionTerrainXRes
309  */
311 
312 /**
313  * Gets the Y-extent of all output tiles (mils).
314  *
315  * @public @memberof GoWebScanConfig
316  * @param config GoWebScanConfig object.
317  * @return Y-extent (mils).
318  *
319  */
321 
322 /**
323  * Gets the Y-extent of tiles for each data source (pixels).
324  *
325  * @public @memberof GoWebScanConfig
326  * @param config GoWebScanConfig object.
327  * @param source Data source.
328  * @return Y-extent (pixels).
329  */
331 
332 /**
333  * Gets the maximum data X-gap to be filled in (mils).
334  *
335  * @public @memberof GoWebScanConfig
336  * @param config GoWebScanConfig object.
337  * @return Maximum data x-gap (mils).
338  */
339 GoWebScanFx(k32s) GoWebScanConfig_GapFill(GoWebScanConfig config);
340 
341 /**
342 * Gets the amount of X-overlap to be blended (mils).
343 *
344 * @public @memberof GoWebScanConfig
345 * @param config GoWebScanConfig object.
346 * @return Amount of X-overlap to be blended (mils).
347 */
349 
350 /**
351 * Gets the profile sampling style (linear interpolation or nearest neighbor).
352 *
353 * @public @memberof GoWebScanConfig
354 * @param config GoWebScanConfig object.
355 * @return Profile sampling style.
356 */
358 
359 /**
360 * Gets the flag for whether the obstruction filter is enabled. If enabled, obstruction masks
361 * are applied to input data.
362 *
363 * @public @memberof GoWebScanConfig
364 * @param config GoWebScanConfig object.
365 * @return Obstruction filter enabled flag.
366 */
368 
369 /**
370 * Gets the start of the system output space, in system coordinates (mils).
371 *
372 * @public @memberof GoWebScanConfig
373 * @param config GoWebScanConfig object.
374 * @return X start (mils).
375 */
376 GoWebScanFx(k32s) GoWebScanConfig_XStart(GoWebScanConfig config);
377 
378 /**
379 * Gets the end of the system output space, in system coordinates (mils).
380 *
381 * @public @memberof GoWebScanConfig
382 * @param config GoWebScanConfig object.
383 * @return X end (mils).
384 */
385 GoWebScanFx(k32s) GoWebScanConfig_XEnd(GoWebScanConfig config);
386 
387 /**
388  * Gets the start of output space for each data source, in system coordinates (pixels).
389  *
390  * @public @memberof GoWebScanConfig
391  * @param config GoWebScanConfig object.
392  * @param source Data source.
393  * @return X start (pixels).
394  */
396 
397 /**
398 * Gets the end of output space for each data source, in system coordinates (pixels).
399 *
400 * @public @memberof GoWebScanConfig
401 * @param config GoWebScanConfig object.
402 * @param source Data source.
403 * @return X end (pixels).
404 */
406 
407 /**
408 * Gets the count of output space for each data source (pixels).
409 *
410 * @public @memberof GoWebScanConfig
411 * @param config GoWebScanConfig object.
412 * @param source Data source.
413 * @return X count (pixels).
414 */
416 
417 /**
418 * Gets the minimum Y-distance between data from different nodes before forcing drop (mils).
419 *
420 * @public @memberof GoWebScanConfig
421 * @param config GoWebScanConfig object.
422 * @return Sync coherency distance (mils).
423 */
425 
426 /**
427 * Gets the minimum time between data from different nodes before forcing drop (microseconds).
428 *
429 * @public @memberof GoWebScanConfig
430 * @param config GoWebScanConfig object.
431 * @return Sync coherency time (microseconds).
432 */
434 
435 /**
436  * Gets the minimum Y-distance from the current position to drop all data (mils).
437  *
438  * @public @memberof GoWebScanConfig
439  * @param config GoWebScanConfig object.
440  * @return Sync break distance (mils).
441  */
443 
444 /**
445 * Gets the maximum supported system speed (mils per second).
446 *
447 * @public @memberof GoWebScanConfig
448 * @param config GoWebScanConfig object.
449 * @return Max system speed (mils/s).
450 */
452 
453 /**
454  * Gets the approximate maximum amount of time to buffer data at input to each pipe task
455  * (seconds).
456  *
457  * @public @memberof GoWebScanConfig
458  * @param config GoWebScanConfig object.
459  * @return Max buffer time for tasks (s).
460  */
462 
463 /**
464  * Gets the detection triggering style.
465  *
466  * @public @memberof GoWebScanConfig
467  * @param config GoWebScanConfig object.
468  * @return Detection triggering style.
469  * @see GoWebScanSettings_SetDetectTriggerStyle
470  */
472 
473 /**
474  * Gets the detection triggering threshold.
475  *
476  * @public @memberof GoWebScanConfig
477  * @param config GoWebScanConfig object.
478  * @return Detection triggering threshold.
479  * @see GoWebScanSettings_SetDetectTriggerLength
480  */
482 
483 /**
484 * Gets the detection Y-margin row count, which are extra data included in output.
485 *
486 * @public @memberof GoWebScanConfig
487 * @param config GoWebScanConfig object.
488 * @return Detection margin row count.
489 */
491 
492 /**
493 * Gets the detection minimum Y-extent (presence pixels)
494 *
495 * @public @memberof GoWebScanConfig
496 * @param config GoWebScanConfig object.
497 * @return Detection minimum rows.
498 */
500 
501 /**
502 * Gets the detection maximum Y-extent, excluding margins (presence pixels).
503 *
504 * @public @memberof GoWebScanConfig
505 * @param config GoWebScanConfig object.
506 * @return Detection maximum rows.
507 */
509 
510 /**
511 * Gets the detection minimum inter-object Y-gap (presence pixels).
512 *
513 * @public @memberof GoWebScanConfig
514 * @param config GoWebScanConfig object.
515 * @return Detection minimum Y-gap in rows.
516 */
518 
519 /**
520  * Gets a flag for whether a particular data source be subjected to post-detection data clean-up.
521  *
522  * @public @memberof GoWebScanConfig
523  * @param config GoWebScanConfig object.
524  * @param source Data source.
525  * @return Boolean for whether data source is filtered after detection.
526  */
528 
529 /**
530  * Gets a flag for whether extending the board side edge to correct for distortions is enabled.
531  *
532  * @public @memberof GoWebScanConfig
533  * @param config GoWebScanConfig object.
534  * @return Boolean for whether board side extension is enabled.
535  */
537 
538 /**
539 * Gets the detection maximum number of tiles for one detected object.
540 *
541 * @public @memberof GoWebScanConfig
542 * @param config GoWebScanConfig object.
543 * @return Detection maximum tiles.
544 */
546 
547 /**
548  * Gets the minimum number of non-null profile dots for system calibration bar detection.
549  *
550  * @public @memberof GoWebScanConfig
551  * @param config GoWebScanConfig object.
552  * @return Trigger threshold for calibration bar detection.
553  */
555 
556 /**
557 * Gets the tile length in Y-axis for internal system calibration calculations (mils).
558 *
559 * @public @memberof GoWebScanConfig
560 * @param config GoWebScanConfig object.
561 * @return Tile Y-extent for calibration (mils).
562 */
564 
565 /**
566 * Gets the leading edge data capture margin in Y for calibration (mils).
567 *
568 * @public @memberof GoWebScanConfig
569 * @param config GoWebScanConfig object.
570 * @return Leading Y edge capture margin (mils).
571 */
573 
574 /**
575 * Gets the trailing edge data capture margin in Y for calibration (mils).
576 *
577 * @public @memberof GoWebScanConfig
578 * @param config GoWebScanConfig object.
579 * @return Trailing Y edge capture margin (mils).
580 */
582 
583 /**
584 * Gets the minimum count of tiles needed for detection of the calibration bar.
585 *
586 * @public @memberof GoWebScanConfig
587 * @param config GoWebScanConfig object.
588 * @return Minimum count of tiles for calibration detection.
589 */
591 
592 /**
593 * Gets the maximum count of tiles needed for detection of the calibration bar.
594 *
595 * @public @memberof GoWebScanConfig
596 * @param config GoWebScanConfig object.
597 * @return Maximum count of tiles for calibration detection.
598 */
600 
601 /**
602 * Gets the minimum Y-axis gap between successive objects for calibration object detection (mils).
603 *
604 * @public @memberof GoWebScanConfig
605 * @param config GoWebScanConfig object.
606 * @return Minimum Y-axis gap during calibration detection (mils).
607 */
609 
610 /**
611 * Gets the Y-resolution to use when resampling during calibration processing (mils/pixel).
612 *
613 * @public @memberof GoWebScanConfig
614 * @param config GoWebScanConfig object.
615 * @param source Data source.
616 * @return Calibration Y-resolution (mils/pixel).
617 */
619 
620 /**
621  * Gets a flag for whether GoWebScan should attempt to detect calibration reference holes (1),
622  * or assume that sensors are mounted at their nominal locations along the X-axis (0).
623  *
624  * @public @memberof GoWebScanConfig
625  * @param config GoWebScanConfig object.
626  * @return Boolean representing whether detection of locators on calibration bar is enabled.
627  */
629 
630 /**
631 * Gets a flag for whether the use of target intensities for each color channel during vision
632 * system calibration is enabled.
633 *
634 * @public @memberof GoWebScanConfig
635 * @param config GoWebScanConfig object.
636 * @return Boolean for whether target vision intensities are enabled.
637 */
639 
640 /**
641 * Gets the target intensity level for all color channels during vision system calibration.
642 *
643 * @public @memberof GoWebScanConfig
644 * @param config GoWebScanConfig object.
645 * @return Target intensity for vision calibration.
646 */
648 
649 /**
650  * Gets the divisor to use when calculating minimum Y-interval for retained data during
651  * calibration data collection.
652  *
653  * @public @memberof GoWebScanConfig
654  * @param config GoWebScanConfig object.
655  * @return Divisor in Y-axis for retaining data during calibration.
656  */
658 
659 /**
660  * Gets a flag for whether user-defined obstructions are used instead of automatic chain
661  * detection during calibration processing.
662  *
663  * @public @memberof GoWebScanConfig
664  * @param config GoWebScanConfig object.
665  * @return Boolean for whether user-defined obstructions are used during calibration.
666  */
668 
669 /**
670 * Gets the width of the calibration target (Y-axis extent) in mils.
671 *
672 * @public @memberof GoWebScanConfig
673 * @param config GoWebScanConfig object.
674 * @return Calibration bar width (mils).
675 */
677 
678 /**
679 * Gets the height of the calibration target (Z-axis extent) in mils.
680 *
681 * @public @memberof GoWebScanConfig
682 * @param config GoWebScanConfig object.
683 * @return Calibration bar height (mils).
684 */
686 
687 /**
688 * Gets the total Y-axis extent of the off-axis calibration target in mils.
689 *
690 * @public @memberof GoWebScanConfig
691 * @param config GoWebScanConfig object.
692 * @return Effective Y-axis extent (mils).
693 */
695 
696 /**
697 * Gets the effective thickness of the off-axis calibration target in mils.
698 *
699 * @public @memberof GoWebScanConfig
700 * @param config GoWebScanConfig object.
701 * @return Effective thickness (mils).
702 */
704 
705 /**
706 * Gets the system angle in degrees.
707 *
708 * @public @memberof GoWebScanConfig
709 * @param config GoWebScanConfig object.
710 * @return Angle (degrees).
711 */
713 
714 #include <GoWebScanSdk/GoWebScanConfig.x.h>
715 
716 #endif
k32s GoWebScanConfig_CalTrailMarginTiles(GoWebScanConfig config)
Gets the trailing edge data capture margin in Y for calibration (mils).
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...
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.
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 (mils).
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:85
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
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:84
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.
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.
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.
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 (mils)...
kBool GoWebScanConfig_DetectSideExtensionEnabled(GoWebScanConfig config)
Gets a flag for whether extending the board side edge to correct for distortions is enabled...
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...