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)
Description
With the is_IO() function you control the additional digital outputs (GPIOs) of some uEye models. The GPIOs are not provided with optocouplers. For information on GPIO wiring, please refer to the D: Specifications chapter.
Triggering via GPIO is currently supported by the following models: •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 |
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 IO_GPIO_CONFIGURATION structure
UINT |
u32Gpio |
Sets the GPIO whose configuration is to be read or set (IO_GPIO_1, IO_GPIO_2). So this value must be initialized before the GPIO configuration is read or set. |
UINT |
u32Caps |
When reading the configuration: "OR" bitmask of the supported GPIO modes (IS_GPIO_INPUT | IS_GPIO_OUTPUT…). |
UINT |
u32Configuration |
When reading the configuration: returns the current set configuration. When setting the configuration: sets the configuration. The following settings are possible: •IS_GPIO_INPUT •IS_GPIO_OUTPUT •IS_GPIO_FLASH •IS_GPIO_PWM •IS_GPIO_COMPORT_RX •IS_GPIO_COMPORT_TX •IS_GPIO_MULTI_INTEGRATION_MODE •IS_GPIO_TRIGGER |
UINT |
u32State |
•When reading the configuration: returns the current state of the GPIO (0 = Low, 1 = High). •When setting the configuration: sets the state of the GPIO (0 = Low, 1 = High). |
UINT |
u32Reserved[12] |
Reserved |
Obsolete parameters
The following parameters for nCommand are obsolete and should no longer be used.
IS_IO_CMD_GPIOS_GET_SUPPORTED |
Returns the supported GPIO ports: •IO_FLASH_GPIO_PORT_MASK (IO_FLASH_MODE_GPIO_1 | IO_FLASH_MODE_GPIO_2) |
IS_IO_CMD_GPIOS_GET_SUPPORTED_INPUTS |
Returns the supported GPIO inputs. |
IS_IO_CMD_GPIOS_GET_SUPPORTED_OUTPUTS |
Returns the supported GPIO outputs. |
IS_IO_CMD_GPIOS_GET_DIRECTION |
Returns the input/output mask of the GPIOs. |
IS_IO_CMD_GPIOS_SET_DIRECTION |
Set the GPIO on input/output: •IO_FLASH_MODE_GPIO_1: Sets GPIO 1 as outout. •IO_FLASH_MODE_GPIO_2: Sets GPIO 2 as output. |
IS_IO_CMD_GPIOS_GET_STATE |
Returns the state of the GPIO (High, Low). |
IS_IO_CMD_GPIOS_SET_STATE |
Sets the state of the GPIOs if they are defined as output (High, Low). |
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
}
}
}
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));
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));
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));