Software Development Kit (SDK) - GigE Extension


.

Table of Content

1
Introduction
2
Interface Documentation
2.1
Initialization / Freeing
2.1.1
Gbe_initBoard
2.1.2
Gbe_freeBoard
2.2
Network Scan
2.2.1
Gbe_scanNetwork
2.3
Network Information
2.3.1
Gbe_getCameraCount
2.3.2
Gbe_getFirstCamera
2.3.3
Gbe_getCameraByMac
2.3.4
Gbe_getCameraByUserName
2.3.5
Gbe_freeCamera
2.3.6
Gbe_getCameraInfo
2.3.7
Gbe_freeCameraInfo
2.4
Camera Connection
2.4.1
Gbe_connectCamera
2.4.2
Gbe_disconnectCamera
2.4.3
Gbe_switchCameraConnection
2.5
Parameter Handling
2.5.1
Gbe_setIntegerValue
2.5.2
Gbe_getIntegerValue
2.5.3
Gbe_setBooleanValue
2.5.4
Gbe_getBooleanVaule
2.5.5
Gbe_setFloatValue
2.5.6
Gbe_getFloatValue
2.5.7
Gbe_setStringValue
2.5.8
Gbe_getStringValue
2.5.9
Gbe_setEnumerationValue
2.5.10
Gbe_getEnumerationValue
2.5.11
Gbe_executeCommand
2.5.12
Gbe_isCommandDone
2.5.13
Gbe_enableChecks
2.5.14
Gbe_lockTLParams
2.5.15
Gbe_unlockTLParams
2.5.16
Gbe_invalidateCache
2.6
Acquisition
2.6.1
Gbe_startAcquisition
2.6.2
Gbe_stopAcquisition
2.7
Event System
2.7.1
Event Notification
2.7.2
GigE Vision Events
2.7.3
Events generated by the SiliconSoftware Runtime
2.8
Sending Action Commands via Firmware
2.9
Helper Functions
2.9.1
Gbe_getErrorDescription
3
Compiler Settings
3.1
Windows
Runtime 5
December 2016


New in runtime 5.4.3: Sending GigE Vision Action Commands via Firmware (see section 2.8)

Supported Frame Grabbers:

GigE Vision:

  • microEnable 4 AQ4-GE / GPoE
  • microEnable 4 VQ4-GE / GPoE

Supported Operating Systems:

Windows:

  • Windows Server 2012
  • Windows Server 2010
  • Windows Server 2008
  • Windows® 8 (32bit/64bit)
  • Windows® 7 (32bit/64bit)
  • Windows® Vista (32bit/64bit)
  • Windows® XP (32bit/64bit)

Linux:

  • Linux 32bit
  • Linux 64bit



1 Introduction

By the help of our new GigabitEthernet interface, cameras that have been connected to the microEnable IV-AQ4-GE / VQ4-GE / -GigE can be detected and it can be put into operation. The interface is GigE and GenAPI compatible. The GenAPI parameter can directly be accessed by our API which is described in the following.

For basic functions that can be used both for our CL frame grabber and our GigE frame grabber please have a look at our global SDK Manual.




2 Interface Documentation

2.1 Initialization / Freeing

Functional Description

Gbe_initBoard() establishes a connection to a microEnable IV frame grabber .

Gbe_freeBoard() closes the connection to a microEnable IV frame grabber.




2.1.1 Gbe_initBoard

Syntax

int Gbe_initBoard(int board, int init_flag, BoardHandle** board_handle_ptr)

Parameters

Parameter

Type

Description

board

int

Logical board number.

init_flag

int

Should be 0.

board_handle_ptr BoardHandle** Pointer reference to BoardHandle.

Return Values

Return Value

Description

0

Frame grabber has been initialized successfully.

<0

Gbe error code




2.1.2 Gbe_freeBoard

Syntax

void Gbe_freeBoard(BoardHandle* board_handle)

Parameters

Parameter

Type

Description

board_handle BoardHandle* BoardHandle.




2.2 Network Scan

Functional Description

Gbe_scanNetwork() accomplishes a network scan. Though, GigE Vision compatible cameras is searched for. This model either scans each port (-1) or a special port (0 - 3) which can be selected.




2.2.1 Gbe_scanNetwork

Syntax

int Gbe_scanNetwork(BoardHandle* board_handle, int port, int discovery_timeout)

Parameters

Parameter

Type

Description

board_handle BoardHandle* BoardHandle.
port int Port which shall be scanned:

-1 if all ports shall be scanned,
0 - 3 for a special port to be scanned.

discovery_timeout int Timeout for camera detection. The value is in ms.

Return Values

Return Value

Description

0

Network has been scanned successfully.

<0

Gbe error code




2.3 Network Information

Functional Description

Gbe_getCameraCount() determines the number of detected GigE cameras per port.

Gbe_getFirstCamera() fetches a handle to the first detected camera.

Gbe_getCameraByMac() fetches a handle to a camera with a defenite MAC address.

Gbe_getCameraByUserName() fetches a handle to a camera with a name given by the user.

Gbe_freeCamera() is freeing a camera handle.

Gbe_getCameraInfo() reads information about detected cameras.

Gbe_freeCameraInfo() is freeing the information structure.




2.3.1 Gbe_getCameraCount

Syntax

int Gbe_getCameraCount(BoardHandle* board_handle, int port)

Parameters

Parameter

Type

Description

board_handle BoardHandle* BoardHandle.
port int Connected port (0 - 3).

Return Values

Return Value

Description

> 0 Number of camera(s) that have been detected.

0

Frame grabber has been initialized successfully.

<0

Gbe error code




2.3.2 Gbe_getFirstCamera

Syntax

int Gbe_getFirstCamera(BoardHandle* board_handle, int port, CameraHandle** camera_handle_ptr)

Parameters

Parameter

Type

Description

board_handle BoardHandle* BoardHandle.
port int Connected port (0 - 3).
camera_handle_ptr CameraHandle** Pointer to camera handle.

Return Values

Return Value

Description

0

The first camera has been fetched successfully.

<0

Gbe error code




2.3.3 Gbe_getCameraByMac

Syntax

int Gbe_getCameraByMac(BoardHandle* board_handle, int port, uint8_t mac[6], CameraHandle** camera_handle_ptr)

Parameters

Parameter

Type

Description

board_handle BoardHandle* BoardHandle.
port int Port which shall be scanned.
mac uint8_t* MAC address of the camera.
camera_handle_ptr CameraHandle** Pointer to camera handle.

Return Values

Return Value

Description

0

The camera has been fetched successfully.

<0

Gbe error code




2.3.4 Gbe_getCameraByUserName

Syntax

int Gbe_getCameraByMac(BoardHandle* board_handle, int port, char* user_name, CameraHandle** camera_handle_ptr)

Parameters

Parameter

Type

Description

board_handle BoardHandle* BoardHandle.
port int Port which shall be scanned.
user_name char* Name of the camera, settable by the user.
camera_handle_ptr CameraHandle** Pointer to camera handle.

Return Values

Return Value

Description

0

The camera has been fetched successfully.

<0

Gbe error code




2.3.5 Gbe_freeCamera

Syntax

