Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95

Windows_Logo
Linux_Logo

USB 2.0

USB 3.x

GigE

USB 2.0

USB 3.x

GigE

Syntax

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

Beschreibung

Über die Funktion is_IO() steuern Sie die zusätzlichen digitalen Ausgänge (GPIO) einiger uEye Modelle. Die GPIO verfügen über keine Optokoppler. Informationen zur Beschaltung der GPIO finden Sie im Kapitel D: Spezifikation.

hint_info

Das Triggern per GPIO wird derzeit von den folgenden Modellen unterstützt:

•uEye LE USB 3.1 Gen 1

•uEye SE USB 3.1 Gen 1

•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 LE

•GigE uEye FA

•GigE uEye RE PoE

•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.

Inhalte der Struktur IO_GPIO_CONFIGURATION

UINT

u32Gpio

Setzt den GPIO, dessen Konfiguration ausgelesen oder gesetzt wird (IO_GPIO_1, IO_GPIO_2). Muss daher initialisiert werden, bevor die GPIO-Konfiguration gelesen oder gesetzt wird.

UINT

u32Caps

Beim Lesen der Konfiguration: veroderte Bitmaske der unterstützten GPIO-Modi (IS_GPIO_INPUT | IS_GPIO_OUTPUT…).

UINT

u32Configuration

Beim Lesen der Konfiguration: Gibt die aktuell gesetzte Konfiguration zurück.

Beim Setzen der Konfiguration: Setzt die Konfiguration.

Folgende Einstellungen sind möglich:

•IS_GPIO_INPUT
GPIO wird als Eingang verwendet

•IS_GPIO_OUTPUT
GPIO wird als Ausgang verwendet

•IS_GPIO_FLASH
GPIO wird für Blitz verwendet

•IS_GPIO_PWM
GPIO wird für Pulsweitenmodulation verwendet verwendet

•IS_GPIO_COMPORT_RX
Nur Windows: GPIO wird als serielle Schnittstelle verwendet (Beispiel 3)

•IS_GPIO_COMPORT_TX
Nur Windows: GPIO wird als serielle Schnittstelle verwendet (Beispiel 3)

•IS_GPIO_MULTI_INTEGRATION_MODE
GPIO wird für Multi-Integration-Modus verwendet

•IS_GPIO_TRIGGER
GPIO wird für Trigger verwendet (Beispiel 4)

UINT

u32State

•Beim Lesen der Konfiguration: gibt den aktuellen Zustand des GPIO zurück (0 = Low, 1 = High).

•Beim Setzen der Konfiguration: Setzt den Zustand des GPIO (0 = Low, 1 = High).

UINT

u32Reserved[12]

Reserviert

Veraltete Parameter

Die folgenden Parameter für nCommand sind veraltet und sollten nicht mehr verwendet werden.

IS_IO_CMD_GPIOS_GET_SUPPORTED

Gibt die unterstützten GPIO-Ports zurück:

•IO_FLASH_GPIO_PORT_MASK (IO_FLASH_MODE_GPIO_1 | IO_FLASH_MODE_GPIO_2)

IS_IO_CMD_GPIOS_GET_SUPPORTED_INPUTS

Gibt die unterstützten GPIO-Eingänge zurück.

IS_IO_CMD_GPIOS_GET_SUPPORTED_OUTPUTS

Gibt die unterstützten GPIO-Ausgänge zurück.

IS_IO_CMD_GPIOS_GET_DIRECTION

Gibt die Eingangs/Ausgangsmaske der GPIOs zurück.

IS_IO_CMD_GPIOS_SET_DIRECTION

Setzt die GPIOs auf Eingang/Ausgang:

•IO_FLASH_MODE_GPIO_1: Setzt GPIO 1 als Ausgang.

•IO_FLASH_MODE_GPIO_2: Setzt GPIO 2 als Ausgang.

IS_IO_CMD_GPIOS_GET_STATE

Gibt die Zustände der GPIOs zurück (High, Low).

IS_IO_CMD_GPIOS_SET_STATE

Setzt die Zustände der GPIOs, wenn diese als Ausgang definiert sind (High, Low).

Beispiel 1

INT nRet = IS_SUCCESS;
 
IO_GPIO_CONFIGURATION gpioConfiguration;
 
// Read information about GPIO1
gpioConfiguration.u32Gpio = IO_GPIO_1;
 
nRet = is_IO(hCam, IS_IO_CMD_GPIOS_GET_CONFIGURATION, (void*)&gpioConfiguration,
            sizeof(gpioConfiguration) );
 
if (nRet == IS_SUCCESS)
{
if ((gpioConfiguration.u32Caps & IS_GPIO_PWM) != 0)
{
  // GPIO1 supports PWM
}
if ((gpioConfiguration.u32Caps & IS_GPIO_FLASH) != 0)
{
  // GPIO1 supports Flash
}
if (gpioConfiguration.u32Configuration == IS_GPIO_OUTPUT)
{
  // GPIO1 is currently configured as output
  if (gpioConfiguration.u32State == 1)
  {
    // GPIO1 is currently output HIGH
  }
}
}

Beispiel 2

INT nRet = IS_SUCCESS;
 
IO_GPIO_CONFIGURATION gpioConfiguration;
 
// Set configuration of GPIO1 (OUTPUT LOW)
gpioConfiguration.u32Gpio = IO_GPIO_1;
gpioConfiguration.u32Configuration = IS_GPIO_OUTPUT;
gpioConfiguration.u32State = 0;
 
nRet = is_IO(hCam, IS_IO_CMD_GPIOS_SET_CONFIGURATION, (void*)&gpioConfiguration,
            sizeof(gpioConfiguration));

Beispiel 3

INT nRet = IS_SUCCESS;
 
IO_GPIO_CONFIGURATION gpioConfiguration;
 
// Set configuration of GPIO1 (COM-port TX)
// GPIO1 configured as RX is not supported!
gpioConfiguration.u32Gpio = IO_GPIO_1;
gpioConfiguration.u32Configuration = IS_GPIO_COMPORT_TX;
 
// GPIO2 will be configured as IS_GPIO_COMPORT_RX automatically!
nRet = is_IO(hCam, IS_IO_CMD_GPIOS_SET_CONFIGURATION, (void*)&gpioConfiguration,
            sizeof(gpioConfiguration));
 
// The following code leads to the same setting
// Set configuration of GPIO2 (COM-port RX)
gpioConfiguration.u32Gpio = IO_GPIO_2;
gpioConfiguration.u32Configuration = IS_GPIO_COMPORT_RX;
 
// GPIO1 will be configured as IS_GPIO_COMPORT_TX automatically!
nRet = is_IO(hCam, IS_IO_CMD_GPIOS_SET_CONFIGURATION, (void*)&gpioConfiguration,
            sizeof(gpioConfiguration));

Beispiel 4

INT nRet = IS_SUCCESS;
 
IO_GPIO_CONFIGURATION gpioConfiguration;
 
// Set configuration of GPIO1
gpioConfiguration.u32Gpio = IO_GPIO_1;
gpioConfiguration.u32Configuration = IS_GPIO_TRIGGER;
gpioConfiguration.u32State = 0;
 
nRet = is_IO(hCam, IS_IO_CMD_GPIOS_SET_CONFIGURATION, (void*)&gpioConfiguration,
            sizeof(gpioConfiguration));