GoWebScan API
GoWebScanVisionSampleTask.h
Go to the documentation of this file.
1 /**
2 * @file GoWebScanVisionSampleTask.h
3 * @brief Declares a GoWebScanVisionSampleTask 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_VISION_SAMPLE_TASK_H
12 #define GO_WEB_SCAN_VISION_SAMPLE_TASK_H
13 
18 
19 /**
20  * @class GoWebScanVisionSampleTask
21  * @extends kObject
22  * @ingroup GoWebScanSdk-Control
23  * @brief Represents a task for resampling raw vision data to generate vision tiles for a single camera.
24  * The task uses vision input data and terrain tiles, which are profile tiles that are sampled at
25  * a resolution appropriate for use by the vision sampler, and which has all of its null values
26  * filled in with best-guess values. The task accepts GoWebScanVisionInputMsg objects and
27  * GoWebScanProfileTileMsg objects (for presence data) and produces GoWebScanVisionTileMsg
28  * objects.
29  *
30  * When vision input or profile tile messages are received, they are passed immediately to the
31  * vision combiner, which retains messages until sufficient profile data is available cover the
32  * maximum potential Y-extent of the next vision message. When the vision combiner produces a
33  * frame, which includes a single vision input message and corresponding terrain tiles, the
34  * vision input is processed and then passed to the vision resampler. The vision resampler emits
35  * completed rows as they become available, and those rows are added to an output tile.
36  *
37  * Tiles emitted by the VisionSampleTask can contain null pixels. These occur when the field of
38  * view of the camera is insufficient to cover the tile, when the speed of the system is too
39  * great, resulting in Y-gaps between images, or when input images have been dropped. The x
40  * field of the kRbg structure contains a zero value to indicate a null pixel, or a non-zero
41  * value to indicate a valid pixel.
42  *
43  * Processing steps:
44  * -# Vision input and profile tile messages passed to vision combiner.
45  * -# Vision combiner matches vision input to a set of profile tiles.
46  * -# Vision input is reoriented to standard system orientation.
47  * -# Gains from system calibration are applied to the vision input channels.
48  * -# Vision input is demosaiced to form an RGB image.
49  * -# Vision input is added to the GoWebScanVisionResampler algorithm.
50  * -# Resampled row is assembled into emitted GoWebScanVisionTileMsg.
51  * @see GoWebScanVisionCombiner, GoWebScanVisionResampler, GoWebScanVisionTileMsg
52 */
54 
55 // Forward declaration
57 
58 /**
59 * Constructs a GoWebScanVisionSampleTask object.
60 *
61 * @public @memberof GoWebScanVisionSampleTask
62 * @param task Receives the constructed GoWebScanVisionSampleTask object.
63 * @param process Associated GoWebScanProcess object.
64 * @param configNode Node configuration.
65 * @param allocator Memory allocator (or kNULL for default).
66 * @return Operation status.
67 */
69 
70 /**
71 * Sets the handler for receiving resampled vision tiles.
72 *
73 * @public @memberof GoWebScanVisionSampleTask
74 * @param task GoWebScanVisionSampleTask object.
75 * @param send Callback function
76 * @param context Receiver argument for callback.
77 * @return Operation status.
78 */
80 
81 /**
82 * Dispatches a processing job (task + message) to the pipe. Sends the message to a task's
83 * message queue. The task will submit the message to the pipe for processing if no other job is
84 * pending.
85 *
86 * @public @memberof GoWebScanVisionSampleTask
87 * @param task GoWebScanVisionSampleTask object.
88 * @param msg Message to dispatch.
89 * @return Operation status.
90 */
92 
93 /**
94 * Adds a message to the processing queue. Dequeues a message at the end of the queue to submit
95 * to the pipe for scheduling if no other job is currently pending.
96 *
97 * @public @memberof GoWebScanVisionSampleTask
98 * @param task GoWebScanVisionSampleTask object.
99 * @param msg Vision input message to enqueue.
100 * @return Operation status.
101 */
103 
104 /**
105 * Clears the vision combiner and vision resampler algorithms and resets internal variables.
106 *
107 * @public @memberof GoWebScanVisionSampleTask
108 * @param task GoWebScanVisionSampleTask object.
109 * @return Operation status.
110 */
112 
113 /**
114 * Gets the node configuration for the node associated with this task.
115 *
116 * @public @memberof GoWebScanVisionSampleTask
117 * @param task GoWebScanVisionSampleTask object.
118 * @return Node configuration.
119 */
121 
122 #include <GoWebScanSdk/GoWebScanVisionSampleTask.x.h>
123 
124 #endif
Declares the GoWebScanPipeTask class.
Represents a task for processing raw sensor data to produce system web tiles (Web mode) or detected o...
Represents a container for node-level parameters which are translated from user parameters set in GoW...
Declares a GoWebScanPipe object.
kStatus(kCall * GoWebScanPipeSendFx)(kPointer context, GoWebScanPipeMsg msg)
Defines the signature of the handler used by tasks to receive a message from the pipe.
Definition: GoWebScanPipe.h:33
Essential GoWebScan declarations.
kStatus GoWebScanVisionSampleTask_Construct(GoWebScanVisionSampleTask *task, GoWebScanProcess process, GoWebScanConfigNode configNode, kAlloc allocator)
Constructs a GoWebScanVisionSampleTask object.
GoWebScanConfigNode GoWebScanVisionSampleTask_ConfigNode(GoWebScanVisionSampleTask task)
Gets the node configuration for the node associated with this task.
kStatus GoWebScanVisionSampleTask_Dispatch(GoWebScanVisionSampleTask task, GoWebScanPipeMsg msg)
Dispatches a processing job (task + message) to the pipe.
Represents a task for resampling raw vision data to generate vision tiles for a single camera...
kStatus GoWebScanVisionSampleTask_SetReceiver(GoWebScanVisionSampleTask task, GoWebScanPipeSendFx send, kPointer context)
Sets the handler for receiving resampled vision tiles.
kStatus GoWebScanVisionSampleTask_Clear(GoWebScanVisionSampleTask task)
Clears the vision combiner and vision resampler algorithms and resets internal variables.
Base class for a msg that can be processed with a GoWebScanPipeTask and submitted to the GoWebScanPip...
kStatus GoWebScanVisionSampleTask_Send(GoWebScanVisionSampleTask task, GoWebScanPipeMsg msg)
Adds a message to the processing queue.
Declares a GoWebScanConfig object.