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 

Mehrere Instanzen einer Klasse in einem Projekt anlegen



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!

08.12.2023, 11:06
Beitrag #1

Michael5 Offline
LVF-Anwender
*


Beiträge: 45
Registriert seit: Jul 2006

7.0 bis Developer Suite 2012 DS2
2003
DE

72074
Deutschland
Mehrere Instanzen einer Klasse in einem Projekt anlegen
Guten Morgen zusammen,
ich möchte für eine unserer neuen Anwendungen die OOP-Programmierung in LabVIEW anwenden.
Zu der Anwendung ist zu sagen, dass ich einen Bus habe, der mit einer beliebigen Anzahl von Steckplätzen ausgestattet sein kann.
In den Steckplätzen können mehrere identische, aber auch unterschiedliche Baugruppen stecken.
Der Bus hat ein Interface und steuert die Steckplätze über eine Schnittstelle an.

Nun ist meine Idee für jeden Baugruppen Typ eine Klasse zu schreiben, die die Klasse Steckplatz-Schnittstelle erbt.
Jetzt können aber von einem Baugruppen-Typ mehrere in diesem BUS stecken. Demzufolge sollte ich dann von dieser Baugruppen Klasse mehrere Instanzen anlegen.
Leider verstehe ich die Herangehensweise nicht.
Wenn ich in meiner Ereignisschleife oder in meiner State-Maschine auf die VIs oder Eigenschaften dieser Klasse zugreife, gehen die Daten verloren.
Ganz schlimm wird es, wenn die Instanzen der Baugruppen im Projekt in mehreren Parallelschleifen laufen.

Kann mir jemand ein Tutorial empfehlen, wo die Herangehensweise, mehrere Instanzen einer LabVIEW Klasse in einem LabVIEW Projekt anlegen und anwenden, gut beschrieben wird?

Liebe Grüße aus Tübingen
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.12.2023, 16:07
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Mehrere Instanzen einer Klasse in einem Projekt anlegen
Hallo Michael,

Zitat:Nun ist meine Idee für jeden Baugruppen Typ eine Klasse zu schreiben, die die Klasse Steckplatz-Schnittstelle erbt.
Jetzt können aber von einem Baugruppen-Typ mehrere in diesem BUS stecken. Demzufolge sollte ich dann von dieser Baugruppen Klasse mehrere Instanzen anlegen.
Sollten deine Baugruppen nicht Kinder von der Klasse Steckplatz sein?
Also ein Bus mit mehreren Steckplätzen (=Objekte von Steckplatz) und jede Baugruppe ist ein Child von Steckplatz.
Wenn du jetzt mehrere Steckplätze verwalten willst, benötigst du ein Array of "Steckplatz"-Objekten. Und da jede Baugruppe von Steckplatz vererbt ist, kannst du die "Steckplatz"-Objekte auch durch "Baugruppen"-Objekte ersetzen…

Zitat:Herangehensweise, mehrere Instanzen einer LabVIEW Klasse in einem LabVIEW Projekt anlegen und anwenden
Wenn du mehrere "Instanzen" eines Klassenobjektes benötigst, dann musst du ein Array of Objects erstellen…
Genauso wie du sonst auch mehrere Elemente eines Datentyps in einem Array verwaltest!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2023, 23:19 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2023 23:20 von BNT.)
Beitrag #3

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Mehrere Instanzen einer Klasse in einem Projekt anlegen
Hi Michael
Sieh Dir mal folgenden Thread an.
https://www.labviewforum.de/Thread-NI-Ac...infuehrung
und folgende Repositories:
https://git.gsi.de/EE-LV/Libraries/VIP2012
und
https://git.gsi.de/EE-LV/Libraries/UPN-Calculator
und
https://git.gsi.de/EE-LV/EE-HB/AF-HelloWorld

Die Repos auf github.com werden nicht weiter gepflegt.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2023, 10:19
Beitrag #4

Michael5 Offline
LVF-Anwender
*


Beiträge: 45
Registriert seit: Jul 2006

7.0 bis Developer Suite 2012 DS2
2003
DE

72074
Deutschland
RE: Mehrere Instanzen einer Klasse in einem Projekt anlegen
Hallo Holger, hallo GerdW,
Danke für die Antworten.

Entschuldigung, dass ich jetzt erst antworte. Ich bin gerade ein wenig angeschlagen und musste ein wenig pausieren.

Der Vorschlag von Gerd, dass ich Baugruppen anlege, die von der Klasse Steckplatz erben ist sehr gut. Das ist für die objektorientierte Herangehensweise der bessere Programmierstil.
Die Steckplatz Klassen dann in einem Array bündeln macht auch Sinn.

Die Beispiele von Holger muss ich mir noch genauer anschauen. Die Herangehensweise in den Beispielen ist schon LabVIEW Oberliga. Da brauche ich ein bisschen, um die Zusammenhänge zu verstehen. Aus der Dokumentation konnte ich aber entnehmen, dass es nicht geht, mit Referenzen (Pointer) auf Klassen in unterschiedlichen Schleifen, in einem LabVIEW Projekt, zu arbeiten. So wie ich das bis jetzt verstanden habe, komme ich um Queues nicht herum.

Gruß
Michael
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2023, 11:42 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2023 11:43 von BNT.)
Beitrag #5

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Mehrere Instanzen einer Klasse in einem Projekt anlegen
"Referenzen (Pointer) auf Klassen in unterschiedlichen Schleifen"

Benutze eine Queue mit der Größe 1 für den Austausch von Objekten zwischen den Schleifen. Damit ist auch gleich der wechselseitige Ausschluss für den Zugriff auf das Objekt gewährleistet.

Datenfluss!

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.12.2023, 12:31
Beitrag #6

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Mehrere Instanzen einer Klasse in einem Projekt anlegen
Es git auch das sogenannte Singleton Design Pattern.

Siehe: https://git.gsi.de/EE-LV/EE-HB/HGF_Lib/-...gnPatterns
in https://git.gsi.de/EE-LV/EE-HB/HGF_Lib

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  fehlende Daten in Elternklasse nach Nutzung einer abgeleiteten Klasse kwakz 11 13.287 25.07.2017 11:35
Letzter Beitrag: kwakz
  Anfänger, Daten einer Klasse im SubVi bzw. SubPanel dali4u 4 12.177 08.08.2013 12:31
Letzter Beitrag: Kiesch
  Problem bei häufigem Aufruf von Open Goop Klasse Stargrove1 2 11.208 20.01.2010 12:44
Letzter Beitrag: Stargrove1

Gehe zu: