10.08.2009, 14:39
(Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2009 14:39 von eg.)
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Objektorientiertes Programmieren mit LV
Klasse erstellen in der alle Bilderinfos abgespeichert sind und na ja, wie immer halt ein Schieberegister, eine While-Schleife mit Event-Struktur. Abhängig vom Event das eine oder das andere VI aufrufen. Aber wie denn sonst?
|
|
|
10.08.2009, 14:48
(Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2009 15:26 von eg.)
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Objektorientiertes Programmieren mit LV
@ Y-P, das ist es genau. LVOOP-Klasse ist nichts anderes als Cluster, nur ist es ein wenig bequemer zu benutzen.
@ abrissbirne, ich sage ja nicht, dass man es nicht initialisieren kann, ich sage nur dass FGVs mit Reintrance und Instanziirung Probleme haben. Es kann also schnell passieren, dass wenn man nicht alles im Griff hat, können unerwartete Probleme auftreten.
Bleiben wir bei dem Beispiel mit Bilder. Im Prinzip ist es ein 2D-Array. Jetzt will man zum Beispiel das eine Bild schwarz und das andere weiß machen. Mit FGVs macht man entweder pro Bild ein FGV oder man nimmt ein Array aus Bilder oder auch man macht zwei Schieberegister in einer FGV.
Mit LVOOP (oder sagen wir mal einfach ohne FGVs) hat man eine Klasse und zwei Objekte. Das entsprechende VI zum Füllen mit der Farbe hat man nur ein Mal implementiert. Man kann ja dieses VI für das eine und für das andere Bild aufrufen. Dabei bleibt der Code übersichtlich und man hat nicht eine Funktion zwei mal zu implementieren.
|
|
|
10.08.2009, 15:12
|
|
|
10.08.2009, 15:25
|
IchSelbst
LVF-Guru
Beiträge: 3.702
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Objektorientiertes Programmieren mit LV
' schrieb:LV-Klassen erwecken den Eindruck eigentlich nichts anderes als eine Sammlung von SubVI zu sein. Eigentlich könnte man alles zu Fuß ohne Klasse erledigen. Dem ist nicht ganz so: es gibt halt die Vererbung und die Kapselung.
Und weil ich Vererbung und zwangsweise Kapselung bisher nicht brauche, sehe ich keinen Grund vieles nicht zu Fuß zu machen.
Zitat:Genauso könnte man in textbasierten Sprachen objektorientiert Programmieren indem nur mit bestimmten Funktionen auf bestimmte Daten zurückgreift und niemals die 'Daten direkt benutzt.
Zitat:Alles eine Frage der Disziplin!?
Das war es schon vor 25 Jahren, das wird es auch noch in 25 Jahren sein.
Zitat:Objektorientierte Programmierung ist aber nicht nur eine Frage des Stils, wobei die Klassen-Objekte bestimmte Programmierweisen erfordern (in LV als auch in Text) und gleichzeitig die Arbeitsweise erleichtern.
Letzteres ist auf jeden Fall ein Grund, LVOOP doch zu machen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
10.08.2009, 15:52
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Objektorientiertes Programmieren mit LV
Wenn es nun so ist, dann würde ich es aus dem RAM in eine oder mehrere Dateien auslagern.
|
|
|
10.08.2009, 15:54
(Dieser Beitrag wurde zuletzt bearbeitet: 10.08.2009 15:55 von Y-P.)
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Objektorientiertes Programmieren mit LV
Bin mal gespannt, wann der LabVIEW-Advanced II - Lehrgang endlich mal kommt. Dort soll es nämlich genau um LVOOP gehen. Vielleicht kann ich dann auch von LVOOP überzeugt werden (wenn ich verstehe, was das Ganze soll und wie es funktioniert).
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
10.08.2009, 16:08
|
|
|
10.08.2009, 16:15
|
IchSelbst
LVF-Guru
Beiträge: 3.702
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Objektorientiertes Programmieren mit LV
' schrieb:Eine einfache Multiplikation für mein Bildbeispiel zeigt, dass wir es mit 747 MB zu tun haben.
Die möchte bestimmt niemand als Datenfluss von VI zu VI schicken. Und es wird auch klar, dass man davon in der Regel nur ein Objekt gleichzeitig im Speicher hat. Ich gehe mal von einer üblichen PC-Konfiguration aus.
Wenn es als Datenfluss nicht geht, scheidet eine Klasse zunächst aus.
Kann ich auch von folgendem ausgehen: Daten, die in einer Klasse liegen - ob als private oder public - werden nicht mehr (so oft) kopiert?
Wenn ich also ein größerer 2D-Array habe, das bearbeitet werden muss, dann wird das ja mit normalem DF ständig (naja sagen wir sehr oft) kopiert. Was viel Arbeit macht. Ich könnte mir durchaus vorstellen, dass, liege dieses Array als private in einer Instanz, erheblich Kopierarbeit gespart werden könnte.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
| |