GigE Vision Server

<< Click to Display Table of Contents >>

Navigation:  GigE Vision Server > Theory of Operation >

GigE Vision Server

 

A CVB GEV Server instance acts as one GEV camera using one NIC. One instance can send one image stream.
Meaning that one server can acquire data from one image source and send it via the network.

 

Following are sections explaining several aspects of the CVB GEV Server from setup to acquisition.
Adding or modifying GenICam™ GenApi Features is explained in the chapter GenICam™ Features.

 

1.Before anything can be done a CVB GEV Server instance has to be created with one of the CreateGevServer functions or the GevServer class constructor of the .NET interface.
By default the server determines the fastest available transfer driver (filter or socket driver).
No IP address is assigned to the server at this time and thus the server is not running yet.

2.After creating a CVB GEV Server instance the server is in the configuration phase.
In this phase the image source can be set, the acquisition mode can be changed and/or GenICam™ Features can be added.

3.After the configuration is finished the server has to be started.
Now the CVB GEV Server library dynamically creates a GenICam™ XML description for the current instance.
After that is done the server goes online in an idle state where it waits for a client to connect.

 

On the client side the CVB GEV Server will identify itself as the STEMMERIMAGING CVB GEV Server.
The Device ID format is as follows:

S{dongle-number}:{IP address}

(The term in curly brackets is replaced by the value as a hexadecimal number.)

For example for a server on 192.168.1.128/CVB dongle number 999 the Device ID is: “S3E7:C0A80180”

 

Normally GigE Vision™ devices use the MAC address as their Device ID to uniquely identify themselves.
This is not possible on PC based systems as there can be multiple IP address assigned to one network interface.
Thus in this case different CVB GEV Server instances would use the same ID which would lead to errors in opening/managing the devices.
Therefore the device ID is a combination of the used dongle number (unique for the system except development/test systems) and the used IP address.

 

After starting the server the configuration can not be changed until the server is stopped again.
This means that the image dimensions (width, height and color format) and available GenICam™ Features are fixed.
What that means for the GenICam™ Features is explained in detail in the GenICam™ Features chapter.

 

The server which is now in the Open Connection state is waiting for a connection.
As soon as a client connects the server goes to the Connected state. There is always only one controlling client to which the acquisition control is transferred to.
As long as the connection exists no other client can connect to the server. Normally that means that other clients do not have read or write access.
Depending on the access mode (GEV control channel privilege – CCP) other clients may have read access to the server which is very helpful for multicast scenarios.
But there is always only one controlling client which has write access.

 

When the client starts the acquisition the server state changes to Acquiring.
Depending on the acquisition mode the server then delivers images via the GEV stream to the client. This is done until the acquisition is stopped.
If a client disconnects while an acquisition is running, first the acquisition state is revoked and then the connected state.

 
A server can not be in acquisition state while being disconnected.

 

As the acquisition and connection control is transferred to the client from the point on where the server is started, the server application is notified about the state changes by callback functions (C interface) or events (.NET interface).

 

Driver Type

The transfer driver is referred to as the driver type in the CVB GEV Server interface.
It defines which driver is used to stream images to the client.
The two possibilities are:

Filter Driver

This is the default driver to be used. It yields the best performance and lower CPU load for transfers to a remote PC.

Socket Driver

If you want to use the CVB GEV Server on the same PC where your client application is running you can not use the Filter Driver, because the operating system redirects the packets in the IP stack before they reach the Filter Driver.
To be able to acquire images, use the Socket Driver both in the server and the client application.

 

If installed, the CVB GEV Server uses the Filter Driver by default. If not, it automatically falls back to the Socket Driver.
The driver type is specified when the server instance is created and can not be changed afterwards.

 

Acquisition Mode

Depending on the image source provided and the level of control which is needed a different acquisition mode is used.
The acquisition mode defines whether the CVB GEV Server library or the server application handles the image acquisition.
 

Automatic

In this acquisition mode the server application needs to do no extra work. The acquisition/grab is handled completely by the CVB GEV Server library.
This mode is only available (and is set automatically) if an image source with any grabber interface is set to the server.

In this mode a separate grab thread is started as soon as the client starts the acquisition.
On each newly acquired image a callback (C interface)/event (.NET interface) is fired which enables the application to do image preprocessing before the image is sent.
All kinds of preprocessing can be done as long as the image dimensions (width, height and color format) are preserved.

Only CVB images from the image source set in the configuration phase can be sent this way, but in place preprocessing can be done as described above.
The Send functions do not work in this mode.

 

Manual

When this acquisition mode is set the server application decides when an image is sent to the client.
This mode is available for all image objects set to the server. It is set automatically if an image source without a grab interface is set to the server.

This mode is useful if the server needs to control the timing for sending images or if images from multiple sources are to be streamed over one CVB GEV Server connection.
The images sent via the connection need to be compatible with the image set to the server in the configuration phase.
Compatible means that they have the same dimensions (width, height and color format) as the configured image.

 

None

This acquisition mode is set when the server instance is created and no image is set.
Even though it is possible to start the server with no image assigned this mode is not GigE Vision™ compliant.
A compliant device needs to have at least one stream channel. Thus many compliant clients will refuse to communicate with such a server instance.

If a server is started in this mode only the connection related features are available, but no streaming related features.
Of course any other GenICam™ Feature can be added and used to create a simple remote control application.

 

Unicast and Multicast

Most setups will use a unicast connection between one client PC which acquires images and one server PC which sends images.
The server gets its images either from disk or from another source like a IEEE 1394 camera.

 

Topology_Unicast

 

In this scenario there is a one-to-one relationship between server and client.
The client controls the server and receives the image data.
Normally the Control Channel Privileges in this topology are set to exclusive, which means that only the controlling client has read and write access to the server.

 

With GigE Vision™ there is always only one controlling client.
That means that even in a multicast scenario there is only one client PC which holds the control connection.
For the next paragraphs a basic knowledge of multicast technologies is needed.

 

Topology_Multicast

 

In the graphic we have one controlling client which controls the server and two other clients, called display clients, which only receive the data.
Each client has at least to set-up the image acquisition logic and join a multicast group.
The group handling and transfer is handled by a multicast capable switch in the network.
The clients join a multicast group to receive image data and the controlling client sets the multicast group IP address in the server.

Normally the display clients also have a read-only control connection to the server to be able to read e.g. the image format.
Therefore the Control Channel Privilege is set to “Control” which enables the controlling client to have full read/write access and other clients to have read-only access.
The CVB GenICam.vin supports from these multicast scenarios the read-only control flavor.

 

For additional information on multicast scenarios regarding recommended hardware and hardware/software setup please contact your local Common Vision Blox distributor.