GoWebScan API
GoWebScanConfigNode.h
Go to the documentation of this file.
1 /**
2 * @file GoWebScanConfigNode.h
3 * @brief Declares a GoWebScanConfigNode 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_NODE_H
12 #define GO_WEB_SCAN_CONFIG_NODE_H
13 
21 #include <GoSdk/GoSdk.h>
22 
23 /**
24 * @class GoWebScanConfigNode
25 * @extends kObject
26 * @ingroup GoWebScanSdk-Config
27 * @brief Represents a container for node-level parameters which are translated from user
28 * parameters set in GoWebScanSettings. This class maps the orientation of the node
29 * to a standard orientation, performs the X-axis layout of node, and determines
30 * node-specific algorithm parameters. This class is intended to be constructed from
31 * within a GoWebScanConfig object.
32 *
33 * GoWebScanConfig organizes the configuration at the system, group, sensor, and node
34 * levels. Configuration of the groups within the system are represented by the
35 * GoWebScanConfigGroup class, sensors by the GoWebScanConfigSensor class, and nodes
36 * by the GoWebScanConfigNode class. GoWebScanConfig will construct and own these
37 * classes.
38 */
40 
41 // Forward declarations
42 typedef kObject GoWebScanConfig;
45 
46 /**
47  * Constructs a GoWebScanConfigNode object.
48  *
49  * @public @memberof GoWebScanConfigNode
50  * @param node Receives the constructed GoWebScanConfigNode object.
51  * @param bankId Bank ID of node (index of node with respect to sensor).
52  * @param sensor Configuration of parent sensor.
53  * @param settingsSensor User settings for the sensor.
54  * @param calibration System calibration. Set to kNULL if running system uncalibrated or if
55  * running system calibration.
56  * @param sensorInfo List of GoWebScanConfigSensorInfo structs representing information
57  * from each sensor in the system.
58  * @param allocator Memory allocator (or kNULL for default).
59  * @return Operation status.
60  */
62  GoWebScanSettingsSensor settingsSensor, GoWebScanCal calibration, const GoWebScanConfigSensorInfo* sensorInfo, kAlloc allocator);
63 
64 /**
65 * Gets the configuration of the sensor that the node is part of.
66 *
67 * @public @memberof GoWebScanConfigNode
68 * @param node GoWebScanConfigNode object.
69 * @return GoWebScanConfigSensor object representing sensor configuration.
70 */
72 
73 /**
74 * Gets the configuration of the group that the node is part of.
75 *
76 * @public @memberof GoWebScanConfigNode
77 * @param node GoWebScanConfigNode object.
78 * @return GoWebScanConfigGroup object representing group configuration.
79 */
81 
82 /**
83 * Gets the configuration of the system that the node is part of.
84 *
85 * @public @memberof GoWebScanConfigNode
86 * @param node GoWebScanConfigNode object.
87 * @return GoWebScanConfig object representing system configuration.
88 */
90 
91 /**
92  * Gets the serial number of the sensor the node is part of. In systems with vision sensors,
93  * this is the profile sensor's ID.
94  *
95  * @public @memberof GoWebScanConfigNode
96  * @param node GoWebScanConfigNode object.
97  * @return Profile sensor ID.
98  */
100 
101 /**
102 * Gets the serial number of the vision sensor in a profile-vision sensor pair (for systems with
103 * vision). For systems without vision, this will return GO_WEB_SCAN_UNASSIGNED_SERIAL_NUMBER.
104 *
105 * @public @memberof GoWebScanConfigNode
106 * @param node GoWebScanConfigNode object.
107 * @return Vision sensor ID.
108 */
110 
111 /**
112  * Gets the bank ID of the node (index of the node with respect to the sensor).
113  *
114  * @public @memberof GoWebScanConfigNode
115  * @param node GoWebScanConfigNode object.
116  * @return Bank ID.
117  */
119 
120 /**
121  * Gets the plane of the group that the node is part of.
122  *
123  * @public @memberof GoWebScanConfigNode
124  * @param node GoWebScanConfigNode object.
125  * @return Plane of node.
126  */
128 
129 /**
130  * Gets the column of the node. The columns increase left-to-right or right-to-left based on the
131  * X orientation.
132  *
133  * @public @memberof GoWebScanConfigNode
134  * @param node GoWebScanConfigNode object.
135  * @return Column of node.
136  */
138 
139 /**
140  * Gets the number of laser spots of the node.
141  *
142  * @public @memberof GoWebScanConfigNode
143  * @param node GoWebScanConfigNode object.
144  * @return Number of laser spots.
145  */
147 
148 /**
149 * Gets the nominal X width of the node (mils).
150 *
151 * @public @memberof GoWebScanConfigNode
152 * @param node GoWebScanConfigNode object.
153 * @return X width of node (mils).
154 */
156 
157 /**
158 * Gets the maximum Z value expected from profile sensors (depends on the
159 * sensor's active area) (mils).
160 *
161 * @public @memberof GoWebScanConfigNode
162 * @param node GoWebScanConfigNode object.
163 * @return Max Z (mils).
164 */
166 
167 /**
168 * Gets the vision flatfield gain fractional bits preserved in integer calculations
169 *
170 * @public @memberof GoWebScanConfigNode
171 * @param node GoWebScanConfigNode object.
172 * @return Gain resolution bits.
173 */
175 
176 /**
177  * Gets the expected width of vision data in pixels.
178  *
179  * @public @memberof GoWebScanConfigNode
180  * @param node GoWebScanConfigNode object.
181  * @return Vision data width (pixels).
182  */
184 
185 /**
186 * Gets the expected height of vision data in pixels.
187 *
188 * @public @memberof GoWebScanConfigNode
189 * @param node GoWebScanConfigNode object.
190 * @return Vision data height (pixels).
191 */
193 
194 /**
195  * Gets the linear function representing the vision X resolution as a function of the Z range.
196  * These coefficients are read from the sensor's GoGeoCal file.
197  *
198  * @public @memberof GoWebScanConfigNode
199  * @param node GoWebScanConfigNode object.
200  * @return XRes(z) linear fit coefficients.
201  */
203 
204 /**
205 * Gets the linear function representing the vision Y resolution as a function of the Z range.
206 * These coefficients are read from the sensor's GoGeoCal file.
207 *
208 * @public @memberof GoWebScanConfigNode
209 * @param node GoWebScanConfigNode object.
210 * @return YRes(z) linear fit coefficients.
211 */
213 
214 /**
215 * Gets the linear function representing the vision Z offset as a function of the image row.
216 *
217 * @public @memberof GoWebScanConfigNode
218 * @param node GoWebScanConfigNode object.
219 * @return Z offset(angle) linear fit coefficients.
220 */
222 
223 /**
224  * Gets the maximum Y-axis extent for vision data in mils. Calculates the extent using the
225  * vision Y resolution, the expected maximum Z range for the profile-vision pair, and the
226  * expected vision height.
227  *
228  * @public @memberof GoWebScanConfigNode
229  * @param node GoWebScanConfigNode object.
230  * @return Maximum Y-axis extent (mils).
231  */
233 
234 /**
235 * Gets the minimum Y-axis extent for vision data in mils. Calculates the extent using the
236 * vision Y resolution, the expected minimum Z range for the profile-vision pair, and the
237 * expected vision height.
238 *
239 * @public @memberof GoWebScanConfigNode
240 * @param node GoWebScanConfigNode object.
241 * @return Minimum Y-axis extent (mils).
242 */
244 
245 /**
246  * Maps the RGB target intensities (for flatfield calibration) to a Bayer cell given the color
247  * filter array type.
248  *
249  * @public @memberof GoWebScanConfigNode
250  * @param node GoWebScanConfigNode object.
251  * @param targets Pointer to buffer representing Bayer cell.
252  * @param channelCount Number of color channels in Bayer cell.
253  * @param cfa Color filter array type of vision data.
254  * @return Operation status.
255  */
256 GoWebScanFx(kStatus) GoWebScanConfigNode_CalTargetVisionIntensity(GoWebScanConfigNode node, k32s* targets, kSize channelCount, kCfa cfa);
257 
258 /**
259  * Gets the width of vision gain images stored in calibration files.
260  *
261  * @public @memberof GoWebScanConfigNode
262  * @param node GoWebScanConfigNode object.
263  * @return Width of gain images.
264  */
266 
267 /**
268 * Gets the height of vision gain images stored in calibration files.
269 *
270 * @public @memberof GoWebScanConfigNode
271 * @param node GoWebScanConfigNode object.
272 * @return Height of gain images.
273 */
275 
276 /**
277 * Gets the width of vision Y-offset array stored in calibration files.
278 *
279 * @public @memberof GoWebScanConfigNode
280 * @param node GoWebScanConfigNode object.
281 * @return Width of vision Y-offset array.
282 */
284 
285 /**
286 * Gets the X-orientation of the node. Normal (1) or opposite (0). Normal is defined as node
287 * X-axis aligned to the system X-axis in standard orientation (Refer to GoWebScanConfig for
288 * a description of standard orientation).
289 *
290 * @public @memberof GoWebScanConfigNode
291 * @param node GoWebScanConfigNode object.
292 * @return Node X-orientation.
293 * @see GoWebScanConfig
294 */
296 
297 /**
298 * Gets the Y-orientation of the node. Normal (1) or opposite (0). Normal is defined as node
299 * Y-axis opposite to the system Y-axis in standard orientation (Refer to GoWebScanConfig for
300 * a description of standard orientation).
301 *
302 * @public @memberof GoWebScanConfigNode
303 * @param node GoWebScanConfigNode object.
304 * @return Node Y-orientation.
305 * @see GoWebScanConfig
306 */
308 
309 /**
310 * Gets the Z-orientation of the node. Normal (1) or opposite (0). Normal is defined as node
311 * Z-axis opposite to the system Z-axis in standard orientation (Refer to GoWebScanConfig for
312 * a description of standard orientation).
313 *
314 * @public @memberof GoWebScanConfigNode
315 * @param node GoWebScanConfigNode object.
316 * @return Node Z-orientation.
317 * @see GoWebScanConfig
318 */
320 
321 /**
322 * Gets the sensor calibration edge-orientation: Normal (1) or opposite (0).
323 *
324 * @public @memberof GoWebScanConfigNode
325 * @param node GoWebScanConfigNode object.
326 * @return Node calibration edge orientation.
327 */
329 
330 /**
331  * Gets the X-center of a data source in sensor coordinates (mils).
332  *
333  * @public @memberof GoWebScanConfigNode
334  * @param node GoWebScanConfigNode object.
335  * @param source Data source.
336  * @return X-center (mils).
337  */
339 
340 /**
341 * Gets the nominal X-center of the node in system coordinates (mils).
342 *
343 * @public @memberof GoWebScanConfigNode
344 * @param node GoWebScanConfigNode object.
345 * @return X-center (mils).
346 */
348 
349 /**
350 * Gets the X-center of a data source in system coordinates (mils).
351 *
352 * @public @memberof GoWebScanConfigNode
353 * @param node GoWebScanConfigNode object.
354 * @param source Data source.
355 * @return X-center of data source (mils).
356 */
358 
359 /**
360 * Gets the X-axis start of resampled data in system coords for a data source (pixels).
361 *
362 * @public @memberof GoWebScanConfigNode
363 * @param node GoWebScanConfigNode object.
364 * @param source Data source.
365 * @return X-axis start of resampled data (pixels).
366 */
368 
369 /**
370 * Gets the X-axis end of resampled data in system coords for a data source (pixels).
371 *
372 * @public @memberof GoWebScanConfigNode
373 * @param node GoWebScanConfigNode object.
374 * @param source Data source.
375 * @return X-axis end of resampled data (pixels).
376 */
378 
379 /**
380 * Gets the X-axis count of resampled data in system coords for a data source.
381 *
382 * @public @memberof GoWebScanConfigNode
383 * @param node GoWebScanConfigNode object.
384 * @param source Data source.
385 * @return X-axis count of resampled data.
386 */
388 
389 /**
390 * Gets the approximate input data rate of a data source (bytes per second).
391 *
392 * @public @memberof GoWebScanConfigNode
393 * @param node GoWebScanConfigNode object.
394 * @param source Data source.
395 * @return Input data rate (bytes per second).
396 */
398 
399 /**
400 * Gets the approximate sampled data rate of a data source (bytes per travel-mils)
401 *
402 * @public @memberof GoWebScanConfigNode
403 * @param node GoWebScanConfigNode object.
404 * @param source Data source.
405 * @return Sampled data rate (bytes per travel-mils).
406 */
408 
409 /**
410 * Gets the Y-offset from laser/tracheid plane to a data source's plane (mils).
411 *
412 * @public @memberof GoWebScanConfigNode
413 * @param node GoWebScanConfigNode object.
414 * @param source Data source.
415 * @return Y-offset (mils).
416 */
418 
419 /**
420 * Gets the minimum Y-interval for unique/retained data during calibration data collection (mils)
421 *
422 * @public @memberof GoWebScanConfigNode
423 * @param node GoWebScanConfigNode object.
424 * @param source Data source.
425 * @return Minimum Y-interval (mils).
426 */
428 
429 /**
430  * Gets the array of profile Z offsets calculated during system calibration. Offsets are per
431  * laser spot.
432  *
433  * @public @memberof GoWebScanConfigNode
434  * @param node GoWebScanConfigNode object.
435  * @return Z offsets. Type k16s. Size of GoWebScanConfigNode_LaserDotCount().
436  */
438 
439 /**
440 * Gets the array of profile Y offsets calculated during system calibration. Offsets are per
441 * laser spot.
442 *
443 * @public @memberof GoWebScanConfigNode
444 * @param node GoWebScanConfigNode object.
445 * @return Y offsets. Type k32s. Size of GoWebScanConfigNode_LaserDotCount().
446 */
448 
449 /**
450  * Gets the array of vision Y offsets calculated during system calibration. Offsets are per
451  * demosaiced vision column.
452  *
453  * @public @memberof GoWebScanConfigNode
454  * @param node GoWebScanConfigNode object.
455  * @return Y offsets. Type k32s. Size of GoWebScanConfigNode_VisionWidth().
456  */
458 
459 /**
460  * Gets the array of vision Y offsets calculated during system calibration. Offsets are per raw
461  * vision pixel.
462  *
463  * @public @memberof GoWebScanConfigNode
464  * @param node GoWebScanConfigNode object.
465  * @return Vision gains. Type k16u. Size of GoWebScanConfigNode_VisionHeight() by
466  * GoWebScanConfigNode_VisionWidth().
467  */
469 
470 /**
471 * Gets the array of tracheid Y offsets calculated during system calibration. Offsets are per
472 * laser spot.
473 *
474 * @public @memberof GoWebScanConfigNode
475 * @param node GoWebScanConfigNode object.
476 * @return Y offsets. Type k32s. Size of GoWebScanConfigNode_LaserDotCount().
477 */
479 
480 /**
481 * Update the calibration.
482 *
483 * @public @memberof GoWebScanConfigNode
484 * @param node GoWebScanConfigNode object.
485 * @param calibration System calibration. Set to kNULL if running system uncalibrated or if running system calibration.
486 * @return Operation status.
487 */
489 
490 #include <GoWebScanSdk/GoWebScanConfigNode.x.h>
491 
492 #endif
Represents a container for node-level parameters which are translated from user parameters set in GoW...
kSSize GoWebScanConfigNode_BankId(GoWebScanConfigNode node)
Gets the bank ID of the node (index of the node with respect to the sensor).
Represents coefficients of a linear fit. The fit can be applied as follows: y(x) = c1*x + c0...
Definition: GoWebScanSdkDef.h:514
k64f GoWebScanConfigNode_InputDataRate(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the approximate input data rate of a data source (bytes per second).
GoWebScanLinearFunction GoWebScanConfigNode_VisionXResAsZ(GoWebScanConfigNode node)
Gets the linear function representing the vision X resolution as a function of the Z range...
kSSize GoWebScanConfigNode_VisionCalGainHeight(GoWebScanConfigNode node)
Gets the height of vision gain images stored in calibration files.
k32s GoWebScanConfigNode_VisionMaxInputYExtent(GoWebScanConfigNode node)
Gets the maximum Y-axis extent for vision data in mils.
k32s GoWebScanConfigNode_VisionId(GoWebScanConfigNode node)
Gets the serial number of the vision sensor in a profile-vision sensor pair (for systems with vision)...
kSSize GoWebScanConfigNode_Column(GoWebScanConfigNode node)
Gets the column of the node.
kSSize GoWebScanConfigNode_VisionCalGainWidth(GoWebScanConfigNode node)
Gets the width of vision gain images stored in calibration files.
k32s GoWebScanConfigNode_VisionCalYOffsetCount(GoWebScanConfigNode node)
Gets the width of vision Y-offset array stored in calibration files.
k32s GoWebScanConfigNode_XOrientation(GoWebScanConfigNode node)
Gets the X-orientation of the node.
Represents a type of sensor data.
GoWebScanSystemPlane GoWebScanConfigNode_Plane(GoWebScanConfigNode node)
Gets the plane of the group that the node is part of.
kStatus GoWebScanConfigNode_Construct(GoWebScanConfigNode *node, kSSize bankId, GoWebScanConfigSensor sensor, GoWebScanSettingsSensor settingsSensor, GoWebScanCal calibration, const GoWebScanConfigSensorInfo *sensorInfo, kAlloc allocator)
Constructs a GoWebScanConfigNode object.
Essential GoWebScan declarations.
k64s GoWebScanConfigNode_PlaneYOffset(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the Y-offset from laser/tracheid plane to a data source's plane (mils).
k64f GoWebScanConfigNode_SampledDataRate(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the approximate sampled data rate of a data source (bytes per travel-mils)
Represents information from each sensor in the system, collected and provided by the user application...
Definition: GoWebScanConfig.h:75
k32s GoWebScanConfigNode_EOrientation(GoWebScanConfigNode node)
Gets the sensor calibration edge-orientation: Normal (1) or opposite (0).
kArray1 GoWebScanConfigNode_TracheidYOffsets(GoWebScanConfigNode node)
Gets the array of tracheid Y offsets calculated during system calibration.
GoWebScanLinearFunction GoWebScanConfigNode_VisionZOffAsR(GoWebScanConfigNode node)
Gets the linear function representing the vision Z offset as a function of the image row...
k32s GoWebScanConfigNode_NominalFov(GoWebScanConfigNode node)
Gets the nominal X width of the node (mils).
k32s GoWebScanConfigNode_YOrientation(GoWebScanConfigNode node)
Gets the Y-orientation of the node.
kArray1 GoWebScanConfigNode_ProfileZOffsets(GoWebScanConfigNode node)
Gets the array of profile Z offsets calculated during system calibration.
GoWebScanConfigGroup GoWebScanConfigNode_Group(GoWebScanConfigNode node)
Gets the configuration of the group that the node is part of.
Represents a container for sensor-level parameters which are translated from user parameters set in G...
Declares a GoWebScanCalNode object.
kArray1 GoWebScanConfigNode_VisionYOffsets(GoWebScanConfigNode node)
Gets the array of vision Y offsets calculated during system calibration.
Declares a GoWebScanConfigSensor object.
k32s GoWebScanConfigNode_ProfileId(GoWebScanConfigNode node)
Gets the serial number of the sensor the node is part of.
k32s GoWebScanConfigNode_ZOrientation(GoWebScanConfigNode node)
Gets the Z-orientation of the node.
GoWebScanConfig GoWebScanConfigNode_Root(GoWebScanConfigNode node)
Gets the configuration of the system that the node is part of.
kStatus GoWebScanConfigNode_UpdateCalibration(GoWebScanConfigNode node, GoWebScanCal calibration)
Update the calibration.
GoWebScanConfigSensor GoWebScanConfigNode_Parent(GoWebScanConfigNode node)
Gets the configuration of the sensor that the node is part of.
kStatus GoWebScanConfigNode_CalTargetVisionIntensity(GoWebScanConfigNode node, k32s *targets, kSize channelCount, kCfa cfa)
Maps the RGB target intensities (for flatfield calibration) to a Bayer cell given the color filter ar...
Represents a container for group-level parameters which are translated from user parameters set in Go...
k32s GoWebScanConfigNode_XCenter(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the X-center of a data source in system coordinates (mils).
kSSize GoWebScanConfigNode_XStartPix(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the X-axis start of resampled data in system coords for a data source (pixels).
Declares a GoWebScanCal object.
kArray1 GoWebScanConfigNode_ProfileYOffsets(GoWebScanConfigNode node)
Gets the array of profile Y offsets calculated during system calibration.
k32s GoWebScanConfigNode_VisionMinInputYExtent(GoWebScanConfigNode node)
Gets the minimum Y-axis extent for vision data in mils.
k32s GoWebScanConfigNode_VisionGainResBits(GoWebScanConfigNode node)
Gets the vision flatfield gain fractional bits preserved in integer calculations. ...
k32s GoWebScanConfigNode_MinYStep(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the minimum Y-interval for unique/retained data during calibration data collection (mils) ...
kSSize GoWebScanConfigNode_XEndPix(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the X-axis end of resampled data in system coords for a data source (pixels).
kSSize GoWebScanConfigNode_VisionHeight(GoWebScanConfigNode node)
Gets the expected height of vision data in pixels.
Represents the top or bottom plane of the system.
Declares a GoWebScanProcess object.
kSSize GoWebScanConfigNode_LaserDotCount(GoWebScanConfigNode node)
Gets the number of laser spots of the node.
Represents a container for the system calibration. The system calibration corrects for mounting diffe...
k32s GoWebScanConfigNode_NominalXCenter(GoWebScanConfigNode node)
Gets the nominal X-center of the node in system coordinates (mils).
k32s GoWebScanConfigNode_ProfileMaxZ(GoWebScanConfigNode node)
Gets the maximum Z value expected from profile sensors (depends on the sensor's active area) (mils)...
kArray2 GoWebScanConfigNode_VisionGains(GoWebScanConfigNode node)
Gets the array of vision Y offsets calculated during system calibration.
kSSize GoWebScanConfigNode_XCountPix(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the X-axis count of resampled data in system coords for a data source.
GoWebScanLinearFunction GoWebScanConfigNode_VisionYResAsZ(GoWebScanConfigNode node)
Gets the linear function representing the vision Y resolution as a function of the Z range...
Represents a container for user-configurable settings of a sensor within the system. For systems with vision, a GoWebScanSettingsSensor object represents a pair of vision and profile sensors (sensor mounted together).
Declares a GoWebScanConfigGroup object.
k32s GoWebScanConfigNode_OrientationXCenter(GoWebScanConfigNode node, GoWebScanDataSource source)
Gets the X-center of a data source in sensor coordinates (mils).
Represents a container for system-level parameters which are translated from user parameters set in G...
kSSize GoWebScanConfigNode_VisionWidth(GoWebScanConfigNode node)
Gets the expected width of vision data in pixels.
Declares a GoWebScanConfig object.