Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.96.1

Windows_Logo
Linux_Logo

GigE

GigE

Syntax

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

Beschreibung

Mit is_Transfer() kann bei GigE uEye Kameras die Latenz der Bilddatenübertragung angepasst werden. Für jede angeschlossene Kamera lässt sich individuell der Abstand zwischen Bildaufnahme und -übertragung anpassen. Dies kann sinnvoll sein, um bei langsamen Netzwerken die verfügbare Bandbreite zwischen parallel laufenden Kamera aufzuteilen (z. B. Übertragung im WLAN oder 100 Mbit-Netzwerk). Derzeit können folgende Parameter angepasst werden:

•Image Delay
Dieser Wert bestimmt die kamerainterne Verzögerung der Bildübertragung. Wenn der Sensor mit der Datenausgabe beginnt, wartet die Kamera noch für die eingestellte Dauer, bis sie mit der Übertragung der Bilddaten beginnt. Damit kann die Datenübertragung mehrerer gleichzeitig getriggerter Kameras koordiniert werden.

•Packet interval
GigE uEye Kameras übertragen Bilddaten in mehreren, gleich großen Datenpaketen. Der Wert "Packet interval" bestimmt den Abstand zwischen der Übertragung zweier aufeinander folgender Pakete. Damit kann die Datenübertragung einer oder mehrerer Kameras in langsamen Netzwerken verbessert werden.

hint_info

Der übliche Wert für das "Packet interval" liegt in Gigabit-Ethernet-Netzwerken bei etwa 20 µs. Höhere Werte für TRANSFER_CMD_SET_PACKETINTERVAL_US verringern die Übertragungsgeschwindigkeit der GigE uEye Kamera unter Umständen deutlich.

Zusätzlich kann mit der Funktion abgefragt werden, ob die Kamera den Memory-Modus unterstützt und dessen Eigenschaften gesetzt werden (siehe Kameraspeicher verwenden (GigE uEye Kameras)).

Über den Übergabeparameter nCommand wird dabei der Funktionsmodus gewählt. Der Übergabeparameter pParam ist abhängig vom Funktionsmodus unterschiedlich belegt; bei Funktionen zum Setzen oder Rücklesen eines Wertes enthält pParam einen Zeiger auf eine Variable vom Typ UINT. Die Größe des Speicherbereichs, auf den pParam verweist, wird im Übergabeparameter cbSizeOfParam angegeben.

Übergabeparameter

hCam

Handle auf Kamera

pParam

Zeiger auf Funktionsparameter, der abhängig von nCommand unterschiedlich belegt ist.

cbSizeOfParam

Größe des Speicherbereichs in Byte, auf den pParam verweist.

Inhalt der Enumeration TRANSFER_CAPABILITY_FLAGS

INT

TRANSFER_CAP_IMAGEDELAY

Einstellung der Verzögerung der Bildübertragung wird unterstützt.

INT

TRANSFER_CAP_PACKETINTERVAL

Einstellung des Paketabstand bei der Bildübertragung wird unterstützt.

Inhalt der Struktur RANGE_OF_VALUES_U32

UINT

u32Minimum

Minimalwert

UINT

u32Maximum

Maximalwert

UINT

u32Increment

Inkrement

UINT

u32Default

Standardwert

UINT

u32Infinite

Setzt den Wert für "unendlich"

Rückgabewerte

IS_INVALID_CAMERA_HANDLE

Ungültiges Kamera-Handle

IS_INVALID_PARAMETER

Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich.

IS_NO_SUCCESS

Allgemeine Fehlermeldung

IS_NOT_SUPPORTED

Das verwendete Kameramodell unterstützt diese Funktion oder Einstellung nicht.

IS_SUCCESS

Funktion erfolgreich

Verwandte Funktionen

•is_CaptureStatus()

•is_GetImageInfo()

Beispiel 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 */
      }
  }
}

Beispiel 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 ));
}