Generic Control Protocol

Introduction

GenCP (Generic Control Protocol) is a GenICam standard protocol that the PC1628 Grablink Duo supports to control and communicate with a GenCP camera. It is a packet-based protocol to read and write registers in the register-based camera.

PC1628 Grablink Duo operates GenCP over the Camera Link serial communication port.

GenCP allows the integration of a device into GenICam, which simplifies and standardizes the process of configuring a Camera Link camera, by interfacing the registers of the camera to the GenICam GenApi module.

Configuration

To enable GenCP communication with the camera, the three following features of the Interface GenApi module can be configured:

DeviceControlProtocol: specifies the protocol used to control the remote device. Set DeviceControlProtocol=GenCP on the desired device using DeviceSelector.
GenCPSerialBaudRate: specifies the baud rate at which the PC1628 Grablink Duo initiates the GenCP serial communication. By default, GenCPSerialBaudRate=Detect which allows the grabber to automatically detect the current baud rate of the camera. This feature can also be manually set to a specific baud rate value, which must match the baud rate configuration of the camera. Note that mismatched baud rates may result in serial connection errors. Detect can be useful if you are unsure about the camera's baud rate configuration.
GenCPSerialBaudRateMaximize: specifies whether baud rate should be maximized after the GenCP communication has been established. By default, GenCPSerialBaudRateMaximize=True which will increase baud rate to the maximum supported by both the grabber and the camera (PC1628 Grablink Duo supports maximum 230400 Bd).

Updating device list

To apply the new DeviceControlProtocol setting and enable the GenCP device, the device list must be updated by calling the GenTL function IFUpdateDeviceList. Without a call to IFUpdateDeviceList, DeviceControlProtocol will not be updated for the device(s).

NOTE: The feature DeviceUpdateList of the interface module, which has the same function as IFUpdateDeviceList, can also be executed to update the device list.
NOTE: A call to IFUpdateDeviceList does not affect any instantiated Device modules. To update the DeviceControlProtocol for an already opened device module, close the module before calling IFUpdateDeviceList.
NOTE: To reset default configuration using the virtual remote device of PC1628 Grablink Duo, the same procedure can be followed but with DeviceControlProtocol=Default.

Initializing GenCP communication

After updating the device list, the GenCP device can be opened: the device starts initializing GenCP communication with the camera. Baud rate will be configured according to the features GenCPSerialBaudRate and GenCPSerialBaudRateMaximize of the interface.

Controlling the GenCP device

In the Device module, the category GenCP contains the following features:

GenCPConnectionStatus: shows the current status of the GenCP connection to the camera. If GenCPConnectionStatus=NotOK, the command GenCPSerialBaudRateDetect may be executed to try recovering baud rate and serial connection to the camera.
GenCPSerialBaudRate: baud rate used to communicate with the GenCP camera.
GenCPSerialBaudRateDetect: command to detect baud rate of the GenCP camera. This command may be useful to recover baud rate in case of a connection loss with the camera.
GenCPSerialBaudRateMaximize: command to increase baud rate to the maximum supported by both grabber and camera.
GenCPMaxPacketSize: Maximum packet size used to communicate with the GenCP camera. If a GenCP packet command failed with the maximum packet size, the grabber may attempt to resend the failed command with a decreased GenCPMaxPacketSize.