Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95.1

Windows_Logo
Linux_Logo

GigE

GigE

Syntax

INT is_IpConfig (INT iID, UEYE_ETH_ADDR_MAC mac, UINT nCommand, void* pParam, UINT cbSizeOfParam)

Beschreibung

Mit is_IpConfig() können Sie IP-Einstellungen von GigE uEye Kameras und zugehörigen GigE-Netzwerkadaptern konfigurieren (siehe IDS Kameramanager).

1.Ist für eine GigE Kamera eine persistente IP-Adresse konfiguriert, wird diese verwendet (wenn frei).

2.Ist für eine GigE Kamera keine persistente IP-Adresse konfiguriert, wird die IP-Adresse per DHCP bezogen (sofern DHCP aktiviert und ein DHCP-Server verfügbar ist).

3.Ist für eine GigE Kamera keine persistente IP-Adresse konfiguriert und DHCP nicht möglich, wird eine IP-Adresse aus dem IP-Adressbereich für die automatische IP-Konfiguration bezogen.

hint_info

Hinweis zum Funktionsaufruf

Die Funktion is_IpConfig() nimmt als Parameter iID kein Kamera-Handle entgegen. Der Aufruf muss, wie beschrieben, über die interne Device-ID erfolgen.

Setzen einer persistenten IP-Adresse bei GigE uEye Kameras

Wenn Sie eine persistente IP-Adresse setzen, wird diese dauerhaft im Kameraspeicher abgelegt. Die persistente IP-Adresse bleibt auch nach dem Trennen der Kamera von der Stromversorgung erhalten. Wird diese Kamera an einem anderen PC angeschlossen, muss sichergestellt werden, dass die persistente IP-Adresse dort ebenfalls gültig ist. Wenn die persistente IP-Adresse auf 0.0.0.0 gesetzt ist, ist die Kamera für die automatische Vergabe der IP-Adresse konfiguriert (s. u.).

hint_info

Hinweis zum Setzen von persistenen IP-Adressen

Sie können persistente IP-Adressen nur bei Kameras setzen, die nicht geöffnet sind (siehe auch Pairing).

Einstellen der automatischen IP-Konfiguration durch den Netzwerkadapter

Sie können angeschlossene GigE uEye Kameras auch so konfigurieren, dass diese die IP-Adresse automatisch vom Netzwerkadapter beziehen (siehe oben). Dabei muss ein geeigneter IP-Adressbereich für den Netzwerkadapter definiert werden. Beim Öffnen einer GigE uEye Kamera mit der IP-Adresse 0.0.0.0 weist der uEye Treiber der Kamera automatisch eine freie IP-Adresse zu.

hint_info

Hinweis zum Betrieb in einem DHCP-Netzwerk

Wenn im Netzwerk ein DHCP-Server läuft, ist die Netzwerkkarte so einzurichten, das der manuell vergebene Adressbereich des uEye-Treibers nicht im Bereich des DHCP liegt.

Beziehen der IP-Adresse von einem DHCP-Server

Um die DHCP-Funktionalität nutzen zu können, muss die Kamera mit Firmware-Version 4.95 oder höher betrieben werden. Bei einer Kamera mit einer Firmware-Version kleiner 4.95 muss zuerst die Kamera-Firmware aktualisiert werden, z.B. im IDS Kameramanager über die Schaltfläche "Starter Firmware Upload".

Ü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

iID

Device-ID der Kamera. Die Device-ID der Kamera erhalten Sie über die Funktion is_GetCameraList().

Übergeben Sie iID = -1, um die Kamera oder den Netzwerkadapter über die MAC-Adresse anzusprechen (empfohlen).

mac

Wenn iID = -1: Variable vom Typ UEYE_ETH_ADDR_MAC, die die MAC-Adresse der Kamera oder des Netzwerkadapters in hexadezimaler Form enthält.

pParam

Zeiger auf Funktionsparameter, der abhängig von nCommand unterschiedlich belegt ist.

cbSizeOfParam

Größe des Speicherbereichs in Byte, auf den pParam verweist.

Inhalt der Enumeration IPCONFIG_CAPABILITY_FLAGS

INT

IPCONFIG_CAP_PERSISTENT_IP_SUPPORTED

Setzen einer persistenten IP-Adresse wird unterstützt.

INT

IPCONFIG_CAP_AUTOCONFIG_IP_SUPPORTED

