Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95

Windows_Logo
Linux_Logo

USB 3.x

GigE

USB 3.x

GigE

Syntax

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

Beschreibung

Mit is_Trigger() können Sie für GigE und USB 3 uEye Kameras den Burst-Triggermodus aktivieren. Im Burst-Triggermodus nimmt die Kamera nach Eingang eines Triggersignals mehrere Bilder in Folge auf. Das Triggersignal erfolgt per externem Hardware-Trigger über den digitalen Eingang der Kamera. Für den Bildeinzug wird is_CaptureVideo() verwendet, da mehrere Bilder übertragen werden (siehe Beispiel 3).

Die Bilder eines Bursts werden mit maximaler Geschwindigkeit aufgenommen und übertragen. Die maximale Geschwindigkeit hängt von den Parametern Pixeltakt (siehe is_PixelClock()) und Belichtungszeit (siehe is_Exposure()) ab. Mit is_Transfer() kann zusätzlich bei GigE uEye Kameras die Latenz der Bilddatenübertragung angepasst werden.

hint_info

Der Burst-Triggermodus kann nur im Hardware-Trigger verwendet werden. Für den Bildeinzug wird is_CaptureVideo() verwendet. Ein Trigger wird entweder über den Trigger-Pin der Kamera ausgelöst oder über einen Aufruf von is_ForceTrigger().

Das Modell UI-359xLE und die Kamerafamilie uEye LE USB 3.1 Gen 1 unterstützen den Burst-Triggermodus derzeit nicht.

Verzögerung des Triggersignals (Trigger Delay) im Burst-Triggermodus

Wenn Sie über die Funktion is_SetTriggerDelay() eine Verzögerung einstellen, wirkt sich diese jeweils nur auf das erste Bild nach einem Triggersignal aus.

Trigger-Vorteiler setzen

Zusätzlich können Sie über die Funktion is_Trigger() einen Trigger-Vorteiler setzen. Über den Trigger-Vorteiler (Frequenzteiler) können Sie festlegen, dass das Triggersignal durch den gesetzten Wert vorgeteilt wird. Dies ist dann der Fall, wenn der Triggergeber mehr Impulse liefert, als eigentlich für die Aufnahmen benötigt werden. Durch den eingestellten Wert, z. B. 40, legen Sie fest, dass die Kamera nur bei jedem 40. Triggersignal eine Aufnahme auslöst (siehe uEye Cockpit: Eigenschaften - Trigger).

hint_info

Der Trigger-Vorteiler wird derzeit von den folgenden Modellen im Hardware-Triggermodus unterstützt:

•USB 3 uEye CP Rev. 2

•USB 3 uEye CP

•USB 3 uEye LE

•USB 3 uEye ML

•GigE uEye CP Rev. 2

•GigE uEye CP

•GigE uEye FA

•GigE uEye SE Rev. 4

Ü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 Struktur RANGE_OF_VALUES_U32

UINT

u32Minimum

Minimalwert

UINT

u32Maximum

Maximalwert

UINT

u32Increment

Inkrement

UINT

u32Default

Standardwert

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_SetExternalTrigger()

•is_ForceTrigger()

•is_SetTriggerDelay()

•is_TriggerDebounce()

Beispiel 1

UINT nTriggerBurstSizeSupported = 0;
INT nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_BURST_SIZE_SUPPORTED,
                    (void*)&nTriggerBurstSizeSupported, sizeof(nTriggerBurstSizeSupported));
 
if (nRet == IS_SUCCESS)
{
// Burst size supported
if (nTriggerBurstSizeSupported == 1)
{
  RANGE_OF_VALUES_U32 rangeBurstSize;
  nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_BURST_SIZE_RANGE,
                    (void*)&rangeBurstSize, sizeof(rangeBurstSize));
 
  if (nRet == IS_SUCCESS)
  {
    UINT nMin, nMax;
    nMin = rangeBurstSize.u32Minimum;
    nMax = rangeBurstSize.u32Maximum;
  }
}
}

Beispiel 2

UINT nTriggerBurstSize = 0;
INT nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_BURST_SIZE,
                    (void*)&nTriggerBurstSize, sizeof(nTriggerBurstSize));
 
nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_SET_BURST_SIZE,
                (void*)&nTriggerBurstSize, sizeof(nTriggerBurstSize));

Beispiel 3

// Trigger burst with image queue
// Init camera
 
int BurstSize = 8;
 
/* Set trigger mode */
nRet = is_SetExternalTrigger(m_hCam, IS_SET_TRIGGER_HI_LO);
 
/* Set image burst size */
nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_SET_BURST_SIZE, &BurstSize, sizeof(BurstSize));
 
/* Start capture */
nRet = is_CaptureVideo(m_hCam, IS_DONT_WAIT);
 
/* Retrieve images */
for (int i = 0; i < BurstSize; ++i)
{
int memID;
char *memBuffer;
nRet = is_WaitForNextImage(m_hCam, Timeout, &memBuffer, &memID);
if (nRet == IS_SUCCESS)
{
  …
}
}

Beispiel 4

UINT nLinePrescalerSupported = 0;
INT nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_LINE_PRESCALER_SUPPORTED,
                    (void*)&nLinePrescalerSupported, sizeof(nLinePrescalerSupported));
 
if (nRet == IS_SUCCESS)
{
// Prescaler supported
if (nLinePrescalerSupported== 1)
{
  RANGE_OF_VALUES_U32 rangePrescaler;
  nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_LINE_PRESCALER_RANGE,
                    (void*)&rangePrescaler, sizeof(rangePrescaler));
 
  if (nRet == IS_SUCCESS)
  {
    UINT nMin, nMax;
    nMin = rangePrescaler.u32Minimum;
    nMax = rangePrescaler.u32Maximum;
  }
}
}

Beispiel 5

UINT nPrescaler = 0;
INT nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_LINE_PRESCALER,
                    (void*)&nPrescaler, sizeof(nPrescaler));
 
nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_SET_LINE_PRESCALER, (void*)&nPrescaler, sizeof(nPrescaler));
Beispiel 6
UINT nFramePrescalerSupported = 0;
INT nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_FRAME_PRESCALER_SUPPORTED,
                    (void*)&nFramePrescalerSupported, sizeof(nFramePrescalerSupported));
 
if (nRet == IS_SUCCESS)
{
// Prescaler supported
if (nFramePrescalerSupported == 1)
{
  RANGE_OF_VALUES_U32 rangePrescaler;
  nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_FRAME_PRESCALER_RANGE,
                    (void*)&rangePrescaler, sizeof(rangePrescaler));
 
  if (nRet == IS_SUCCESS)
  {
    UINT nMin, nMax;
    nMin = rangePrescaler.u32Minimum;
    nMax = rangePrescaler.u32Maximum;
  }
}
}

Beispiel 7

UINT nPrescaler = 0;
INT nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_GET_FRAME_PRESCALER,
                    (void*)&nPrescaler, sizeof(nPrescaler));
 
nRet = is_Trigger(m_hCam, IS_TRIGGER_CMD_SET_FRAME_PRESCALER, (void*)&nPrescaler, sizeof(nPrescaler));