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 

Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI



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!

26.06.2023, 15:18
Beitrag #1

TpunktN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 196
Registriert seit: Jul 2011

2021
2011
EN

70***
Deutschland
Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
Servus,

ich versuche mich an lvclass'en, stoße aber auf ein Problem, das bestimmt an der Unwissenheit liegt, ich habe aber auch nichts ergoogln können, hier fehlen mir wohl die richtigen Schlagworte. Hilfe zum Problem nehme ich gerne, aber auch einfach nur die richtigen Suchbegriffe, so ganz habe ich die ganzen Begriffe nicht verstanden/eingeprägt.
Ich habe diverse Videos und Tutorials angeschaut und im NI Forum gelesen, das ist jetzt mein erster eigener Versuch mit einem eigenen Problem.

Ich habe eine Klasse für alle internen Geräte (leere ctl), diese hat nur VIs die überschireben werden müssen. Diese Klasse habe ich aufgeteilt in flowtherms und UARTs, diese enthalten in der ctl den COM-Port.
Danach gehe ich auf die einzelnen Geräte, die enthalten mehr Informationen, zB Geräteversion, angeschlossenes Gerät,.. .
Alle UART-Geräte haben den gleichen Befehl den aktuellen Messwert auszugeben, deswegen habe ich hierfür gedacht ich ersetze das UART VI nicht, beim Testen hat jetzt aber die UART class gar nicht den vorher definierten COM-Port als Information aus der Geräte class, die beim Verbinden definiert wird, das ist Geräteabhängig, weil hier zB die Baudrate hinterlegt ist.

Wie wäre hier die richtige Vorgehensweise? Für alle ein Override VI zu machen fühlt sich umständlich an.
Muss ich die Klassen-ctl speziell definieren oder die Daten zusätzlich an die übergeordnete Klasse geben?

Habe mal alles in lv19_img angehängt. Ablauf im "Testing.vi" funktioniert nicht, wenn flowtherm NT ausgewählt ist, "Messwert lesen.vi" hat kein Override VI und sieht den COM-Port aus dem "verbinden.vi" nicht.

MfG Timo


Angehängte Datei(en)
0.0 .zip  WanS OOP LV19.zip (Größe: 1,24 MB / Downloads: 81)

"Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen."
Johann Wolfgang von Goethe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.06.2023, 09:47
Beitrag #2

MScz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: May 2020

2019,2020
2014
DE_EN



RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
Hallo TpunktN,

allgemein: Schau dir die Thematik lieber bei anderen Programmiersprachen an, das wird dort meiner Meinung nach viel viel besser erklärt. Der Transfer auf LV ist dann m.M.n deutlich einfacher als das mit LV zu lernen. Ein paar Talks in den Thema für LabVIEW sind leider nicht mehr online.

Zur Frage: Wenn ich das richtig im Kopf habe, musst du für die Klassen ein OverrideVI erstellen, selbst wenn diese dann wieder die Methode der Eltern mit ihren eigenen Daten aufrufen. Bin mir da aber gerade nicht zu 100% sicher.

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2023, 12:38
Beitrag #3

th13 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 171
Registriert seit: Oct 2013

2020 SP1
2013
EN


Deutschland
RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI

Akzeptierte Lösung

Ein Unbundle funktioniert nicht, da die Childklasse erstmal nur ihren Cluster kennt. Du kannst für deine Parent-Attribute get/set-Properties erstellen. Diese kannst du dann in den Funktionen der Childklasse nutzen. Ich habe ein Beispiel angehängt, da kannst du dir das in ClassB.doSomething anschauen.

Property erstellen:
- mit Assistent: Rechtsklick auf die Klasse -> New -> VI for Data Member Access
- oder selber machen: Rechtsklick auf die Klasse -> New -> VI from Dynamic Dispatch Template

https://labvolution.com/labview-getting-...ith-lvoop/
https://forums.ni.com/t5/LabVIEW/Read-wr...-p/3916645


Angehängte Datei(en)
0.0 .zip  LVOOP-Example-LV19.zip (Größe: 27,27 KB / Downloads: 58)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2023, 15:56
Beitrag #4

TpunktN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 196
Registriert seit: Jul 2011

2021
2011
EN

70***
Deutschland
RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
(27.06.2023 09:47 )MScz schrieb:  Schau dir die Thematik lieber bei anderen Programmiersprachen an, das wird dort meiner Meinung nach viel viel besser erklärt. Der Transfer auf LV ist dann m.M.n deutlich einfacher als das mit LV zu lernen.
Servus Max, sollte es wirklich einfacher sein eine neue Programmiersprache zu lernen um OOP in LV zu verstehen, welche ist denn gut? Big Grin
Ich bin kein Softwareentwickler und außer LabVIEW sind Siemens S7 oder Minecraft Redstone die "Sprachen" die ich noch "kann"..

Zitat:Wenn ich das richtig im Kopf habe, musst du für die Klassen ein OverrideVI erstellen, selbst wenn diese dann wieder die Methode der Eltern mit ihren eigenen Daten aufrufen.
Wäre voll nervig, dachte mir es sei viel übersichtlicher nur die zu erstellen, die auch anders sind. Aber das erklärt, warum beim Erstellen die VIs imemr automatisch angeschlossen da drin sind.