Automatische IP-Konfiguration durch den Netzwerkadapter wird unterstützt.

INT

IPCONFIG_CAP_DHCP_SUPPORTED

Das Beziehen der IP-Adresse von einem DHCP-Server wird unterstützt.

Inhalt der Struktur UEYE_ETH_ADDR_MAC

BYTE

abyOctet[6]

MAC-Adresse in hexadezimaler Form

Inhalt der Struktur UEYE_ETH_IP_CONFIGURATION

UEYE_ETH_ADDR_IPV4

ipAddress

IPv4-Adresse in hexadezimaler Form (little-endian)

Wenn Sie ipAddress = 0x00000000 (IP-Adresse 0.0.0.0) setzen, ist die Kamera für die automatische Vergabe der IP-Adresse konfiguriert

UEYE_ETH_ADDR_IPV4

ipSubnetmask

IPv4-Subnetz-Maske in hexadezimaler Form (little-endian)

BYTE

reserved[4]

reserviert

Inhalt der Struktur UEYE_ETH_AUTOCFG_IP_SETUP

UEYE_ETH_ADDR_IPV4

ipAutoCfgIpRangeBegin

Erste IPv4-Adresse des Autokonfigurations-Bereiches in hexadezimaler Form (little-endian)

UEYE_ETH_ADDR_IPV4

ipAutoCfgIpRangeEnd

Letzte IPv4-Adresse des Autokonfigurations-Bereiches in hexadezimaler Form (little-endian)

BYTE

reserved[4]

reserviert

Rückgabewerte

IS_ACCESS_VIOLATION

Es ist eine Zugriffsverletzung aufgetreten.

Z.B. kann auf die IP-Konfiguration einer Kamera nicht zugegriffen werden, wenn diese Boot-Boost-Modus läuft.

IS_INVALID_PARAMETER

Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich.

IS_IO_REQUEST_FAILED

Eine IO Anforderung des uEye Treibers schlug fehl. Eventuell passen die Versionen der Dateien ueye_api.dll (API) und ueye_usb.sys bzw. ueye_eth.sys (Treiber) nicht zusammen.

IS_NO_SUCCESS

Allgemeine Fehlermeldung

IS_NOT_SUPPORTED

Das verwendete Kameramodell unterstützt diese Funktion oder Einstellung nicht.

(Rückgabewert bei USB-2.0-Kameras)

IS_SUCCESS

Funktion erfolgreich

Beispiel

