Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95.1

Windows_Logo
Linux_Logo

USB 2.0

USB 3.x

GigE

USB 2.0

USB 3.x

GigE

Syntax

is_PersistentMemory(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)

Beschreibung

Mit der Funktion kann der Inhalt des nicht-flüchtigen Benutzerspeichers der Kamera gelesen oder geschrieben werden. In den Benutzerspeicher können neben den fest ab Werk hinterlegten Informationen zusätzliche Nutzerdaten hinterlegt werden, die nicht zyklisch sondern permanent gespeichert werden sollen, wie z. B. Kameraparameter für das Öffnen der Kamera, einmalig ermittelte, permanente Kalibrierdaten, usw.

hint_info

Beachten Sie, dass Bilder verloren gehen können, wenn Sie während einer Bildaufnahme in den nicht-flüchtigen Benutzerspeicher schreiben.

Abhängig vom Kameramodell steht neben dem bisherigen 64 Byte Speicher ein neuer zusätzlicher 64 kByte Speicher zur Verfügung, der ebenfalls für Nutzerdaten verwendet werden kann. Die folgende Übersicht zeigt, welche Kamerafamilien welche Benutzerspeicher unterstützen.

Kamerafamilie

Benutzerspeicher

uEye LE USB 3.1 Gen 1

64 Byte + 64 kB Extended Memory

uEye SE USB 3.1 Gen 1

64 Byte + 64 kB Extended Memory

USB 3 uEye CP Rev. 2

64 Byte + 64 kB Extended Memory

USB 3 uEye CP

64 Byte

USB 3 uEye LE

64 Byte + 64 kB Extended Memory

USB 3 uEye ML

64 Byte + 64 kB Extended Memory

GigE uEye CP Rev. 2

64 Byte

GigE uEye CP

64 Byte

GigE uEye FA

64 Byte

GigE uEye LE

64 Byte

GigE uEye RE PoE

64 Byte

GigE uEye SE Rev. 4

64 Byte

GigE uEye SE

64 Byte

USB uEye LE

64 Byte

USB uEye ML

64 Byte

USB uEye SE

64 Byte

USB uEye XS

64 Byte

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

hint_info

Hinweis: Durch die Funktion is_PersistentMemory() werden folgende Funktionen obsolet:

•is_ReadEEPROM()

•is_WriteEEPROM()

Siehe auch: Veraltete Funktionen

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

Inhalte der Struktur IS_PERSISTENT_MEMORY

UINT

u32Offset

Adress-Offset innerhalb des Bereichs

UINT

u32Count

Anzahl zu lesender/schreibender Zeichen

char*

pu8Memory

Zeiger auf den Buffer mit Daten, die gelesen/geschrieben werden sollen.

Rückgabewert

IS_INVALID_CAMERA_HANDLE

Ungültiges Kamera-Handle

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_NO_SUCCESS

Allgemeine Fehlermeldung

IS_NOT_SUPPORTED

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

IS_SUCCESS

Funktion erfolgreich

Beispiel

UINT nSize = 0;
nRet = is_PersistentMemory(hCam, IS_PERSISTENT_MEMORY_GET_SIZE_USER, &nSize, sizeof(nSize));
 
// 1 byte termination added to memory size
char* pMemWrite = new char[nSize + 1];
ZeroMemory(pMemWrite, nSize + 1);
 
// Fill the array with random numbers, except termination
for (int i = 0; i < (INT)nSize; i++)
{
pMemWrite [i] = rand();
}
 
// Initialize peristent memory structure. Write from offset 0 nSize bytes into memory.
IS_PERSISTENT_MEMORY nPersistentMemory;
ZeroMemory(&nPersistentMemory, sizeof(nPersistentMemory));
nPersistentMemory.pu8Memory = pMemWrite;
nPersistentMemory.u32Count = nSize;
nPersistentMemory.u32Offset = 0;
 
// Write memory
nRet = is_PersistentMemory(m_hCam, IS_PERSISTENT_MEMORY_WRITE_USER, &nPersistentMemory, sizeof(nPersistentMemory));
delete[]pMemWrite;
 
// Read memory back into new buffer
char* pMemRead = new char[nSize + 1];
ZeroMemory(pMemRead, nSize + 1);
nPersistentMemory.pu8Memory = pMemRead;
nRet = is_PersistentMemory(m_hCam, IS_PERSISTENT_MEMORY_READ_USER, &nPersistentMemory, sizeof(nPersistentMemory));
delete[]pMemRead;