USB 3.x |
USB 3.x |
Syntax
INT is_DeviceFeature (HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)
Description
Using is_DeviceFeature() you can configure special camera functions provided by specific uEye models:
•On UI-325x models: Control the multi integration mode, see uEye Cockpit: Shutter. The multi integration mode can only be used in trigger mode.
Note: Use is_SetExternalTrigger() to switch into trigger mode before you activate the multi integration mode. |
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.
Note: If you use is_ResetToDefault() to reset the cameras to the default values, the multi integration mode will be disabled. Also the multi integration mode is not saved in the uEye parameter file (ini file) for the specific camera. |
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. |
Status flags from DEVICE_FEATURE_MODE_CAPS
IS_DEVICE_FEATURE_CAP_MULTI_INTEGRATION |
The multi integration mode is supported. |
Contents of the IS_MULTI_INTEGRATION_CYCLES structure
double |
dblIntegration_ms |
Pulse (exposure time) in milliseconds |
double |
dblPause_ms |
Pause in milliseconds |
Contents of the IS_MULTI_INTEGRATION_SCOPE structure
double |
dblMinIntegration_ms |
Minimum pulse duration (exposure time) in milliseconds |
double |
dblMaxIntegration_ms |
Maximum pulse duration (exposure time) in milliseconds |
double |
dblIntegrationGranularity_ms |
Pulse duration (exposure time) granularity in milliseconds |
double |
dblMinPause_ms |
Minimum pause duration in milliseconds |
double |
dblMaxPause_ms |
Maximum pause duration in milliseconds |
double |
dblPauseGranularity_ms |
Pause duration granularity in milliseconds |
double |
dblMinCycle_ms |
Minimum cycle duration (pulse and pause duration) in milliseconds |
double |
dblMaxCycle_ms |
Maximum cycle duration (pulse and pause duration) in milliseconds |
double |
dblCycleGranularity_ms |
Cycle granularity in milliseconds |
double |
dblMinTriggerCycle_ms |
Minimum duration of trigger cycle (first cycle = trigger pulse + tripper pause) in milliseconds |
double |
dblMinTriggerDuration_ms |
Minimum duration of the first pulse (trigger pulse) in milliseconds |
UINT |
nMinNumberOfCycles |
Minimum number of cycles |
UINT |
nMaxNumberOfCycles |
Maximum number of cycles |
BYTE |
m_bReserved[32] |
reserved |
/* Switch into trigger mode before activating multi integration mode */
INT nRet = is_SetExternalTrigger(m_hCam, IS_SET_TRIGGER_SOFTWARE);
/* Get the scope for the multi integration params */
IS_MULTI_INTEGRATION_SCOPE scopeMIM;
nRet = is_DeviceFeature(m_hCam, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_SCOPE, (void*)&scopeMIM, sizeof(scopeMIM));
if (nRet == IS_SUCCESS)
{
double dblMinIntegration_ms = scopeMIM.dblMinIntegration_ms;
...
}
/* Init the multi integration params */
IS_MULTI_INTEGRATION_CYCLES * mimCycles =
new IS_MULTI_INTEGRATION_CYCLES[scopeMIM.nMaxNumberOfCycles](); /* Always use maximum available number */
mimCycles[0].dblIntegration_ms = 0.0010; /* 1 us high */
mimCycles[0].dblPause_ms = 0.0150; /* 15 us pause */
mimCycles[1] ...
...
/* Set the multi integration params */
nRet = is_DeviceFeature(m_hCam, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_SET_PARAMS, (void*)mimCycles, m_sScope.nMaxNumberOfCycles * sizeof(IS_MULTI_INTEGRATION_CYCLES));
/* Read back the multi integration params */
nRet = is_DeviceFeature(m_hCam, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_PARAMS, (void*)mimCycles, m_sScope.nMaxNumberOfCycles * sizeof(IS_MULTI_INTEGRATION_CYCLES));
/* Get the default value for the multi integration mode */
UINT u32Mode;
nRet = is_DeviceFeature(m_hCam, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_MODE_DEFAULT, (void*)&u32Mode, sizeof(u32Mode));
/* Get the current multi integration mode */
nRet = is_DeviceFeature(m_hCam, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_MODE, (void*)&u32Mode, sizeof(u32Mode));
/* Set a new mode */
u32Mode = MULTI_INTEGRATION_MODE_SOFTWARE;
nRet = is_DeviceFeature(m_hCam, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_SET_MODE, (void*)&u32Mode, sizeof(u32Mode));