GoWebScan API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
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-2021 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 maximum Y-axis extent for vision data in mils. Calculates the extent using the
216  * vision Y resolution, the expected maximum Z range for the profile-vision pair, and the
217  * expected vision height.
218  *
219  * @public @memberof GoWebScanConfigNode
220  * @param node GoWebScanConfigNode object.
221  * @return Maximum Y-axis extent (mils).
222  */
224 
225 /**
226 * Gets the minimum Y-axis extent for vision data in mils. Calculates the extent using the
227 * vision Y resolution, the expected minimum Z range for the profile-vision pair, and the
228 * expected vision height.
229 *
230 * @public @memberof GoWebScanConfigNode
231 * @param node GoWebScanConfigNode object.
232 * @return Maximum Y-axis extent (mils).
233 */
235 
236 /**
237  * Maps the RGB target intensities (for flatfield calibration) to a Bayer cell given the color
238  * filter array type.
239  *
240  * @public @memberof GoWebScanConfigNode
241  * @param node GoWebScanConfigNode object.
242  * @param targets Pointer to buffer representing Bayer cell.
243  * @param channelCount Number of color channels in Bayer cell.
244  * @param cfa Color filter array type of vision data.
245  * @return Operation status.
246  */
247 GoWebScanFx(kStatus) GoWebScanConfigNode_CalTargetVisionIntensity(GoWebScanConfigNode node, k32s* targets, kSize channelCount, kCfa cfa);
248 
249 /**
250  * Gets the width of vision gain images stored in calibration files.
251  *
252  * @public @memberof GoWebScanConfigNode
253  * @param node GoWebScanConfigNode object.
254  * @return Width of gain images.
255  */
257 
258 /**
259 * Gets the height of vision gain images stored in calibration files.
260 *
261 * @public @memberof GoWebScanConfigNode
262 * @param node GoWebScanConfigNode object.
263 * @return Height of gain images.
264 */
266 
267 /**
268 * Gets the width of vision Y-offset array stored in calibration files.
269 *
270 * @public @memberof GoWebScanConfigNode
271 * @param node GoWebScanConfigNode object.
272 * @return Width of vision Y-offset array.
273 */
275 
276 /**
277 * Gets the X-orientation of the node. Normal (1) or opposite (0). Normal is defined as node
278 * X-axis aligned to the system X-axis in standard orientation (Refer to GoWebScanConfig for
279 * a description of standard orientation).
280 *
281 * @public @memberof GoWebScanConfigNode
282 * @param node GoWebScanConfigNode object.
283 * @return Node X-orientation.
284 * @see GoWebScanConfig
285 */
287 
288 /**
289 * Gets the Y-orientation of the node. Normal (1) or opposite (0). Normal is defined as node
290 * Y-axis opposite to the system Y-axis in standard orientation (Refer to GoWebScanConfig for
291 * a description of standard orientation).
292 *
293 * @public @memberof GoWebScanConfigNode
294 * @param node GoWebScanConfigNode object.
295 * @return Node Y-orientation.
296 * @see GoWebScanConfig
297 */
299 
300 /**
301 * Gets the Z-orientation of the node. Normal (1) or opposite (0). Normal is defined as node
302 * Z-axis opposite to the system Z-axis in standard orientation (Refer to GoWebScanConfig for
303 * a description of standard orientation).
304 *
305 * @public @memberof GoWebScanConfigNode
306 * @param node GoWebScanConfigNode object.
307 * @return Node Z-orientation.
308 * @see GoWebScanConfig
309 */
311 
312 /**
313 * Gets the sensor calibration edge-orientation: Normal (1) or opposite (0).
314 *
315 * @public @memberof GoWebScanConfigNode
316 * @param node GoWebScanConfigNode object.
317 * @return Node calibration edge orientation.
318 */
320 
321 /**
322  * Gets the X-center of a data source in sensor coordinates (mils).
323  *
324  * @public @memberof GoWebScanConfigNode
325  * @param node GoWebScanConfigNode object.
326  * @param source Data source.
327  * @return X-center (mils).
328  */
330 
331 /**
332 * Gets the nominal X-center of the node in system coordinates (mils).
333 *
334 * @public @memberof GoWebScanConfigNode
335 * @param node GoWebScanConfigNode object.
336 * @return X-center (mils).
337 */
339 
340 /**
341 * Gets the X-center of a data source in system coordinates (mils).
342 *
343 * @public @memberof GoWebScanConfigNode
344 * @param node GoWebScanConfigNode object.
345 * @param source Data source.
346 * @return X-center of data source (mils).
347 */
349 
350 /**
351 * Gets the X-axis start of resampled data in system coords for a data source (pixels).
352 *
353 * @public @memberof GoWebScanConfigNode
354 * @param node GoWebScanConfigNode object.
355 * @param source Data source.
356 * @return X-axis start of resampled data (pixels).
357 */
359 
360 /**
361 * Gets the X-axis end of resampled data in system coords for a data source (pixels).
362 *
363 * @public @memberof GoWebScanConfigNode
364 * @param node GoWebScanConfigNode object.
365 * @param source Data source.
366 * @return X-axis end of resampled data (pixels).
367 */
369 
370 /**
371 * Gets the X-axis count of resampled data in system coords for a data source.
372 *
373 * @public @memberof GoWebScanConfigNode
374 * @param node GoWebScanConfigNode object.
375 * @param source Data source.
376 * @return X-axis count of resampled data.
377 */
379 
380 /**
381 * Gets the approximate input data rate of a data source (bytes per second).
382 *
383 * @public @memberof GoWebScanConfigNode
384 * @param node GoWebScanConfigNode object.
385 * @param source Data source.
386 * @return Input data rate (bytes per second).
387 */
389 
390 /**
391 * Gets the approximate sampled data rate of a data source (bytes per travel-mils)
392 *
393 * @public @memberof GoWebScanConfigNode
394 * @param node GoWebScanConfigNode object.
395 * @param source Data source.
396 * @return Sampled data rate (bytes per travel-mils).
397 */
399 
400 /**
401 * Gets the Y-offset from laser/tracheid plane to a data source's plane (mils).
402 *
403 * @public @memberof GoWebScanConfigNode
404 * @param node GoWebScanConfigNode object.
405 * @param source Data source.
406 * @return Y-offset (mils).
407 */
409 
410 /**
411 * Gets the minimum Y-interval for unique/retained data during calibration data collection (mils)
412 *
413 * @public @memberof GoWebScanConfigNode
414 * @param node GoWebScanConfigNode object.
415 * @param source Data source.
416 * @return Minimum Y-interval (mils).
417 */
419 
420 /**
421  * Gets the array of profile Z offsets calculated during system calibration. Offsets are per
422  * laser spot.
423  *
424  * @public @memberof GoWebScanConfigNode
425  * @param node GoWebScanConfigNode object.
426  * @return Z offsets. Type k16s. Size of GoWebScanConfigNode_LaserDotCount().
427  */
429 
430 /**
431 * Gets the array of profile Y offsets calculated during system calibration. Offsets are per
432 * laser spot.
433 *
434 * @public @memberof GoWebScanConfigNode
435 * @param node GoWebScanConfigNode object.
436 * @return Y offsets. Type k32s. Size of GoWebScanConfigNode_LaserDotCount().
437 */
439 
440 /**
441  * Gets the array of vision Y offsets calculated during system calibration. Offsets are per
442  * demosaiced vision column.
443  *
444  * @public @memberof GoWebScanConfigNode
445  * @param node GoWebScanConfigNode object.
446  * @return Y offsets. Type k32s. Size of GoWebScanConfigNode_VisionWidth().
447  */
449 
450 /**
451  * Gets the array of vision Y offsets calculated during system calibration. Offsets are per raw
452  * vision pixel.
453  *
454  * @public @memberof GoWebScanConfigNode
455  * @param node GoWebScanConfigNode object.
456  * @return Vision gains. Type k16u. Size of GoWebScanConfigNode_VisionHeight() by
457  * GoWebScanConfigNode_VisionWidth().
458  */
460 
461 /**
462 * Gets the array of tracheid Y offsets calculated during system calibration. Offsets are per
463 * laser spot.
464 *
465 * @public @memberof GoWebScanConfigNode
466 * @param node GoWebScanConfigNode object.
467 * @return Y offsets. Type k32s. Size of GoWebScanConfigNode_LaserDotCount().
468 */
470 
471 #include <GoWebScanSdk/GoWebScanConfigNode.x.h>
472 
473 #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:507
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.
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.
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.