INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Frage zu CIN (Bezüglich Semaphoren-Implementierung)



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

30.04.2010, 15:51 (Dieser Beitrag wurde zuletzt bearbeitet: 30.04.2010 15:53 von rolfk.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.317
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Frage zu CIN (Bezüglich Semaphoren-Implementierung)
Also erstens: Warum willst Du noch CINs verwenden? Das ist eine Legacy-Technologie und wird in zukünftigen neuen LabVIEW Platformen wohl nicht mehr unterstützt. Eventuel haben schon die aktuelen 64 Bit Platformen keinen Support für CINs mehr,

Zweitens das was Du siehst hat LabVIEW grundsätzlich für alles was eine Refnum hat. Ausser bei VISA in den Options ist das auch nicht auschaltbar.

Die Funktionalität die LabVIEW dafür intern verwendet ist zwar exportiert aber vollkommen undokumentiert. Gebrauch davon ist absolut auf eigenes Risiko und kann in jeder neuen LabVIEW Version plötzlich nicht mehr funktionieren.

Die Funktion die Du dazu in Deinem C Code aufrufen musst heisst:

typedef int32 (*CleanupProcPtr)(UPtr data);
TH_REENTRANT int32 RTSetCleanupProc(CleanupProcPtr proc, UPtr data, int32 mode);

proc ist eine Funktion die Du implementierst und die das Objekt sauber dealloziert, data ist Dein Objekt, mode ist 0 um die proc für das Objekt zu deinstallieren, etwa wenn Du das Objekt ordnungsgemäss schliesst, und grösser als 0 um sie zu installieren. Dabei bedeutet 1 dass Deine proc für das Dataobjekt aufgerufen wird wenn LabVIEW abgeschlossen wird und 2 bedeutet dass sie aufgerufen wird wenn das aktuelle Top-Level VI idle wird (was die default Operation für alle LabVIEW refnums ist).

Wie Du das für Deinen Code anwendest magst Du selber aussuchen und rumprobieren. Die Informationen hast Du, aber mache Dich darauf gefasst dass Du noch was debuggen musst.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Frage zu CIN (Bezüglich Semaphoren-Implementierung) - rolfk - 30.04.2010 15:51

Gehe zu: