Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95

Navigation: C: Programmierung > Funktionsbeschreibungen > is_DeviceFeature

IDS Linescan ("AOI-Merge-Modus") konfigurieren

Blättern Zurück Top Vor Mehr
Windows_Logo
Linux_Logo

USB 3.x

GigE

USB 3.x

GigE

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:

•IDS Linescan ("AOI-Merge-Modus") setzen, siehe uEye Cockpit: Vertical AOI Merge Mode.

hint_info

Der IDS Linescan ("AOI-Merge-Modus") wird derzeit von folgenden Modellen unterstützt:

•UI-300xSE

•UI-304xCP Rev. 2/UI-304xSE/UI-504xCP Rev. 2/UI-504xFA/UI-504xSE Rev. 4

•UI-306xCP Rev. 2/UI-306xSE

•UI-307xCP Rev. 2/UI-307xSE

•UI-308xCP Rev. 2/UI-308xSE

•UI-309xSE

•UI-313xCP Rev. 2/UI-513xCP Rev. 2/UI-513xFA/UI-513xSE Rev. 4

•UI-314xCP Rev. 2/UI-514xCP Rev. 2/UI-514xFA/UI-514xSE Rev. 4

•UI-316xCP Rev. 2.1

•UI-318xCP Rev. 2.1

•UI-320xSE

•UI-520xFA/UI-520xSE Rev. 4 (max. 7000 Zeilen)

•UI-324xCP Rev. 2/UI-324xLE/UI-324xML/UI-524xCP Rev. 2/UI-524xFA/UI-524xSE Rev. 4

•UI-325xCP Rev. 2/UI-325xLE/UI-325xML/UI-525xCP Rev. 2/UI-525xFA/UI-525xSE Rev. 4

•UI-326xCP Rev. 2/UI-326xSE/UI-526xCP Rev. 2/UI-526xFA/UI-526xSE Rev. 4

•UI-327xCP Rev. 2/UI-527xCP Rev. 2/UI-527xFA/UI-527xSE Rev. 4

•UI-328xCP Rev. 2/UI-328xSE/UI-528xCP Rev. 2/UI-528xFA/UI-528xSE Rev. 4

•UI-329xSE

•UI-529xFA/UI-529xSE Rev. 4 (max. 7000 Zeilen)

•UI-336xCP Rev. 2

•UI-337xCP Rev. 2/UI-337xSE/UI-537xCP Rev. 2

•UI-386xCP Rev. 2/UI-386xSE/UI-586xCP Rev. 2/UI-586xFA/UI-586xSE Rev. 4

•UI-388xCP Rev. 2/UI-388xSE/UI-588xCP Rev. 2/UI-588xFA/UI-588xSE Rev. 4

•UI-524xCP/UI-524xSE (nur im freilaufenden Modus)

•UI-526xCP (nur im freilaufenden Modus oder mit Software-Trigger)

•UI-536xCP (nur im freilaufenden Modus oder mit Software-Trigger)

•UI-537xCP (nur im freilaufenden Modus oder mit Software-Trigger)

Blitzen pro Zeile

Beachten Sie, dass abhängig von der eingestellten Zeilenrate der Optokoppler des Blitzausgangs zu langsam reagiert, wenn der Blitzausgang auf Blitz (high aktiv) oder Blitz (low aktiv) gesetzt ist. Verwenden Sie in diesem Fall einen GPIO als Blitzausgang, da diese keine Optokoppler besitzen.

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

Statusflags aus DEVICE_FEATURE_MODE_CAPS

IS_DEVICE_FEATURE_CAP_VERTICAL_AOI_MERGE

Spezieller AOI-Merge-Modus, der die Zeilen einer AOI zu einem neuen Bild zusammenfügt.

Beispiel: Die AOI-Merge-Modus-Höhe für einen monochromen Sensor ist 1 Zeile, das bedeutet, dass ein Bild sich aus 8000 "gemergten" AOIs zusammensetzt. Ist die AOI-Merge-Modus-Höhe dagegen 10 Zeilen, setzt sich das Bild aus 800 "gemergten" AOIs zusammen.

Beispiel 1

INT nVerticalAoiMergeMode = 0;
INT nVerticalAoiMergePosition = 0;
 
/* Read current vertical AOI merge mode */
INT nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_MODE,
                          (void*)&nVerticalAoiMergeMode, sizeof(nVerticalAoiMergeMode));
if (nRet == IS_SUCCESS)
{
if (nVerticalAoiMergeMode == IS_VERTICAL_AOI_MERGE_MODE_FREERUN)
{
  /* Read current AOI merge position */
  nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_POSITION,
                          (void*)&nVerticalAoiMergePosition, sizeof(nVerticalAoiMergePosition));
}
}
 
/* Set vertical AOI merge mode */
nVerticalAoiMergeMode = IS_VERTICAL_AOI_MERGE_MODE_FREERUN;
nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_SET_VERTICAL_AOI_MERGE_MODE,
                      (void*)&nVerticalAoiMergeMode, sizeof(nVerticalAoiMergeMode));
if (nRet == IS_SUCCESS)
{
/* Read and set new maximum AOI */
SENSORINFO pInfo;
nRet = is_GetSensorInfo(hCam, &pInfo);
INT maxWidth = pInfo.nMaxWidth;
INT maxHeight = pInfo.nMaxHeight;
 
IS_RECT rectAOI;
rectAOI.s32X = 0;
rectAOI.s32Y = 0;
rectAOI.s32Width = maxWidth;
rectAOI.s32Height = maxHeight;
nRet = is_AOI(hCam, IS_AOI_IMAGE_SET_AOI, (void*)&rectAOI, sizeof(rectAOI));
 
/*Set vertical AOI merge position */
INT nVerticalAoiMergePosition = 100;
nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_SET_VERTICAL_AOI_MERGE_POSITION,
                        (void*)&nVerticalAoiMergePosition, sizeof(nVerticalAoiMergePosition));
}

Beispiel 2

/* Get the default value for the vertical AOI merge mode height */
INT nHeight = 0;
INT nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT_DEFAULT,
                      (void*)&nHeight, sizeof(nHeight));
 
/* Get current value of the vertical AOI merge mode height */
nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT,
                      (void*)&nHeight, sizeof(nHeight));
 
/* Get the number of elements in the vertical AOI merge mode height list */
INT nVerticalAoiMergeModeHeightNumber;
nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT_NUMBER,
                      (void*)&nVerticalAoiMergeModeHeightNumber,
                      sizeof(nVerticalAoiMergeModeHeightNumber));
if (nRet == IS_SUCCESS)
{
UINT* pVerticalAoiMergeModeHeightList = new UINT[nVerticalAoiMergeModeHeightNumber];
 
/* Get the vertical AOI merge mode height list */
nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT_LIST,
                        (void*)pVerticalAoiMergeModeHeightList,
                        nVerticalAoiMergeModeHeightNumber * sizeof(UINT));
if (nRet == IS_SUCCESS)
{
  /* Set the maximum possible vertical AOI merge mode height depending on the current image height */
  UINT nMaxHeight = pVerticalAoiMergeModeHeightList[nVerticalAoiMergeModeHeightNumber - 1];
  nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_SET_VERTICAL_AOI_MERGE_HEIGHT,
                          (void*)&nMaxHeight, sizeof(nMaxHeight));
}
}

Beispiel 3

UINT nModes;
 
/* Get mask with all supported vertical AOI merge line modes */
INT nRet = is_DeviceFeature(hCam, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_MODE_SUPPORTED_LINE_MODES, (void*)&nModes, sizeof(nModes));
 
if (nRet == IS_SUCCESS)
{
  if (nModes & IS_VERTICAL_AOI_MERGE_MODE_LINE_FREERUN)
  {
      // freerun supported
  }
 
  if (nModes & IS_VERTICAL_AOI_MERGE_MODE_LINE_SOFTWARE_TRIGGER)
  {
      // software triggered supported
  }
 
  if (nModes & IS_VERTICAL_AOI_MERGE_MODE_LINE_GPIO_TRIGGER)
  {
      // GPIO triggered supported
  }    
}