| CGoWebScanCal | Represents a container for the system calibration. The system calibration corrects for mounting differences between sensors and performs a flatfield correction for vision sensors. The calibration file contains Z and Y offsets per spot for profile and tracheid sensors, and Y offsets and gains (for each color channel) for vision sensors. All offsets are stored in hex to save space in the file. Additionally, the calibration file also stores the X offset per camera (in decimal). This is only used when detection of locators is enabled during vision calibration. The algorithm aligns cameras to the centers of holes in the calibration bars, and calculates the X offset accordingly. Non-vision systems will have an X offset of 0. The calibration also contains an X and Y reference (in decimal) which represents the system bias. This reference allows for aligning multiple systems to each other |
| CGoWebScanCalActivity | Represents a stage or activity in the system calibration processing pipeline |
| CGoWebScanCalCollector | Represents a task to coordinate collection of sensor messages, matching of messages in Y to produce system tiles, and detection of the calibration bar during system calibration. Sensor messages should be given to this class until the class has determined the calibration bar has been detected. At that point, a calibration input dataset is generated which contains system tiles containing the calibration bar, and this dataset can be provided to the calibration processor (GoWebScanCalProcessor). The class coordinates combining messages to form Y-matched tiles via the GoWebScanCalCombiner algorithm, and detects the bar via the GoWebScanCalDetector algorithm |
| CGoWebScanCalCombiner | Represents an algorithm for importing sensor messages collected during system calibration, matching the messages in Y and removing messages with time or distance coherency violations, and sending the system tiles for further calibration processing. This class is similar to the GoWebScanTileCombiner algorithm but is specialized to work with raw (unresampled) sensor data and to store data in calibration input message objects (GoWebScanCalInputTile) |
| CGoWebScanCalCombinerParams | Represents parameters of the calibration combiner algorithm |
| CGoWebScanCalDetector | Represents an algorithm for detecting a calibration bar in Y-matched system tiles of raw sensor messages. This algorithm is similar to GoWebScanDetector but is designed to run with raw sensor messages. A simple state machine is used to determine when to emit objects. The detection method for the calibration bar is global; the number of non-null profile points must exceed the detection threshold, but no condition of contiguity is imposed |
| CGoWebScanCalDetectorParams | Represents parameters of the calibration detector algorithm |
| CGoWebScanCalDetectorState | Represents states of calibration bar detection state machine |
| CGoWebScanCalInput | Represents Y-matched system data containing a calibration bar, used for calibration processing. The GoWebScanCalInput object contains a list of GoWebScanCalInputNode objects which represent containers of individual node messages. The message are raw sensor data and undergo no resampling or merging |
| CGoWebScanCalInputItem | Represents a raw sensor message used for calibration collection and processing |
| CGoWebScanCalInputNode | Represents a container for raw sensor messages of a particular data type from a single node for calibration processing. An X section of the calibration bar corresponding to this node is contained in the messages |
| CGoWebScanCalInputStamp | Represents a stamp containing properties of the input message |
| CGoWebScanCalInputTile | Represents a container for raw sensor messages from a single node used during calibration data collection |
| CGoWebScanCalInputTileSet | Represents a Y-matched tile spanning a system plane for a particular data type. These tile sets are provided as input to the calibration bar detector logic |
| CGoWebScanCalMsg | Represents a message containing issues that occurred during system calibration. Each issue is associated with a node in the system, a data source (profile, tracheid, or vision), and a stage of the calibration processing |
| CGoWebScanCalMsgAttr | Represents the attributes of a calibration message |
| CGoWebScanCalMsgIssue | Represents an issue that occurred during calibration processing |
| CGoWebScanCalNode | Represents a container for node-level system calibration data. Refer to GoWebScanCal for a description of system calibration |
| CGoWebScanCalNodeStatus | Represents a type of error or warning that occurred during system calibration processing of a node |
| CGoWebScanCalProcessor | Represents an algorithm for processing system tiles containing a calibration bar and generating the calibration containing profile Z and Y offsets and vision Y offsets and gains. Refer to GoWebScanCal for a description of the system calibration outputs and usage |
| CGoWebScanCalProcessorNode | Represents an algorithm for processing node tiles containing a calibration bar, and generating node profile Z and Y offsets and vision Y offsets and gains. Refer to GoWebScanCal for a description of the system calibration outputs and usage |
| CGoWebScanCalStatus | Represents the status of calibration processing for the system |
| CGoWebScanCalTarget | Represents a container for user-specified dimensions of the calibration target which are used during system calibration processing. The dimensions are stored as an XML file |
| CGoWebScanConfig | Represents a container for system-level parameters which are translated from user parameters set in GoWebScanSettings. This class maps the orientation of the system to a standard orientation, performs the X-axis layout of sensors, determines algorithm parameters based on constants and user parameters, and determines other various system parameters |
| CGoWebScanConfigGroup | Represents a container for group-level parameters which are translated from user parameters set in GoWebScanSettings. This class contains properties describing the group orientation, and contains a list of sensor configuration objects. This class is intended to be constructed from within a GoWebScanConfig object |
| CGoWebScanConfigNode | Represents a container for node-level parameters which are translated from user parameters set in GoWebScanSettings. This class maps the orientation of the node to a standard orientation, performs the X-axis layout of node, and determines node-specific algorithm parameters. This class is intended to be constructed from within a GoWebScanConfig object |
| CGoWebScanConfigSensor | Represents a container for sensor-level parameters which are translated from user parameters set in GoWebScanSettings. This class contains properties describing the sensor orientation and contains a list of node configuration objects. In systems with vision sensors, this class represents a profile-vision sensor pair (sensors mounted together). This class is intended to be constructed from within a GoWebScanConfig object |
| CGoWebScanConfigSensorInfo | Represents information from each sensor in the system, collected and provided by the user application |
| CGoWebScanDataSource | Represents a type of sensor data |
| CGoWebScanDetectionStyle | Represents a style of triggering the start of an object when in detection mode. The start of an object is triggered by a minimum number of non-null profiles. The detection style can either be global, meaning the non-null profiles can be disconnected, or local, which imposes the condition than the non-null profiles are contiguous |
| CGoWebScanDetectionTask | Represents a task for identifying discrete objects within presence data, aggregating web tiles into complete objects, performing optional post-processing, and emitting the results. GoWebScanDetectionTask is only used in Detection Mode, and is the final stage before results are delivered back to the GoWebScanProcess object |
| CGoWebScanDetector | Represents an algorithm for detecting discrete objects (typically boards) within web tiles. The algorithm maintains an internal queue of web messages (tiles), and examines presence data one row at a time to determine if an object is currently detected. A simple state machine is used to determine when to emit objects |
| CGoWebScanDetectorParams | Represents parameters of the detection algorithm |
| CGoWebScanEdgeFilter | Represents an algorithm for filtering spikes and discontinuities along the edges of detected boards, and for removing the background from vision and tracheid board data |
| CGoWebScanEdgeFilterParams | Represents parameters of the edge filtering algorithm |
| CGoWebScanEncoderSim | Represents an encoder simulator which simulates forward motion by overriding encoder values in data messages with simulated values that are based on the message timestamp. Note that the encoder value is only overridden internally in GoWebScan. Message received directly from the sensor outside of GoWebScan will have the original encoder value |
| CGoWebScanGenericPoint16s | Represents a generic 16s point |
| CGoWebScanHistogram | Represents a histogram |
| CGoWebScanInputAttr | Represents the attributes of an input GoWebScan message object. These values are copied from the raw sensor message stamp. Refer to GoStamp in GoSdk for more details |
| CGoWebScanInputId | Represents an ID for types of input messages |
| CGoWebScanInterpolation | Represents a style of interpolation used during profile resampling |
| CGoWebScanLinearFunction | Represents coefficients of a linear fit. The fit can be applied as follows: y(x) = c1*x + c0 |
| CGoWebScanMode | Represents a scan mode |
| CGoWebScanMsgId | Represents an ID for GoWebScan message objects |
| CGoWebScanMsgStamp | Represents a message stamp containing properties of a message |
| CGoWebScanMsgType | Represents a type of GoWebScan message |
| CGoWebScanNodeTileId | Represents an ID for types of tile messages |
| CGoWebScanObstruction | Represents a user-defined obstruction to ignore a zone in X and Z in the input profile data. If there are any objects that regularly appear within the field of view of the sensors, such as chain runners, the zones in which those objects appear must be identified before the system will operate correctly in Calibration, Web, or Detection modes |
| CGoWebScanPipe | Represents a pipeline to run sequences of processing tasks concurrently. A GoWebScanPipe object coordinates executing GoWebScanPipeTask objects that have received a GoWebScanPipeMsg, and coordinates passing messages from task to task as processing steps execute. The pipe maintains a a priority queue of processing jobs, ordered by stage, and a thread pool to execute jobs. Higher priority jobs (higher stage number) are dispatched for processing before lower priority jobs |
| CGoWebScanPipeMsg | Base class for a msg that can be processed with a GoWebScanPipeTask and submitted to the GoWebScanPipe for scheduling. GoWebScanPipeMsg objects have a thread-safe reference count. GoWebScanPipeMsg objects are always allocated from GoWebScanPipeMsgPool objects with a default reference count of 1. When the reference count reaches zero, the message is recycled to the pool free list. This allows for efficient reuse of message memory |
| CGoWebScanPipeMsgPool | Represents a pool of GoWebScanPipeMsg objects. The pool allocates GoWebScanPipeMsg objects with a default reference count of 1. Messages are recycled to the pool's free list when the message's reference count reaches 0. A GoWebScanPipeMsgPool can only contain GoWebScanPipeMsg objects of the same GoWebScanMsgType |
| CGoWebScanPipeTask | Represents a processing task for the GoWebScanPipe class. Each GoWebScanPipeTask maintains a FIFO queue of messages to process (jobs), and submits jobs to the GoWebScanPipe for execution. Each GoWebScanPipeTask has at most one pending job submitted to the Pipe for execution at any given time. Multiple jobs associated with a single task cannot be run in parallel (tasks are assumed to have non-thread-safe state). Each GoWebScanPipeTask is associated with a particular stage (processing priority); multiple tasks can belong to the same stage. Messages are processed through an execution handler provided to the GoWebScanPipeTask |
| CGoWebScanPlaneTileId | Represents an ID for types of plane tile messages |
| CGoWebScanProcess | Represents a task for processing raw sensor data to produce system web tiles (Web mode) or detected objects (Detection mode). The GoWebScanProcess class accepts configuration via a GoWebScanConfig instance, and provides a simple API to initialize the processor, pass sensor data to the processor, retrieve completed system messages, and clear the processor. Internally, the processor delegates processing responsibilities to the Task classes in the Control group. A GoWebScanProcess object can optionally run processing tasks concurrently. Tasks are run when they receive messages, and messages are passed from task to task as processing steps execute. Task execution and message exchange are supported by the classes in the Pipe group |
| CGoWebScanProfileBoardMsg | Represents a message containing resampled and merged geometric data of a detected board for a given section |
| CGoWebScanProfileBoardMsgAttr | Represents the attributes of a profile board message |
| CGoWebScanProfileInputMsg | Represents a message containing a raw profile message from a sensor |
| CGoWebScanProfileMergeTask | Represents a task for merging profile tiles along X-axis from the cameras in a top or bottom group. Specifically, the task accepts a list of profile tiles that correspond to the same Y-position, and merges them into a single group-wide tile according to their respective source locations along the X-axis. Gaps and overlaps between adjacent tiles are processed according to configuration options. The task accepts GoWebScanTileListMsg objects and produces GoWebScanProfileTileMsg objects |
| CGoWebScanProfileSampleTask | Represents a task for resampling raw profile points from a single camera to generate profile tiles or presence tiles (for object detection). The task accepts GoWebScanProfileInputMsg objects and produces GoWebScanProfileTileMsg objects. When profile input messages are received, each input row is processed and then added to a GoWebScanProfileYResampler object. When the GoWebScanProfileYResampler completes a row, the row is passed back to the GoWebScanProfileSampleTask, processed, and added to an output tile |
| CGoWebScanProfileTileMsg | Represents a message containing a tile of X and Y resampled profile Z data. This message can be used to represent data from a single node in the system, data from a plane in the system (after merging resampled data from all nodes in a plane), or data from a detected board |
| CGoWebScanProfileWebMsg | Represents a message containing a tile of resampled and merged geometric data for a given section |
| CGoWebScanProfileWebMsgAttr | Represents the attributes of a profile web message |
| CGoWebScanProfileYResampler | Represents an algorithm for resampling raw sensor geometric data in the Y-axis and applying calibration Y-offsets. The algorithm maintains a circular row buffer that covers enough distance in the Y-axis to account for the difference between the minimum and maximum calibration Y-offsets. The Y-resampler considers two input rows at a time, and for each column, selects the nearest input to fill in cells up to the Y-location of the second input row |
| CGoWebScanProfileYResamplerParams | Represents parameters of the profile Y-resampler algorithm |
| CGoWebScanRecording | A class for storing sensor messages, which can be reused, or saved to and loaded from disk |
| CGoWebScanSection | Represents a section of output system data. This can be defined by the user to allow for routing data to separate client destinations |
| CGoWebScanSettings | Represents a container for user-configurable settings of the system. The class reads and writes the settings from/to an XML. These settings describe the configuration and orientation of the system, processing parameters, and desired outputs. The format of the XML is similar to the chroma+scan 3x00 station settings but is not directly equivalent as additional parameters have been added. However, for any fields that exist in both formats, the chroma+scan 3x00 values can be reused. The settings are divided into system-level settings (GoWebScanSettings), group settings (GoWebScanSettingsGroup), and sensor settings (GoWebScanSettingsSensor) |
| CGoWebScanSettingsGroup | Represents a container for user-configurable settings of a group within the system. Groups represent planes (top or bottom) |
| CGoWebScanSettingsSensor | 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) |
| CGoWebScanStage | Represents a stage in the processing pipeline |
| CGoWebScanSyncId | Represents an ID for types of sync list messages |
| CGoWebScanSyncTask | Represents a task to match profile, vision, and tracheid tiles by Y-position and monitor for time and distance coherency violations |
| CGoWebScanSystemMsg | Represents a container of GoWebScanPipeMsg tile messages of each tile type (profile, tracheid, and vision) and each system plane (top and bottom). This message is used to contain the X and Y-axis matched tile output of merging, and also of board detection (where the tiles represent a detected board) |
| CGoWebScanSystemPlane | Represents the top or bottom plane of the system |
| CGoWebScanTileCombiner | Represents an algorithm for matching tiles received from different sources. Each source is represented by a combiner lane, which has a FIFO queue of received tiles. When a tile is received, the combiner logic decides whether to emit a frame (set of tiles that have the same position) or wait. A time threshold and a distance threshold must both be exceeded to cause a coherency violation. The primary consideration is time - when a lane has not received a frame within the specified time window, something has gone wrong and the lane should be disabled as soon as possible. But if the system reverses (no new tiles), and then runs forward again (new tiles when it catches up), a false coherency violation can be generated if time is the only criteria. A small distance coherency threshold is used to prevent these false violations |
| CGoWebScanTileCombinerParams | Represents parameters of the tile combiner algorithm |
| CGoWebScanTileListMsg | Represents a list of tiles (of the same type and plane) that are matched by Y-position. This message type contains data after synchronization and prior to merging |
| CGoWebScanTracheidBoardMsg | Represents a message containing spot angle, scatter ratio, and area measurements from a detected board for a given section |
| CGoWebScanTracheidBoardMsgAttr | Represents the attributes of a tracheid board message |
| CGoWebScanTracheidInputMsg | Represents a message containing a raw tracheid message from a sensor |
| CGoWebScanTracheidMergeTask | Represents a task for merging tracheid tiles along X-axis from the cameras in a top or bottom group. Specifically, the task accepts a list of tracheid tiles that correspond to the same Y-position, and merges them into a single group-wide tile according to their respective source locations along the X-axis. Gaps and overlaps between adjacent tiles are processed according to configuration options. The task accepts GoWebScanTileListMsg objects and produces GoWebScanTracheidTileMsg objects |
| CGoWebScanTracheidPoint | Represents a tracheid point, which is the integer tracheid data for a spot with the X position (mils) taken from the matching profile data |
| CGoWebScanTracheidSampleTask | Represents a task for resampling raw tracheid points from a single camera to generate tracheid tiles. The task accepts GoWebScanTracheidInputMsg objects and produces GoWebScanTracheidTileMsg objects. When tracheid input messages are received, each input row is processed and then added to a GoWebScanProfileYResampler object (same class as used for profile resampling). When the GoWebScanProfileYResampler completes a row, the row is passed back to the GoWebScanTracheidSampleTask, processed, and added to an output tile |
| CGoWebScanTracheidTileMsg | Represents a message containing a tile of X and Y resampled tracheid angle, scatter, and area data. This message can be used to represent data from a single node in the system, data from a plane in the system (after merging resampled data from all nodes in a plane), or data from a detected board |
| CGoWebScanTracheidValue | Represents integer values of the spot tracheid data. These values are calculated from the spot shape |
| CGoWebScanTracheidWebMsg | Represents a message containing a tile of resampled and merged spot angle, scatter, and area data for a given section |
| CGoWebScanTracheidWebMsgAttr | Represents the attributes of a tracheid web message |
| CGoWebScanVisionBoardMsg | Represents a message containing resampled and merged geometric data of a detected board for a given section |
| CGoWebScanVisionBoardMsgAttr | Represents the attributes of a vision board message |
| CGoWebScanVisionCombiner | Represents an algorithm to retain vision and terrain messages until a matching set in Y is available. The combiner emits a frame when it has one vision image and all of the profiles that potentially overlap in Y with that vision image |
| CGoWebScanVisionCombinerParams | Represents parameters of the vision combiner algorithm |
| CGoWebScanVisionInputMsg | Represents a message containing a raw vision message from a sensor |
| CGoWebScanVisionMergeTask | Represents a task for merging vision tiles along X-axis from the cameras in a top or bottom group. Specifically, the task accepts a list of vision tiles that correspond to the same Y-position, and merges them into a single group-wide tile according to their respective source locations along the X-axis. Gaps and overlaps between adjacent tiles are processed according to configuration options. The task accepts GoWebScanTileListMsg objects and produces GoWebScanVisionTileMsg objects |
| CGoWebScanVisionResampler | Represents an algorithm for producing uniform-resolution resampled vision output given input terrain and demosaiced color vision tiles |
| CGoWebScanVisionResamplerParams | Represents parameters of the vision Y-resampler algorithm |
| CGoWebScanVisionSampleTask | Represents a task for resampling raw vision data to generate vision tiles for a single camera. The task uses vision input data and terrain tiles, which are profile tiles that are sampled at a resolution appropriate for use by the vision sampler, and which has all of its null values filled in with best-guess values. The task accepts GoWebScanVisionInputMsg objects and GoWebScanProfileTileMsg objects (for presence data) and produces GoWebScanVisionTileMsg objects |
| CGoWebScanVisionTileMsg | Represents a message containing a tile of X and Y resampled and demosaiced vision data. This message can be used to represent data from a single node in the system, data from a plane in the system (after merging resampled data from all nodes in a plane), or data from a detected board |
| CGoWebScanVisionWebMsg | Represents a message containing a tile of resampled and merged demosaiced vision data for a given section |
| CGoWebScanVisionWebMsgAttr | Represents the attributes of a vision web message |
| CGoWebScanWebTask | Represents a task for combining outputs from multiple Merge Tasks into a single GoWebScanSystemMsg object. No additional processing is performed. In Web Mode, this is the final stage before results are delivered back to the GoWebScanProcess object. In Detection mode, the output from GoWebScanWebTask is passed to GoWebScanDetectionTask for additional processing. The task accepts GoWebScanProfileTileMsg, GoWebScanVisionTileMsg, and GoWebScanTracheidTileMsg objects and outputs GoWebScanSystemMsg objects |
| CGoWebScanXOrientation | Represents the direction of the X orientation. In a left-to-right system (as viewed from the front), the zero reference is on the left and sensor indices (defined by the sensor "Name" property) increase left-to-right. In a right-to-left system, the zero reference is on the right and sensor indices increase right-to-left |
| CGoWebScanYOrientation | 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 |