Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95.1

Windows_Logo
Linux_Logo

USB 2.0

USB 3.x

GigE

USB 2.0

USB 3.x

GigE

Syntax

INT is_Event(HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam)

Beschreibung

Mit is_Event() werden Event-Objekte registriert, verwaltet und auf deren Signalisierung gewartet.

hint_info

Event-Handling bei Bildern

Wenn Sie das Event-Handling einsetzen, um neue Bilder von der Kamera zu signalisieren, kann es unter hoher Systemlast vorkommen, dass die event-basierte Anwendung nicht für jedes Bild eine Signalisierung erhält. Der Grund hierfür ist, dass das Eventkonzept nicht vorsieht, mehrere Events desselben Typs zu speichern. Wird aufgrund der Systemlast mehr als ein Bild per Event signalisiert, bevor die Anwendung wieder bereit ist (z.B. WaitForSingleObject), so haben Sie keine Möglichkeit diese verpassten Events zu erfassen.

Übergabeparameter

hCam

Handle auf Kamera

pParam

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

nSizeOfParam

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

Inhalte der Struktur IS_INIT_EVENT

UINT

nEvent

ID des Event-Objekts, das initialisiert wird.

BOOL

bManualReset

Flag für das Verhalten nach der Signalisierung:

•TRUE: es wird ein Event-Objekt registriert, das nach der Signalisierung manuell vom Anwender mittels des Kommandos IS_EVENT_CMD_RESET in den Zustand "nicht signalisiert" zurückgesetzt werden muss.

•FALSE: es wird ein Event-Objekt registriert, das nach der Signalisierung vom System automatisch in den Zustand "nicht signalisiert" zurückgesetzt wird.

BOOL

bInitialState

Flag für den Zustand des Event-Objekts nach der Initialisierung und Registrierung:

•TRUE: es wird ein Event-Objekt registriert, das sich im Zustand "signalisiert" befindet.

•FALSE: es wird ein Event-Objekt registriert, das sich im Zustand "nicht signalisiert" befindet.

Inhalte der Struktur IS_WAIT_EVENT

UINT

nEvent

ID des Event-Objekt, auf das gewartet wird.

UINT

nTimeoutMilliseconds

Timeout in Millisekunden

•Timeout ≠ 0: Die Funktion wartet, bis das angegebene Event-Objekt signalisiert wird oder bis die angegebene Timeout-Zeit verstrichen ist.

•Timeout = 0: Die Funktion kehrt sofort zurück.

•Timeout = INFINITE (d. h. maximaler Wert für ein UINT): Die Funktion kehrt erst zurück, wenn das Event-Objekt signalisiert wird.

UINT

nSignaled

Kehrt die Funktion mit IS_SUCCESS zurück, enthält der Parameter die ID des signalisierten Event-Objekts.

UINT

nSetCount

Kehrt die Funktion mit IS_SUCCESS zurück, enthält der Parameter die Anzahl der Signalisierungen des durch nSignaled definierten Event-Objekts seit der letzten Abfrage durch das Kommando IS_EVENT_CMD_WAIT.

Inhalte der Struktur IS_WAIT_EVENTS

UINT*

pEvents

Zeiger (Array) auf die IDs der Event-Objekte, auf die gewartet wird.

UINT

nCount

Anzahl der Event-Objekte auf die der Zeiger pEvents zeigt.

BOOL

bWaitAll

Flag für das Verhalten zur Rückkehr der Funktion bei der Signalisierung:

•TRUE: Die Funktion kehrt zurück, wenn alle angegebenen Event-Objekte signalisiert sind oder bis das angegebene Timeout (nTimeoutMilliseconds) verstrichen ist.

•FALSE: Die Funktion kehrt zurück, wenn mindestens eines der angegebenen Event-Objekte signalisiert oder bis das angegebene Timeout (nTimeoutMilliseconds) verstrichen ist.

UINT

nTimeoutMilliseconds

Timeout in Millisekunden

•Timeout ≠ 0: Die Funktion wartet solange bis ein Event-Objekt signalisiert ist oder alle Event-Objekte signalisiert sind (siehe bWaitAll) oder bis die angegebene Timeout-Zeit verstrichen ist.

•Timeout = 0: Die Funktion kehrt sofort zurück.

•Timeout = INFINITE (d. h. maximaler Wert für ein UINT): Die Funktion kehrt zurück, wenn ein Event-Objekt signalisiert ist oder alle Event-Objekte signalisiert sind (siehe bWaitAll).

UINT

nSignaled

Kehrt die Funktion mit IS_SUCCESS zurück, enthält der Parameter abhängig vom Parameter bWaitAll:

•bWaitAll = TRUE: einen undefinierten Wert

•bWaitAll = FALSE: die ID des signalisierten Event-Objekts

UINT

nSetCount

Kehrt die Funktion mit IS_SUCCESS zurück, enthält der Parameter die Anzahl der Signalisierungen des durch nSignaled definierten Event-Objekts seit der letzten Abfrage durch das Kommando IS_EVENT_CMD_WAIT.