void example_is_IpConfig()
{
INT nRet = IS_SUCCESS;
INT iDeviceID = -1;
UEYE_ETH_ADDR_MAC devicemac = { 0, 0, 0, 0, 0, 0 };
 
if (I_know_the_device_id)
{
  /* Note that the device id may have changed after reconnection of the device. */
  iDeviceID = my_device_id;
}
else if (I_know_the_device_mac)
{
  memcpy(devicemac, my_device_mac, sizeof(UEYE_ETH_ADDR_MAC));
}
else if (I_know_the_device_serno)
{
  /* is_IpConfiguration currently supports device id or device mac for identification of
    * the device of interest.
    * In this case that I know some identifying detail other than device id or device mac,
    * I have to acquire the device list and look up the device of interest.
    * If found I use it's device id for addressing.
    */
 
  /* first query the number of cameras. */
  int nCams = 0;
  nRet = is_GetNumberOfCameras(&nCams);
  if (nRet != IS_SUCCESS)
  {
    /* error handling here. */
  }
 
  /* get the camera list */
  UEYE_CAMERA_LIST* pCamList = 0;
  if (nCams >= 1)
  {
    /* allocate memory for the camera count + the camera info's */
    pCamList = (UEYE_CAMERA_LIST*) new char[sizeof(DWORD) +
                (nCams * sizeof(UEYE_CAMERA_INFO))];
    pCamList->dwCount = nCams;
 
    /* query the camera list */
    nRet = is_GetCameraList(pCamList);
    if (nRet != IS_SUCCESS)
    {
      /* error handling here */
    }
  }
 
  /* scan the camera list for the device with the matching identifier. */
  if (pCamList != 0)
  {
    int i = 0;
    for (i = 0; i < (int)pCamList->dwCount; i++)
    {
      /* test for the identifier to match
        * Note: Here the serial number is used for identification. I could also
        * use the camera id or any other field of the UEYE_CAMERA_INFO datatype.
        */
      if (memcmp(pCamList->uci[i].SerNo, my_serial_number, sizeof(my_serial_number)) == 0)
      {
        /* found the camera with the matching identifier */
 
        /* copy device id */
        iDeviceID = pCamList->uci[i].dwDeviceID;
        /* stop searching */
        break;
      }
    }
  }
 
  /* cleanup */
  delete [] pCamList;
}
 
/* query ip config caps */
UINT uCaps = 0;
nRet = is_IpConfig(iDeviceID, devicemac, IPCONFIG_CMD_QUERY_CAPABILITIES,
                    &uCaps, sizeof(UINT));
if (nRet != IS_SUCCESS)
{
  /* error handling here. */
}
 
/* test for persistent ip feature to be supported */
if ((uCaps & IPCONFIG_CAP_PERSISTENT_IP_SUPPORTED) == IPCONFIG_CAP_PERSISTENT_IP_SUPPORTED)
{
  UEYE_ETH_IP_CONFIGURATION ipcfg;
 
  /* query the persistent ip setting of the device */
  memset(&ipcfg, 0, sizeof(UEYE_ETH_IP_CONFIGURATION));
  nRet = is_IpConfig(iDeviceID, devicemac, IPCONFIG_CMD_GET_PERSISTENT_IP,
                      &ipcfg, sizeof(UEYE_ETH_IP_CONFIGURATION));
  if (nRet != IS_SUCCESS)
  {
    /* error handling here. */
  }
 
  /* set the persistent ip of the device to 192.168.10.2/24 */
  memset(&ipcfg, 0, sizeof(UEYE_ETH_IP_CONFIGURATION));
  /* note: provide the addresses in hex format (little-edian) */
  ipcfg.ipAddress.dwAddr = 0x020aa8c0;
  ipcfg.ipSubnetmask.dwAddr = 0x00ffffff;
  nRet = is_IpConfig(iDeviceID, devicemac, IPCONFIG_CMD_SET_PERSISTENT_IP,
                      &ipcfg, sizeof(UEYE_ETH_IP_CONFIGURATION));
  if (nRet != IS_SUCCESS)
  {
    /* error handling here. */
  }
}
 
/* test for ip auto configuration feature to be supported */
if ((uCaps & IPCONFIG_CAP_AUTOCONFIG_IP_SUPPORTED) == IPCONFIG_CAP_AUTOCONFIG_IP_SUPPORTED)
{
  UEYE_ETH_AUTOCFG_IP_SETUP ipautocfg;
 
  /* query the ip auto configuration setting for the device */
  memset(&ipautocfg, 0, sizeof(UEYE_ETH_AUTOCFG_IP_SETUP));
  /* note: use IPCONFIG_CMD_GET_AUTOCONFIG_IP_BYDEVICE here as it takes device identifiers.
    * alternatively IPCONFIG_CMD_GET_AUTOCONFIG_IP can be used with a network adapter
    * identifier, i.e. adapter id or adapter mac.
    */
  nRet = is_IpConfig(iDeviceID, devicemac, IPCONFIG_CMD_GET_AUTOCONFIG_IP_BYDEVICE,
                      &ipautocfg, sizeof(UEYE_ETH_AUTOCFG_IP_SETUP));
  if (nRet != IS_SUCCESS)
  {
    /* error handling here. */
  }
 
  /* set the ip auto configuration range for the device to (192.168.10.15,192.168.10.35) */
  memset(&ipautocfg, 0, sizeof(UEYE_ETH_AUTOCFG_IP_SETUP));
  /* note: provide the addresses in hex format (little-endian) */
  ipautocfg.ipAutoCfgIpRangeBegin.dwAddr = 0x0f0aa8c0;
  ipautocfg.ipAutoCfgIpRangeEnd.dwAddr = 0x230aa8c0;
  /* note: use IPCONFIG_CMD_SET_AUTOCONFIG_IP_BYDEVICE here as it takes device identifiers.
    * alternatively IPCONFIG_CMD_SET_AUTOCONFIG_IP can be used with a network adapter
    * identifier, i.e. adapter id or adapter mac.
    */
  nRet = is_IpConfig(iDeviceID, devicemac, IPCONFIG_CMD_SET_AUTOCONFIG_IP_BYDEVICE,
                      &ipcfg, sizeof(UEYE_ETH_AUTOCFG_IP_SETUP));
  if (nRet != IS_SUCCESS)
  {
    /* error handling here. */
  }
}
}