A GigE Vision device (transmitter) transmits blocks of data (such as images) over a network using the GigE Vision Streaming Protocol (GVSP).
The eBUS SDK provides a means of receiving these packets as they come over the network, and assembling them into an area of memory that is accessible to the calling application.
The software component that receives and assembles streaming packets into a usable block of memory is commonly referred to as a data receiver.
A filter driver (the eBUS Universal Pro) is bundled with the eBUS SDK and can optionally be applied to a network adapter to maximize streaming performance (bypassing the standard network stack to achieve lower CPU usage and better data throughput).
Depending on whether a filter driver is applied or not, the data receiver may exist in kernel space or user space.
PvStreamGEV provides access to a PvGenParameterArray containing all of the data receiver properties.
The process of receiving data from a GigE Vision transmitter involves queuing buffers into the data receiver, which ensures that buffers are always available for the incoming data. A PvStreamGEV object is normally used with a PvPipeline object, which helps manage the process of allocating and pushing buffers into the data receiver as needed.
Opening a PvPipeline object allocates a pool of available buffers (configurable by calling PvPipeline::SetBufferCount and PvPipeline::SetBufferSize) and starts a thread that continually feeds buffers into the data receiver. Each time a new block (such as an image or raw data) becomes available, its associated buffer is placed in a queue of available buffers that can be retrieved by calling PvPipeline::RetrieveNextBuffer.
If the calling application cannot retrieve buffers at the rate that data is arriving, buffers are silently dropped. To obtain a count of dropped buffers, refer to the PipelineBlocksDropped property, accessible from the stream.
To control a GigE Vision device (for example, to tell it when to transmit data and where to transmit it to), the eBUS SDK provides a class called PvDeviceGEV. For a complete working sample that connects to a GigE Vision device, opens a stream, and tells the device when and where to begin streaming, see the PvPipelineSample sample. You can access the sample code from the Windows Start menu, under Pleora Technologies Inc.
Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com