Globale Event-IDs

IS_SET_EVENT_NEW_DEVICE

Eine Kamera wurde neu angeschlossen.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_NEW_DEVICE_ETH

Eine GigE Kamera wurde neu angeschlossen.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_NEW_DEVICE_USB

Eine USB Kamera wurde neu angeschlossen.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_REMOVAL

Eine Kamera wurde entfernt.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_REMOVAL_ETH

Eine GigE Kamera wurde entfernt.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_REMOVAL_USB

Eine USB Kamera wurde entfernt.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_STATUS_CHANGED

Nur unter Linux:

Die Verfügbarkeit einer Kamera hat sich geändert, z.B. eine verfügbare Kamera wurde geöffnet.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_STATUS_CHANGED_ETH

Nur unter Linux:

Die Verfügbarkeit einer GigE Kamera hat sich geändert, z.B. eine verfügbare Kamera wurde geöffnet.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_STATUS_CHANGED_USB

Nur unter Linux:

Die Verfügbarkeit einer USB Kamera hat sich geändert, z.B. eine verfügbare Kamera wurde geöffnet.

Unabhängig vom Device Handle (hCam wird ignoriert).

IS_SET_EVENT_USER_DEFINED_BEGIN … IS_SET_EVENT_USER_DEFINED_END

Benutzerdefinierte Events: diese Events stehen dem Benutzer zur freien Verfügung (siehe Beispiel)

Gerätespezifische Event-IDs

IS_SET_EVENT_AUTOBRIGHTNESS_FINISHED

Die automatische Helligkeitsregelung im Run-Once-Modus ist abgeschlossen.

IS_SET_EVENT_AUTOFOCUS_FINISHED

Die automatische Regelung für den Fokus ist abgeschlossen (siehe is_Focus()).

IS_SET_EVENT_CAMERA_MEMORY

Eine Aufnahmen-Iteration im Kamera-Memory-Modus wurde beendet (siehe is_ImageBuffer()).

IS_SET_EVENT_CAPTURE_STATUS

Es liegt eine Information zur Bilderfassung vor. Diese Information kann über is_CaptureStatus() abgefragt werden.

Beachten Sie, dass dieses Event das bisherige IS_SET_EVENT_TRANSFER_FAILED aus vorherigen Versionen ersetzt.

IS_SET_EVENT_CONNECTIONSPEED_CHANGED

Die Verbindungsgeschwindigkeit einer USB 3.x Kamera wurde reduziert auf USB 2.0-Geschwindigkeit oder hat sich erhöht.

IS_SET_EVENT_DEVICE_PLUGGED_IN

Voraussetzung: die Kamera wird im Trusted-Pairing-Modus betrieben (siehe is_Configuration()).

Eine bereits gepairte GigE uEye Kamera wurde wieder mit den Netzwerk verbunden.

IS_SET_EVENT_DEVICE_UNPLUGGED

Voraussetzung: die Kamera wird im Trusted-Pairing-Modus betrieben (siehe is_Configuration()).

Eine gepairte GigE uEye Kamera wurde vom Netzwerk getrennt.

IS_SET_EVENT_DEVICE_RECONNECTED

Eine mit is_InitCamera() geöffnete und danach entfernte Kamera wurde wieder eingesteckt.

IS_SET_EVENT_END_OF_EXPOSURE

Die Belichtung ist abgeschlossen. Dieses Event wird nach dem Ablauf der Sensor-Belichtungszeit ausgelöst. Die Zeitspanne zwischen dem Belichtungsende und dem Software-Ereignissignal ist typischerweise < 1 ms.

Das Event wird vor dem Event IS_SET_EVENT_FIRST_PACKET_RECEIVED ausgelöst, da die Bildübertragung in den PC noch nicht abgeschlossen ist, wenn das Event IS_SET_EVENT_END_OF_EXPOSURE gesendet wird.

Für das Event gelten die Einschränkungen, dass es nur im Trigger-Modus und nur von Global-Shutter-Modellen der folgenden Kamerafamilien unterstützt wird (siehe is_DeviceFeature()):

•GigE uEye CP Rev. 2

•GigE uEye FA

•GigE uEye SE Rev. 4

•USB 3 uEye CP Rev. 2 (nicht für Modelle mit Sony-Sensoren / UI-3590CP Rev. 2)

•USB 3 uEye CP

•USB 3 uEye LE

•uEye LE USB 3.1 Gen 1 (nicht für UI-359xLE Rev. 2)

•uEye SE USB 3.1 Gen 1 (nicht für Modelle mit Sony-Sensoren)

IS_SET_EVENT_EXTTRIG

Ein Bild, dessen Aufnahme durch einen Trigger ausgelöst wurde, wurde komplett übertragen. Dies ist der frühestmögliche Zeitpunkt für eine neue Aufnahme. Das Bild muss noch das Postprocessing des Treibers durchlaufen und steht nach dem Event IS_SET_EVENT_FRAME zur Verarbeitung bereit.