(27.06.2023 12:38 )th13 schrieb:  Du kannst für deine Parent-Attribute get/set-Properties erstellen. Diese kannst du dann in den Funktionen der Childklasse nutzen. Ich habe ein Beispiel angehängt..
Danke, das hilft fürs Verständnis. Da muss ich mir mal gedanken zu machen wie ich das Umsetze, spontan: kann ich diese set dann im verbinden.vi machen und damit sollte es dann funktionieren..

Danke schonmal, ich teste das sobald ich zeit finde.
Timo

"Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen."
Johann Wolfgang von Goethe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.06.2023, 18:12
Beitrag #5

BNT Offline
LVF-Freak
****


Beiträge: 740
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
Sieh Dir mal folgendes Tutorial an.
https://git.gsi.de/EE-LV/Libraries/VIP2012

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
28.06.2023, 08:47
Beitrag #6

TpunktN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 196
Registriert seit: Jul 2011

2021
2011
EN

70***
Deutschland
RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
Ich hab jetzt in jedes connect.vi auch die Daten über diese data member access an die parent class weitergegeben, so funktioniert es auf jedenfall, danke th13. Irgendwie bin ich davon ausgegangen, das diese Daten da automatisch eingetragen werden.

Danke Holger, habs mal überflogen, ein wenig verwirrend am Anfang, klärt sich dann aber im laufe. Werde mir das Tutorial mal genauer anschauen, vorerst scheint mein Problem gelöst zu sein.

Danke an alle
Timo

"Auch aus Steinen, die einem in den Weg gelegt werden, kann man Schönes bauen."
Johann Wolfgang von Goethe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.06.2023, 12:56
Beitrag #7

MScz Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 74
Registriert seit: May 2020

2019,2020
2014
DE_EN



RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
(27.06.2023 15:56 )TpunktN schrieb:  
(27.06.2023 09:47 )MScz schrieb:  Schau dir die Thematik lieber bei anderen Programmiersprachen an, das wird dort meiner Meinung nach viel viel besser erklärt. Der Transfer auf LV ist dann m.M.n deutlich einfacher als das mit LV zu lernen.
Servus Max, sollte es wirklich einfacher sein eine neue Programmiersprache zu lernen um OOP in LV zu verstehen, welche ist denn gut? Big Grin
Ich bin kein Softwareentwickler und außer LabVIEW sind Siemens S7 oder Minecraft Redstone die "Sprachen" die ich noch "kann"..

Nein nein, das meinte ich auch gar nicht. Aber wie es mit den Zugriffen/Vererbungen und so Sachen läuft kann man ja recht schnell raus lesen bzw. das lesen dessen erlernen, selber schreiben ist natürlich eine komplett andere Sache. Habe halt angefangen Python zu lernen und da hat es bei vielen Sachen für mich "klick" gemacht, einfach weil es m.M.n besser erklärt wurde. C++ lässt sich aber auch noch recht schnell lesen lernen. Die LV Sachen fand ich oft verwirrend und nicht Ziel führend, auch weil OOP in LV jetzt nicht gerade goldig gelöst ist.

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2023, 14:56
Beitrag #8

th13 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 171
Registriert seit: Oct 2013

2020 SP1
2013
EN


Deutschland
RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
(28.06.2023 12:56 )MScz schrieb:  Die LV Sachen fand ich oft verwirrend und nicht Ziel führend, auch weil OOP in LV jetzt nicht gerade goldig gelöst ist.
Zum Nachlesen: Gründe für das OOP-Design von LabVIEW

Und als Anmerkung: es gibt aus diesem Grund noch andere OOP-Frameworks:
GOOP
NI GDS
OpenGDS
G#
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2023, 16:25
Beitrag #9

BNT Offline
LVF-Freak
****


Beiträge: 740
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Auf Daten richtig zugreifen, Zugriff auf Childclass-Daten ohne Override VI
Und das CS-Framework nicht vergessen.
- https://wiki.gsi.de/CSframework/WebHome
- https://git.gsi.de/EE-LV/CS

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  fehlende Daten in Elternklasse nach Nutzung einer abgeleiteten Klasse kwakz 11 10.244 25.07.2017 11:35
Letzter Beitrag: kwakz
  Rückgabe der Daten einer Baumstruktur Piranhaschaf 4 7.132 13.09.2016 13:06
Letzter Beitrag: Piranhaschaf
  Anfänger, Daten einer Klasse im SubVi bzw. SubPanel dali4u 4 10.741 08.08.2013 12:31
Letzter Beitrag: Kiesch
  private Daten lesen und schreiben in separaten VI's Metzlmane 7 11.655 22.12.2011 09:03
Letzter Beitrag: Metzlmane
  Wie auf eine Instanz aus parallelen Prozessen zugreifen? IchSelbst 28 38.104 07.12.2010 08:25
Letzter Beitrag: unicorn
  Daten aus einer laufenden Schleife weiterreichen Matze 1 10.156 04.05.2010 19:07
Letzter Beitrag: IchSelbst

Gehe zu: