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 

GOOP <-> Klassisch



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!

15.07.2010, 09:53
Beitrag #1

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
GOOP <-> Klassisch
Hallo LabVIEW Enthusiasten

folgende Situation:
Ich habe ein PXI-System mit mehreren Einschubkarten. Manche davon kommen mehrmals vor.
Für jede Karte gibt es ein Treiber.vi (als ActionEngine implementiert, der nach dem initialisieren den DaqMx-Task in einen ShiftRegister speichert), ein ParallelerTask.vi (der das Treiber.vi aufruft und die Daten der Karte liest, basierend auf dem DaqMx-Task der jeweiligen Karte) und ein RingPuffer.vi (das die Daten vom ParallelerTask.vi zwischenspeichert). Das RingPuffer.vi wird in einem weiteren parallelen Task LeereRingPuffer.vi ausgelesen, um die Daten auf der HDD abzuspeichern. Das ParallelerTask.vi wird vom Hauptprogramm dynamisch, über VI-Server aufgerufen.
Momentan sind gleiche Karten zusammengefasst und die Daten sind gekoppelt. Jetzt möchte ich aber das gerne entkoppeln und das Treiber/RingPuffer Paar für jede Karte einzeln erstellen. Zum einen, um reduzierte Messgeräte (weniger Einschubkarten) schneller erstellen zu können und zum anderen nur die Karten anzusprechen, die für den momentanen Test benutzt werden.

Mit GOOP würde ich mir jetzt eine PXI-Class erstellen, die den parallelen Task und den RingPuffer als Methode implementiert. Von dieser Klasse könnte ich mir dann die n-Instanzen meiner gleichen Karte erstellen und hab mir einen Haufen Programmier- und vor allem Wartungsaufwand gespart. (das dynamische Aufrufen über VI-Server würde dann nicht mehr gehen, aber das steht auf einem anderen Blatt)

Wie würdet ihr das klassisch lösen, so dass es nur ein "RingPuffer.vi" und ein "ParallelerTask.vi" gibt, welches ich aber dynamisch, je nach Anzahl der vorhandenen Karten, laden und erstellen könnte. Das RingPuffer.vi muss dabei wie gesagt im ParallelerTask.vi und im LeereRingPuffer.vi aufgerufen werden können.
Beim OOP Ansatz kann ich mir die Klassen einfach mehrmals instanzieren und schon hab ich sie doppelt, dreifach, x-fach. Wie mach ich das aber klassisch?

Besten Dank für eure Ideen
Christian

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
GOOP <-> Klassisch - oenk - 15.07.2010 09:53
GOOP <-> Klassisch - IchSelbst - 15.07.2010, 10:39
GOOP <-> Klassisch - oenk - 15.07.2010, 10:44
GOOP <-> Klassisch - IchSelbst - 15.07.2010, 11:21
GOOP <-> Klassisch - abrissbirne - 15.07.2010, 11:48
GOOP <-> Klassisch - oenk - 15.07.2010, 12:00
GOOP <-> Klassisch - abrissbirne - 15.07.2010, 12:17
GOOP <-> Klassisch - IchSelbst - 15.07.2010, 12:50
GOOP <-> Klassisch - oenk - 15.07.2010, 12:56
GOOP <-> Klassisch - abrissbirne - 15.07.2010, 13:00
GOOP <-> Klassisch - oenk - 21.07.2010, 16:08

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Problem bei häufigem Aufruf von Open Goop Klasse Stargrove1 2 10.636 20.01.2010 12:44
Letzter Beitrag: Stargrove1
  GOOP eg 1 9.180 02.02.2007 23:02
Letzter Beitrag: eg
  GOOP Hilfe Apu 4 10.122 21.07.2006 14:55
Letzter Beitrag: eg

Gehe zu: