![]() |
![]() |
|---|---|
USB 3.x |
USB 3.x |
Syntax
INT is_DeviceFeature (HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)
Beschreibung
Mit is_DeviceFeature() können kameraspezifische Funktionen einiger uEye-Modelle konfiguriert werden:
•Beim Modell UI-325x: Steuern des Multi-Integration-Modus, siehe uEye Cockpit: Shutter. Der Multi-Integration-Modus kann nur im getriggerten Betrieb verwendet werden.
|
Hinweis: Wechseln Sie mit is_SetExternalTrigger() in den Trigger-Modus, bevor Sie den Multi-Integration-Modus aktivieren. |
Ü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.
|
Hinweis: Wenn Sie is_ResetToDefault() verwenden, um die Kamera auf die Standardwerte zurückzusetzen, wird der Multi-Integration-Modus deaktiviert. Auch wird dieser Modus nicht in der uEye Parameterdatei (ini-Datei) für die Kamera gespeichert. |
Ü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. |
Statusflags aus DEVICE_FEATURE_MODE_CAPS
IS_DEVICE_FEATURE_CAP_MULTI_INTEGRATION |
Der Multi-Integration-Modus wird unterstützt. |
Inhalte der Struktur IS_MULTI_INTEGRATION_CYCLES
double |
dblIntegration_ms |
Pulsdauer in Millisekunden |
double |
dblPause_ms |
Pausenzeit in Millisekunden |
Inhalte der Struktur IS_MULTI_INTEGRATION_SCOPE
double |
dblMinIntegration_ms |
Minimale Pulsdauer (Belichtungszeit) in Millisekunden |
double |
dblMaxIntegration_ms |
Maximale Pulsdauer (Belichtungszeit) in Millisekunden |
double |
dblIntegrationGranularity_ms |
Schrittweite für die Pulsdauer (Belichtungszeit) in Millisekunden |
double |
dblMinPause_ms |
Minimalen Pausenzeit in Millisekunden |
double |
dblMaxPause_ms |
Maximale Pausenzeit in Millisekunden |
double |
dblPauseGranularity_ms |
Schrittweite für die Pausenzeit in Millisekunden |
double |
dblMinCycle_ms |
Minimale Zyklusdauer (Pulsdauer und Pausenzeit) in Millisekunden |
double |
dblMaxCycle_ms |
Maximale Zyklusdauer (Pulsdauer und Pausenzeit) in Millisekunden |
double |
dblCycleGranularity_ms |
Schrittweite für den Zyklus in Millisekunden |
double |
dblMinTriggerCycle_ms |
Minimale Dauer des Triggerzyklus (erster Zyklus = Triggerpuls + Triggerpause) in Millisekunden |
double |
dblMinTriggerDuration_ms |
Minimale Dauer des ersten Pulses (Triggerpuls) in Millisekunden |
UINT |
nMinNumberOfCycles |
Minimale Anzahl an Wiederholungen |
UINT |
nMaxNumberOfCycles |
Maximale Anzahl an Wiederholungen |
BYTE |
m_bReserved[32] |
reserviert |
/* 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));