int Gbe_freeCamera(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

Return Values

Return Value

Description

0

Freeing the camera has been succeded.

<0

Gbe error code




2.3.6 Gbe_getCameraInfo

Syntax

CameraInfo* Gbe_getCameraInfo(CameraHandle* camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

struct CameraInfo{
char manufactor_name[32];
char model_name[32];
char device_version[32];
char manufacturer_info[48];
char serial_number[16];
char user_name[16];
uint8_t mac[6];
};

The camera information structure contains information that can be read out of a GigE Vision compatible camera:

Parameter

Type

Description

manufactor_name char* The name of the camera manufacturer.
model_name char* The name of the camera model.
device_version char* Version number of the camera model.
manufacturer_info char* Information of the manufacturer.
serial_number char* Serial number of the camera.
user_name char* Name of the camera, settable by the user.
mac uint8_t* MAC address of the camera.

Return Values

Return Value

Description

0

Error getting camera info.

!=0

Pointer to camera info structure




2.3.7 Gbe_freeCameraInfo

Syntax

void Gbe_freeCameraInfo(CameraInfo* camera_info)

Parameters

Parameter

Type

Description

camera_info CameraInfo* Release of camera information structure.




2.4 Camera Connection

Functional Description

Gbe_connectCamera() connects a camera that has been found within network with the port which it has been detected on. At the moment only one camera can be connected with a port. After establishing the connection, the data of the camera's XML file will be read and the user can access to the camera.

Gbe_disconnectCamera() closes the connection between camera and port.

Gbe_switchCameraConnection() enables the correlation modification of a camera to a card or a port during an existing connection. Though, the camera can be assigned to a new card and / or to a new port.




2.4.1 Gbe_connectCamera

Syntax

int Gbe_connectCamera(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

Return Values

Return Value

Description

0

The camera has been connected successfully.

<0

Gbe error code




2.4.2 Gbe_disconnectCamera

Syntax

int Gbe_disconnectCamera(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

Return Values

Return Value

Description

0

The camera has been disconnected successfully.

<0

Gbe error code




2.4.3 Gbe_switchCameraConnection

Syntax

int Gbe_switchCameraConnection(CameraHandle *camera_handle, BoardHandle* board_handle, int port)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.
board_handle BoardHandle* BoardHandle.
port int Connected port (0 - 3).

Return Values

Return Value

Description

0

The camera connection has been switched successfully.

<0

Gbe error code




2.5 Parameter Handling

Functional Description

Gbe_setIntegerValue() writes an integer value to the camera.

Gbe_getIntegerValue() reats an integer value from the camera.

Gbe_setBooleanValue() writes a boolean value to the camera.

Gbe_getBooleanValue() reats a boolean value from the camera.

Gbe_setFloatValue() writes a floating value (double) to the camera.

Gbe_getFloatValue() reats a floating value (double) from the camera.

Gbe_setStringValue() writes a String to the camera.

Gbe_getStringValue() reats a String from the camera.

Gbe_setEnumerationValue() writes an enumeration value to the camera.

Gbe_getEnumerationValue() reats an enumeration value from the camera.

Gbe_executeCommand() executes a command directly on the camera.

Gbe_isCommandDone() checks whether the command has been done.

Gbe_enableChecks() is an expert fuction! It switches the Genicam Check on / off, if the function is available.

Gbe_lockTLParams() is an expert fuction! Locks the transport layer parameters.

Gbe_unlockTLParams() is an expert fuction! Unlocks the transport layer parameters.

Gbe_invalidateCache() is an expert fuction!




2.5.1 Gbe_setIntegerValue

Syntax

int Gbe_setIntegerValue(CameraHandle *camera_handle, const char* name, int64_t value)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.
name const char* Name of the register.
value int64_t Integer value that shall be written.

Return Values

Return Value

Description

0

The integer value has been set successfully.

<0

Gbe error code




2.5.2 Gbe_getIntegerValue

Syntax

int Gbe_getIntegerValue(CameraHandle *camera_handle, const char* name, int64_t* value_ptr)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.
name const char* Name of the register.
value_ptr int64_t* Integer value that shall be read.

Return Values

Return Value

Description

0

The integer value has been gotten successfully.

<0

Gbe error code




2.5.3 Gbe_setBooleanValue

Syntax

int Gbe_setBooleanValue(CameraHandle *camera_handle, const char* name, unsigned int value)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.
name const char* Name of the register.
value unsigned int Boolean value that has to be written.

Return Values

Return Value

Description

0

The boolean value has been set successfully.

<0

Gbe error code




2.5.4 Gbe_getBooleanValue

Syntax

int Gbe_getBooleanValue(CameraHandle *camera_handle, const char* name, unsigned int* value_ptr)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.
name const char* Name of the register.
value_ptr unsigned int* Boolean value that has to be read.

Return Values

Return Value

Description

0

The boolean value has been gotten successfully.

<0

Gbe error code




2.5.5 Gbe_setFloatValue

Syntax

int Gbe_setFloatValue(CameraHandle *camera_handle, const har* name, double value)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.
name const char* Name of the register.
value double Double value that has to be written.

Return Values

Return Value

Description

0

The double value has been set successfully.

<0

Gbe error code




2.5.6 Gbe_getFloatValue

Syntax

int Gbe_getFloatValue(CameraHandle *camera_handle, char* name, double* value_ptr)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.
name const char* Name of the register.
value_ptr double* Double value that has to be read.

Return Values

Return Value

Description

0

The double value has been gotten successfully.

<0

Gbe error code




2.5.7 Gbe_setStringValue

Syntax

int Gbe_setStringValue(CameraHandle *camera_handle, const char* name, const char* value)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.
name const char* Name of the register.
value const char* String that has to be written.

Return Values

Return Value

Description

0

The String has been set successfully.

<0

Gbe error code




2.5.8 Gbe_getStringValue

Syntax

int Gbe_getStringValue(CameraHandle *camera_handle, char* name, const char** value_ptr)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.
name const char* Name of the register.
value_ptr const char** Reference to the pointer of the String that has to be read.

Return Values

Return Value

Description

0

The String has been gotten successfully.

<0

Gbe error code




2.5.9 Gbe_setEnumerationValue

Syntax

int Gbe_setEnumerationValue(CameraHandle *camera_handle, const char* name, const char* value)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.
name const char* Name of the register.
value const char* Enumeration value that has to be written.

Return Values

Return Value

Description

0

The enumeration value has been set successfully.

<0

Gbe error code




2.5.10 Gbe_getEnumerationValue

Syntax

int Gbe_getEnumerationValue(CameraHandle *camera_handle, const char* name, const char** value_ptr)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.
name const char* Name of the register.
value_ptr const char* Pointer to the enumeration value that has to be read.

Return Values

Return Value

Description

0

The enumeration value has been gotten successfully.

<0

Gbe error code




2.5.11 Gbe_executeCommand

Syntax

int Gbe_executeCommand(CameraHandle *camera_handle, const char* name)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.
name const char* Name of the register.

Return Values

Return Value

Description

0

The command has successfully been sent directly to the camera.

<0

Gbe error code




2.5.12 Gbe_isCommandDone

Syntax

int Gbe_isCommandDone(CameraHandle *camera_handle, const char* name)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.
name const char* Name of the register.

Return Values

Return Value

Description

0

The command has successfully been done.

!=0

The command is still running




2.5.13 Gbe_enableChecks - EXPERT FUNCTION!

Syntax

int Gbe_enableChecks(CameraHandle* camera_handle, unsigned int flag)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.
flag unsigned int 0: Disables all checks.
1: Enables all checks.

Return Values

Return Value

Description

0

The checks for parameter locking have been enabled / disabled successfully.

<0

Gbe error code




2.5.14 Gbe_lockTLParams - EXPERT FUNCTION!

Syntax

int Gbe_lockTLParams(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

Return Values

Return Value

Description

0

The transport layer parameters have been locked successfully.

<0

Gbe error code




2.5.15 Gbe_unlockTLParams - EXPERT FUNCTION!

Syntax

int Gbe_unlockTLParams(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Pointer to camera handle.

Return Values

Return Value

Description

0

The transport layer parameters have been unlocked successfully.

<0

Gbe error code




2.5.16 Gbe_invalidateCache - EXPERT FUNCTION!

Syntax

int Gbe_invalidateCache(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

Return Values

Return Value

Description

0

Cahe successfully invalidated.

<0

Gbe error code




2.6 Acquisition

Functional Description

Gbe_startAcquisition() starts the grabbing within the camera.

Gbe_stopAcquisition() stops the grabbing of the camera.




2.6.1 Gbe_startAcquisition

Syntax

int Gbe_startAcquisition(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

Return Values

Return Value

Description

0

The acquisition has been started successfully.

<0

Gbe error code




2.6.2 Gbe_stopAcquisition

Syntax

int Gbe_stopAcquisition(CameraHandle *camera_handle)

Parameters

Parameter

Type

Description

camera_handle CameraHandle* Camera handle.

Return Values

Return Value

Description

0

The acquisition has been stopped successfully.

<0

Gbe error code




2.7 Event System

2.7.1 Event Notification

The SiliconSoftware frame grabber SDK extension for GigE Vision allows an application to react asynchronously on certain events created by the GigE Vision subsystem. These events are either

- created by GigE Vision cameras according to the GigE Vision protocol specification or

- created by the Silicon Software Runtime components itself.

Therefore a mechanism of callback functions is implemented. This mechanism works in addition to the callback / event mechanism defined at the general SiliconSoftware frame grabber SDK (“fglib”, for details see the frame grabber SDK manual).

Event notification is available at 2 different levels:

- board events (camera events, related to the frame grabber),

- camera events (events related to an attached camera).

The following table shows the available event notifications:

Event Type Level Remarks
GBE_EVENT_GEVEVENT Camera An event triggered by the camera and sent by using the GigE Vision protocol.
GBE_EVENT_CAMERA_CONECTION_LOST Camera An already attached camera disappeared
GBE_EVENT_DISCOVERY_CHANGE Board A camera has been detected by the discovery process, e.g. a camera is connected to a frame grabber port


Depending of the type of the event, additional data is delivered, when the notification is done, e.g.

- the camera port, when a camera has been detected
- the camera handle, when a camera got lost
- payload data from camera, in case of GigE Vision events.

Therefore event subsystem of the GBE library consists of 2 functions

- Gbe_registerBoardEventCallback
- Gbe_registerCameraEventCallback,

including the corresponding declarations of callback functions types.

The callback handlers will be informed about the type of event and additional event data if available by declaring a data structure GbeEventInfo_Struct. The user’s context out of the registration of callback handlers might be passed by additional user data pointer, which can be passed when calling the according Gbe_registerXXXXEventCallback functions.

Example:

// callback handler for camera events

int CameraEventHandler)(struct BoardHandle *boardHandle,

const GbeEventInfo *const eventInfo,

const void *userData)

{

(myClass*) userData ->data; // Access some data….

}

// method to register the event handler

// passes a pointer to the object towards the SDK, which can

// be accessed at the callback function

Void myClass::DoRegisterCallback()

{

// Pass the context to the callback handler (this-pointer)

Gbe_registerCameraEventCallback(&CameraEventHandler, this);

}


Remarks:

Details of the usage can be seen at a specific SDK example for GbE.




2.7.2 GigE Vision Camera Events

This chapter describes the usage and retrieval of events, sent by a GigE Vision camera according to the GigE Vision standard specification. For additional details see also the GigE Vision standard.

Which events of this type are available within the Silicon Software SDK correlates directly with the functionality of a specific, connected GigE Vision camera. In general, the GigE Vision events can be read by using the camera’s GenICam files, for example by using the SiliconSoftware GenICam Explorer tool. Activation and deactivation of the events can be done by accessing the according GenICam parameters of the cameras. Therefore the parameter interface of the SiliconSoftware GigE SDK can be used:

- Gbe_setEnumerationValue()

- Gbe_setIntegerValue()

- …

When an event occurs, the callback handler gets informed about details of the GigE Vision event by the GbeEventInfo structure indicated by type == GBE_EVENT_GEVEVENT. Additional data retrieved from the GigE Vision protocol is stored in form of the GigE Vision event structure. For further details please refer to the camera manufacturer’s documentation.



2.7.3 Events generated by the SiliconSoftware Runtime

These events are indicated by different event types, which are passed by the GebEventInfo structure.

GebEventInfo.type : GBE_EVENT_XXX, where XXX <> GEVEVENT

For further details, see the SDK function list documentation.



2.8 Sending Action Commands via Firmware

In addition to sending action commands per software, you can also send action commands via the firmware of your Silicon Software frame grabber(s) to the connected GigE Vision cameras.

For each camera channel, one dedicated action command is available in the firmware. The content (function) of each action command is defined by software.

The sending of an action command to the camera is triggered by the applet: In specific situations defined by the applet design, the applet sends an action command trigger signal to the firmware. On detecting a rising edge of this trigger signal, the firmware sends the preconfigured action command to the GigE Vision camera.

The firmware sends the action command to the camera with a fix latency of 2000 ns +/- 16 ns. This means, the time gap between the detection of the rising edge of the action command trigger signal by the firmware and the actual sending of the action command by the firmware is always 2000 ns +/- 16 ns.

The index number of the action command is the same as the index number of the connected camera port. There is a 1:1 connection between the action command trigger in VisualApplets and the corresponding GigE Vision camera.

microEnable 4 GigE Vision frame Grabber using Action Commands

Requirements

To be able to use this feature, the following firmware and software must be used:

  • Silicon Software Runtime Software version 5.4.3 or higher
  • GigE Vision Applets Set 2.4 or higher
  • Firmware for microEnable IV AQ4-GE / -GPoE: version 1.36 (hex) or higher
  • Firmware for microEnable IV VQ4-GE / -GPoE: version 1.8a (hex) or higher

Workflow

To use action commands with acquisition applets delivered by Silicon Software, you need to proceed the following steps: 

  1. Configure the firmware for using action commands (via SDK).
  2. Configure the camera for using action commands (via SDK).
  3. Configure the applet to the required values.

The following sections describe how to proceed these steps in detail. An SDK Example for implementing Action Commands is available in our documentation.

Configuring the Firmware

You configure the firmware for sending action commands via SDK. See the SDK Example, lines 165 - 193.

For each camera, exactly 1 dedicated action command is implemented in the firmware.

To configure the firmware for using action commands:

  1. Disable the sending of action commands by firmware:

  2. For each channel, set values for Device Key, Group Key and Group Mask according to the settings of the connected camera, for example:

Use Same Values as in Camera Configuration: Make sure you set the same values here as are set in the corresponding camera configuration. Otherwise, action commands will not be acknowledged by the camera.

Since we use a 1:1 connection between firmware and camera, the actual values are of no importance. Therefore, all cameras can use the same device key as they are not connected via a network.

  1. Optional: Define a time out threshold (tolerated time gap between the moment the firmware is sending an action command and the moment it is receiving an acknowledge from the camera):


    The default timeout is 250.000.000 ticks [1 tick = 16 ns]. This is 4 seconds.
    If you don't define the timeout threshold, the default value will be used.

  2. Enable the sending of action commands by firmware:

Configuring the Cameras

You need to configure the cameras for receiving action commands via SDK. See the SDK Example, lines 195 - 218.

For each camera, exactly 1 dedicated action command is implemented in the firmware.

For configuring the cameras, the following new camera properties are available in the SDK:


To configure the cameras for receiving action commands:

  1. For each camera, set values for Device Key, Group Key and Group Mask according to the settings made for the connected firmware channels. For example: 



  2. Set a value for the ActionSelector. The value depends on the camera. Make sure you enter here the index number of the first action command in the camera.

Registering a Camera Event Callback

Register a camera event callback that informs you in case the camera doesn't react within the time you defined as time out threshold (see section 1.3). See the SDK Example, lines 220 - 223.

A new camera event is available in the SDK for this purpose:


To register the camera event callback: 

  1. Enter the following lines into your code:

Activating the Trigger State

Finally, you should activate the trigger state. See the SDK Example, lines 250 - 253.

To activate the trigger state:

  1. Set parameter FG_TRIGGERSTATE to TS_ACTIVE:

 

Implementing the Pending Action Command Counter

The counter for pending action commands counts the number of action commands that have been sent by the applet (image processing FPGA), but for which no acknowledge packet has been sent by the camera.

Each Action Command Trigger that is sent by the applet to the firmware increments register „PendingActionCmdCount“. Each action command acknowledge packet received from the camera decrements register„PendingActionCmdCount“.

The „PendingActionCmdCount“ counter is overflow and underflow protected.

See the SDK Example, lines 284 - 289.

To implement the pending action command counter:

1. Enter, for example, the following lines to your code: 

Configuring the Applet

For information how to configure the applet, refer to the documentation of the applet you are using.

 

2.8 Helper Functions

Functional Description

Gbe_getErrorDescription() Get error description.




2.9.1 Gbe_getErrorDescription

Syntax

const char* Gbe_getErrorDescription(int errcode)

Parameters

Parameter

Type

Description

errcode int Gbe error code.

Return Values

Return Value

Description

0

error getting error string.

!=0

error description as string




3 Compiler Settings

3.1 Windows®

The include files "gbe.h" have to be included. The path of the include files have to be set. It is: "<SISODIR5> \ include". The default installation folder for Silicon Software application is "Program Files \ SiliconSoftware". Neccessary library to link to is "gbe.lib" in directory <SISODIR5> \ lib \ visualc.




Back Forward