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 

Objekt in globaler Variable



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!

20.06.2012, 11:23
Beitrag #11

Stephan Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jun 2005

7 | 2011
2005
EN


Deutschland
RE: Objekt in globaler Variable
@macmarvin
Danke für den Hinweis, habe ich in diesem momentan nicht daran gedacht.
Könntest Du dich zu meiner Antwort auf dein erstes Post äußern?

Zitat:Vielen dank erst mal.
Vielleicht kurz beschrieben was mein Ziel ist, eventuell gibt es eine noch bessere Umsetzung.
Ich habe, sagen wir mal ein großes über die Jahre gewachsenes Programm.
Um am Prüfstand (nur exe installiert) sporadisch auftretende Fehler besser untersuchen zu können, will ich eine Klasse die mir einfach eine Log-Datei schreibt.

Ich habe mir das wie folgt vorgestellt:
Klasse log welche als Eigenschaft den Dateinamen der LogDatei hat, eine Init Funktion und viele verschiedene Schreibmethoden für String, Integer, Double, verschiedenen Arrays, ...
Damit ich das Klassen Objekt nicht durch die ganzen Vis von oben nach unten verdrahten muß, kam mir die Idee mit der globalen Variablen vom Objekt selbst, was wohl nicht ganz so gut ist.
Wenn ich jetzt DVR verwende und es richtig verstanden habe, würde ich mir in der Init Funktion eine Refrenz vom Objekt erstellen und diese in einer globalen Variablen ablegen und alle Member Funktionen der Klasse würden dann intern nur mit dieser Referenz arbeiten anstatt dem Objekt selbst.
Ist dies so richtig, bzw verständlich was ich meine?

FGV sagt mir leider gar nichts.
Nach kurzem googlen kann ich mir darunter etwas vorstellen jedoch ist mir nicht ganz klar wie ich dies hier einsetzen soll?
War gemeint das Objekt in dem FGV VI zu erstellen und für jeder Memberfunktion ein Case in der FGV zu erstellen?
Wenn dies der Fall ist kann ich mir das OOP doch gleich sparen, oder nicht?

Habe eigentlich schon vor dies in einer Klasse zu lösen. Allerdings nur wenn ich weiß ob dies mit der Referenz in der Klasse kein Problem ist.


@<<oenk>>
Danke für den Hinweis, werde mir GOOP mal anschauen.
Das mit der Treibergeschichte sehe ich auch so, und steht mir auch noch bevor hier sinnvoll neu zu strukturieren.
Das heißt deine Empfelung ist GOOP statt LVOOP.
Eventuell werde ich mich zu deiner, ich nenn es jetzt mal Treiberarchitektur noch melden.

MfG Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.06.2012, 12:23 (Dieser Beitrag wurde zuletzt bearbeitet: 20.06.2012 12:25 von BNT.)
Beitrag #12

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Objekt in globaler Variable
(20.06.2012 11:10 )Y-P schrieb:  Wenn du schon objekt orientiert programmieren kannst, dann empfehle ich GOOP. Das kommt der OOP IMHO am nächsten, da mit Objekten gearbeitet wird (by Reference). GOOP4 kapselt die Objekte in DVRs, was das ganze auch um einiges performanter macht als mit GOOP3 Klassen.

Mit DVR kann man sich aber auch üble Verklemmungen (Deadlocks) einhandlen! Also besser 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
22.06.2012, 13:51
Beitrag #13

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Rainbow RE: Objekt in globaler Variable
Deine LogKlasse ist ein klassisches Singleton Objekt. Das kann man zwar mit LVOOP auch machen aber ist meiner Meinung nach etwas Overkill. Die meist direkte Umsetzung eines Singleton Objekts ist meiner Ansicht nach eine FGV. Und solange die Anzahl der Methoden überschaubar bleibt ist es auch die einfachste Variante. Das Ganze kann man dann auch noch in Accessor VIs einpacken die die jeweiligen Methoden aufrufen. Wenn man das alles noch in eine LVLIB packt und nur die Accessor VIs als Public definiert kommt man einem LVOOP Singleton Objekt sehr nahe.

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
24.06.2012, 21:50
Beitrag #14

Kiesch Offline
LVF-Stammgast
***


Beiträge: 412
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Objekt in globaler Variable
Wenn ich mich recht erinner gabs dazu auch mal so nen Design Pattern PDF für LVOOP in dem Stephen Mercer auf verschiedene aus anderen OOP Sprachen eingegangen ist und umsetzungen in Labview angesprochen hat (unter anderem den Singleton). Hab dazu auch noch den Link hier gefunden, falls du noch weitere Anregungen für die Implementation suchst: https://decibel.ni.com/content/docs/DOC-13462

Gruß Kiesch

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
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
  VIP 2012: Einführung in das objekt-orientierte Programmieren mit LabVIEW BNT 8 20.031 28.10.2012 18:40
Letzter Beitrag: Y-P
  Zugriff von Objekt auf Objekt dessen Attribut es ist Kiesch 1 9.600 26.10.2011 10:28
Letzter Beitrag: Kiesch
  Objekt-Orientiertes Programmieren mit LV8.5 robertow 1 9.284 16.08.2008 23:10
Letzter Beitrag: eg

Gehe zu: