Please enable JavaScript to view this site.

IDS Software Suite 4.96.1

Windows_Logo
Linux_Logo

GigE

GigE

Syntax

INT is_Transfer (HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)

Description

Use is_Transfer() to adjust the latency of the image data transfer of GigE uEye cameras. You can adjust the interval between capturing and transferring an image for each individual camera that is connected. This may be useful to divide available bandwidth amongst cameras running simultaneously on slow networks (e.g. transfer in a wireless or 100 Mbit network). Currently, you can adjust the following parameters:

Image delay
This value determines the internal camera delay of the image transfer. When the sensor begins outputting data, the camera waits for the specified duration before starting to transfer the image data. In this way you can coordinate the data transfer for several simultaneously triggered cameras.

Packet interval
GigE uEye cameras transfer image data in several data packets of the same size. The "Packet interval" value determines the interval between the transfer of two successive packets, improving the data transfer of one or several cameras on slow networks.

hint_info

The usual value for the "Packet interval" in Gigabit Ethernet networks is around 20 µs. Higher values for TRANSFER_CMD_SET_PACKETINTERVAL_US can reduce the transfer speed of the GigE uEye camera considerably.

Additionally the function can query if the camera supports the memory mode and set its properties (see Using the camera memory (GigE uEye cameras)).

The nCommand input parameter is used to select the function mode. The pParam input parameter depends on the selected function mode. If you select functions for setting or returning a value, pParam contains a pointer to a variable of the UINT type. The size of the memory area to which pParam refers is specified in the cbSizeOfParam input parameter.

Input parameters

hCam

Camera handle

pParam

Pointer to a function parameter, whose function depends on nCommand.

cbSizeOfParam

Size (in bytes) of the memory area to which pParam refers.

Contents of the TRANSFER_CAPABILITY_FLAGS enumeration

INT

TRANSFER_CAP_IMAGEDELAY

Setting the image transfer delay is supported.

INT

TRANSFER_CAP_PACKETINTERVAL

Setting the packet interval during image transfer is supported.

Contents of the RANGE_OF_VALUES_U32 structure

UINT

u32Minimum

Minimum value

UINT

u32Maximum

Maximum value

UINT

u32Increment

Increment

UINT

u32Default

Standard value

UINT

u32Infinite

Sets the value for "infinite"

Return values

IS_INVALID_CAMERA_HANDLE

Invalid camera handle

IS_INVALID_PARAMETER

One of the submitted parameters is outside the valid range or is not supported for this sensor or is not available in this mode.

IS_NO_SUCCESS

General error message

IS_NOT_SUPPORTED

The camera model used here does not support this function or setting.

IS_SUCCESS

Function executed successfully

Related functions

is_CaptureStatus()

is_GetImageInfo()

Example 1

#include <ueye.h>
 
INS_RETURN_CODE nRet = IS_SUCCESS;
HANDLE hCam = myCamHandle;
 
/* query the transfer capabilities for the device */
unsigned int u32TransferCaps = 0;
nRet = is_Transfer (hCam, TRANSFER_CMD_QUERY_CAPABILITIES, &u32TransferCaps, sizeof(u32TransferCaps));
if (nRet != IS_SUCCESS)
{
  /* error handling */
}
 
/* test for 'image delay' feature to be supported by the device */
if ((u32TransferCaps & TRANSFER_CAP_IMAGEDELAY) == TRANSFER_CAP_IMAGEDELAY)
{
  /* device supports 'image delay' feature */
 
  /* query the current value of 'image delay' */
  unsigned int u32CurrentImageDelay_us = 0;
  nRet = is_Transfer (hCam, TRANSFER_CMD_GET_IMAGEDELAY_US, &u32CurrentImageDelay_us, sizeof(u32CurrentImageDelay_us));
 
  /* query the range of values for 'image delay' and
      set 'image delay' to the lowest value above minimum */
  RANGE_OF_VALUES_U32 rovImageDelay = {0, 0, 0, 0, 0};
  nRet = is_Transfer (hCam, TRANSFER_CMD_GETRANGE_IMAGEDELAY_US, &rovImageDelay, sizeof(rovImageDelay));
  if (nRet != IS_SUCCESS)
  {
      /* error handling */
  }
  else
  {
      unsigned int u32NewImageDelay_us = rovImageDelay.u32Minimum + rovImageDelay.u32Increment;
      nRet = is_Transfer (hCam, TRANSFER_CMD_SET_IMAGEDELAY_US, &u32NewImageDelay_us, sizeof(u32NewImageDelay_us));
      if (nRet != IS_SUCCESS)
      {
          /* error handling */
      }
  }
}

Example 2

INT nRet = IS_SUCCESS;
 
/* Check if camera memory is supported */
UINT nCaps = 0;
nRet = is_Transfer(hCam, TRANSFER_CMD_GET_IMAGE_DESTINATION_CAPABILITIES, (void*)&nCaps, sizeof(nCaps));
if ((nRet == IS_SUCCESS) && ((nCaps & IS_TRANSFER_DESTINATION_DEVICE_MEMORY) != 0))
{
  /* Enable camera memory mode */
  TRANSFER_TARGET transferTarget = IS_TRANSFER_DESTINATION_DEVICE_MEMORY;
  nRet = is_Transfer(m_Camera.hCam, TRANSFER_CMD_SET_IMAGE_DESTINATION, (void*)&transferTarget, sizeof(transferTarget ));
}

© 2022 IDS Imaging Development Systems GmbH