uEye Kamera-Handbuch Version 4.92
![]() |
![]() |
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). Die Funktion ermöglicht die folgenden Einstellungen:
•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.).
![]() |
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.
![]() |
Konfiguration von GigE uEye Kameras unter Linux Unter Linux müssen GigE uEye Kameras mit einer persistenten IP-Adresse konfiguriert werden. |
Ü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 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. |
![]() |
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. |
Ü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. |
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 |
Ein interner Fehler ist 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. */
}
}
}
Haben Sie Verbesserungshinweise? Senden Sie ein kurzes
Feedback zu diesem Kapitel.
Vielen Dank!
Bei technischen Fragen wenden Sie sich bitte an Ihren lokalen Händler oder nutzen Sie das Support-Formular auf unserer Internetseite.