GoWebScan API
All Types
All library types:
 CGoWebScanCalRepresents 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
 CGoWebScanCalActivityRepresents a stage or activity in the system calibration processing pipeline
 CGoWebScanCalCollectorRepresents 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
 CGoWebScanCalCombinerRepresents 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)
 CGoWebScanCalCombinerParamsRepresents parameters of the calibration combiner algorithm
 CGoWebScanCalDetectorRepresents 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
 CGoWebScanCalDetectorParamsRepresents parameters of the calibration detector algorithm
 CGoWebScanCalDetectorStateRepresents states of calibration bar detection state machine
 CGoWebScanCalInputRepresents 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
 CGoWebScanCalInputItemRepresents a raw sensor message used for calibration collection and processing
 CGoWebScanCalInputNodeRepresents 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
 CGoWebScanCalInputStampRepresents a stamp containing properties of the input message
 CGoWebScanCalInputTileRepresents a container for raw sensor messages from a single node used during calibration data collection
 CGoWebScanCalInputTileSetRepresents 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
 CGoWebScanCalMsgRepresents 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
 CGoWebScanCalMsgAttrRepresents the attributes of a calibration message
 CGoWebScanCalMsgIssueRepresents an issue that occurred during calibration processing
 CGoWebScanCalNodeRepresents a container for node-level system calibration data. Refer to GoWebScanCal for a description of system calibration
 CGoWebScanCalNodeStatusRepresents a type of error or warning that occurred during system calibration processing of a node
 CGoWebScanCalProcessorRepresents 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
 CGoWebScanCalProcessorNodeRepresents 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
 CGoWebScanCalStatusRepresents the status of calibration processing for the system
 CGoWebScanCalTargetRepresents 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
 CGoWebScanConfigRepresents 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
 CGoWebScanConfigGroupRepresents 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
 CGoWebScanConfigNodeRepresents 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
 CGoWebScanConfigSensorRepresents 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
 CGoWebScanConfigSensorInfoRepresents information from each sensor in the system, collected and provided by the user application
 CGoWebScanDataSourceRepresents a type of sensor data
 CGoWebScanDetectionStyleRepresents 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
 CGoWebScanDetectionTaskRepresents 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
 CGoWebScanDetectorRepresents 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
 CGoWebScanDetectorParamsRepresents parameters of the detection algorithm
 CGoWebScanEdgeFilterRepresents an algorithm for filtering spikes and discontinuities along the edges of detected boards, and for removing the background from vision and tracheid board data
 CGoWebScanEdgeFilterParamsRepresents parameters of the edge filtering algorithm
 CGoWebScanEncoderSimRepresents 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
 CGoWebScanGenericPoint16sRepresents a generic 16s point
 CGoWebScanHistogramRepresents a histogram
 CGoWebScanInputAttrRepresents 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
 CGoWebScanInputIdRepresents an ID for types of input messages
 CGoWebScanInterpolationRepresents a style of interpolation used during profile resampling
 CGoWebScanLinearFunctionRepresents coefficients of a linear fit. The fit can be applied as follows: y(x) = c1*x + c0
 CGoWebScanModeRepresents a scan mode
 CGoWebScanMsgIdRepresents an ID for GoWebScan message objects
 CGoWebScanMsgStampRepresents a message stamp containing properties of a message
 CGoWebScanMsgTypeRepresents a type of GoWebScan message
 CGoWebScanNodeTileIdRepresents an ID for types of tile messages
 CGoWebScanObstructionRepresents 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
 CGoWebScanPipeRepresents 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
 CGoWebScanPipeMsgBase 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
 CGoWebScanPipeMsgPoolRepresents 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
 CGoWebScanPipeTaskRepresents 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
 CGoWebScanPlaneTileIdRepresents an ID for types of plane tile messages
 CGoWebScanProcessRepresents 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
 CGoWebScanProfileBoardMsgRepresents a message containing resampled and merged geometric data of a detected board for a given section
 CGoWebScanProfileBoardMsgAttrRepresents the attributes of a profile board message
 CGoWebScanProfileInputMsgRepresents a message containing a raw profile message from a sensor
 CGoWebScanProfileMergeTaskRepresents 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
 CGoWebScanProfileSampleTaskRepresents 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
 CGoWebScanProfileTileMsgRepresents 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
 CGoWebScanProfileWebMsgRepresents a message containing a tile of resampled and merged geometric data for a given section
 CGoWebScanProfileWebMsgAttrRepresents the attributes of a profile web message
 CGoWebScanProfileYResamplerRepresents 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
 CGoWebScanProfileYResamplerParamsRepresents parameters of the profile Y-resampler algorithm
 CGoWebScanRecordingA class for storing sensor messages, which can be reused, or saved to and loaded from disk
 CGoWebScanSectionRepresents a section of output system data. This can be defined by the user to allow for routing data to separate client destinations
 CGoWebScanSettingsRepresents 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)
 CGoWebScanSettingsGroupRepresents a container for user-configurable settings of a group within the system. Groups represent planes (top or bottom)
 CGoWebScanSettingsSensorRepresents 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)
 CGoWebScanStageRepresents a stage in the processing pipeline
 CGoWebScanSyncIdRepresents an ID for types of sync list messages
 CGoWebScanSyncTaskRepresents a task to match profile, vision, and tracheid tiles by Y-position and monitor for time and distance coherency violations
 CGoWebScanSystemMsgRepresents 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)
 CGoWebScanSystemPlaneRepresents the top or bottom plane of the system
 CGoWebScanTileCombinerRepresents 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
 CGoWebScanTileCombinerParamsRepresents parameters of the tile combiner algorithm
 CGoWebScanTileListMsgRepresents 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
 CGoWebScanTracheidBoardMsgRepresents a message containing spot angle, scatter ratio, and area measurements from a detected board for a given section
 CGoWebScanTracheidBoardMsgAttrRepresents the attributes of a tracheid board message
 CGoWebScanTracheidInputMsgRepresents a message containing a raw tracheid message from a sensor
 CGoWebScanTracheidMergeTaskRepresents 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
 CGoWebScanTracheidPointRepresents a tracheid point, which is the integer tracheid data for a spot with the X position (mils) taken from the matching profile data
 CGoWebScanTracheidSampleTaskRepresents 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
 CGoWebScanTracheidTileMsgRepresents 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
 CGoWebScanTracheidValueRepresents integer values of the spot tracheid data. These values are calculated from the spot shape
 CGoWebScanTracheidWebMsgRepresents a message containing a tile of resampled and merged spot angle, scatter, and area data for a given section
 CGoWebScanTracheidWebMsgAttrRepresents the attributes of a tracheid web message
 CGoWebScanVisionBoardMsgRepresents a message containing resampled and merged geometric data of a detected board for a given section
 CGoWebScanVisionBoardMsgAttrRepresents the attributes of a vision board message
 CGoWebScanVisionCombinerRepresents 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
 CGoWebScanVisionCombinerParamsRepresents parameters of the vision combiner algorithm
 CGoWebScanVisionInputMsgRepresents a message containing a raw vision message from a sensor
 CGoWebScanVisionMergeTaskRepresents 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
 CGoWebScanVisionResamplerRepresents an algorithm for producing uniform-resolution resampled vision output given input terrain and demosaiced color vision tiles
 CGoWebScanVisionResamplerParamsRepresents parameters of the vision Y-resampler algorithm
 CGoWebScanVisionSampleTaskRepresents 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
 CGoWebScanVisionTileMsgRepresents 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
 CGoWebScanVisionWebMsgRepresents a message containing a tile of resampled and merged demosaiced vision data for a given section
 CGoWebScanVisionWebMsgAttrRepresents the attributes of a vision web message
 CGoWebScanWebTaskRepresents 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
 CGoWebScanXOrientationRepresents 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
 CGoWebScanYOrientationRepresents 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