IS_SET_EVENT_FIRST_PACKET_RECEIVED

Das erste Datenpaket des Bildes wurde an den PC übertragen.

IS_SET_EVENT_FRAME

Ein neues Bild steht zur Verfügung.

IS_SET_EVENT_FRAME_RECEIVED

Das Event wird signalisiert, wenn eine neues Bild in der API eingetroffen ist, bevor die Nachbearbeitung durchgeführt wird.

IS_SET_EVENT_FRAME_SKIPPED

Das Event wird signalisiert, wenn ein Bild verworfen wurde (siehe is_CaptureConfiguration()).

IS_SET_EVENT_OVERLAY_DATA_LOST

Direct3D-/OpenGL-Modus: Durch eine Umprogrammierung sind die Parameter des Overlay ungültig geworden. Das Overlay muss neu gezeichnet werden.

IS_SET_EVENT_PMC_IMAGE_PARAMS_CHANGED

Multicast-Betrieb: Der Master hat Kameraparameter geändert, die sich auf das Datenformat auswirken wie z. B. Bildgröße oder Farbformat. Der Client muss die virtuelle Kamera neu konfigurieren.

IS_SET_EVENT_REMOVE

Eine mit is_InitCamera() geöffnete Kamera wurde entfernt.

IS_SET_EVENT_SEQ

Die Sequenz wurde durchlaufen (siehe is_AddToSequence() / Event-/Message-Handling).

IS_SET_EVENT_STEAL

Ein dem Overlay entzogenes Bild steht zur Verfügung (siehe is_DirectRenderer()).

IS_SET_EVENT_TEMPERATURE_STATUS

Nur USB 3 uEye CP Rev. 2/GigE uEye CP Rev. 2/GigE uEye FA/GigE uEye SE Rev. 4:

Der Temperaturstatus der Kamera hat sich geändert, siehe Temperaturstatus abfragen.

IS_SET_EVENT_WB_FINISHED

Der automatische Weißabgleich hat seine Regelung beendet (siehe Automatische Bildregelung).

Rückgabewert

IS_ACCESS_VIOLATION

Es ist eine Zugriffsverletzung aufgetreten.

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_OUT_OF_MEMORY

Es konnte kein Speicher alloziert werden.

IS_SUCCESS

Funktion erfolgreich

IS_TIMED_OUT

Ein Timeout trat auf. Eine Bildaufnahme konnte nicht in der vorgeschriebenen Zeit beendet werden.

Die angegebene Timeout-Zeit ist abgelaufen, ohne dass ein Event-Objekt signalisiert wurde.

Verwandte Funktionen

•is_EnableMessage()

Beispiel

// to read fluently
#define IS_SET_EVENT_THREAD_STOP    IS_SET_EVENT_USER_DEFINED_BEGIN
 
// init camera ...
 
// init / enable
IS_INIT_EVENT init_events[] = {{IS_SET_EVENT_FRAME, TRUE, FALSE}, {IS_SET_EVENT_THREAD_STOP, TRUE, FALSE}};
INT ret = is_Event(cam, IS_EVENT_CMD_INIT, init_events, sizeof(init_events));
 
if (IS_SUCCESS == ret)
{
  UINT events[] = {IS_SET_EVENT_FRAME, IS_SET_EVENT_THREAD_STOP};
  ret = is_Event(cam, IS_EVENT_CMD_ENABLE, events, sizeof(events));
 
  // start thread and run installed event_handler (here: thread_proc) ...
  ...
 
  // ... do something in main thread ...
  ...
 
  // ... signal 'stop thread' ...
  is_Event(cam, IS_EVENT_CMD_SET, &events[1], sizeof(UINT));
 
  // ... wait for thread termination!!!
  ...
 
  is_Event(cam, IS_EVENT_CMD_DISABLE, events, sizeof(events))
  is_Event(cam, IS_EVENT_CMD_EXIT, events, sizeof(events));
}
 
void thread_proc(HIDS cam)
{
  // wait / reset
  UINT events[] = {IS_SET_EVENT_FRAME, IS_SET_EVENT_THREAD_STOP};
  IS_WAIT_EVENTS wait_events = {events, 2, FALSE, 1000, 0, 0};
 
  do
  {
      INT ret = is_Event(cam, IS_EVENT_CMD_WAIT, &wait_events, sizeof(wait_events));
      if ((IS_SUCCESS == ret) && (IS_SET_EVENT_FRAME == wait_events.nSignaled))
      {
          // for example: show frame
          // ...
 
          // ... reset event, because 'bManualReset = TRUE'
          is_Event(cam, IS_EVENT_CMD_RESET, &events[0], sizeof(UINT));
      }
      else if (IS_TIMED_OUT == ret)
      {
          // do something ...
      }
  }
  while (IS_SET_EVENT_THREAD_STOP != wait_events.nSignaled)
}