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 

LVOOP im Kommen!



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!

02.11.2010, 09:17
Beitrag #48

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
LVOOP im Kommen!
' schrieb:Die Anforderung Klassen übers Netz zu laden erklärt die Strings natürlich. Mir kam es nur "komisch" vor, immer diese Stringkonstante mit Classname auf die Factory und danach der Typecast per Classkonstante auf die Zielklasse. Naiv betrachtet frage ich mich da natürlich, warum das nicht per Dynamic Dispatch gemacht wird? (Da habe ich allerdings so ein Bauchgefühl, daß mir da wahrscheinlich noch der entscheidende Durchblick fehlt, warum es eben nicht damit geht)
Es muss immer dann ein Typecast auf eine Kindklasse gemacht werden, wenn das aufzurufende SubVI eben kein Dynamic Dispach VI ist. Ein Dynamic Dispach VI benutze ich allerdings nur dann, wenn ich in Kindklassen dieses VI auch wirklich überschreiben möchte. An einigen Stelle wird nur ein statischen SubVI als öffentliche Methode bereit gestellt und intern das Dynamik Dispatch VI aufgerufen. An diesen Stellen behalte ich mir ein Pre- oder Post-Processing vor. Der Anwender darf nur ein öffentliches VI aufrufen. Die Kindklassen überschreiben es.

' schrieb:Wo ich noch nicht dahinter gestiegen bin, warum sind im HGF_BaseClasses.lvlib:HGF_Factory.lvclass:classes.vi zuätzlich zum "Get LV Class Default Value.vi" noch Konstanten drinnen? Nur zur Vereinfachung des Aufrufs/Builds? In den Beispielen habe ich nach der Factory eigentlich immer die passenden Classkonstanten gesehen, also sind die verwendeten LVClasses eh schon geladen/statisch verlinkt?!?
In LabVIEW 8.2 funktionierte das "Get LV Class Default Value.vi" noch nicht im Executable. Das wurde erst später ermöglicht. Aber in der Tat, wenn man die Fabriken in die Build-Spezifikationen einbindet, hat man alle notwendigen Klassen in der gewünschten Version an Bord. Beim dynamischen Laden von Klassen muss man immer damit rechnen, dass darin Unsinn gemacht werden kann. Daher auch der Laufzeitcheck der Vertrauenswürdigkeit der Agenten-Klassenbibliotheken.
Die Fabriken in den Beispielen werden fast ausschließlich zur Illustration des Mechanismus benutz, um den Neuling an das Konzept zu gewöhnen. Ernst wird es in dem stationären Geräte-Agenten, wo das Objekt erst generisch in der Default-Transition der Zustandsmaschine erzeugt wird. Auch immer dann, wenn Objekte generisch aus einer Datenbank heraus erzeugt werden sollen oder die notwendigen Parameter z.B. über das Netzwerk gesendet werden, ist die Fabrik notwendig, um initialisierte LV-Objekte zu instanziieren.

' schrieb:Was mich auch noch wundert, daß du eine so große Klassenbibliothek ohne "Preserve Runtime Class" hinbekommen hast! Ist das noch ein Relikt aus pre LV2009 Zeiten? Ich vermute die ausprogrammierte "isFriend" Logik ebenso oder reicht da die LV-eigene Library/LvClass-Friends Logik nicht/noch nicht(/zu buggy?) aus?
Genau, auch hier wieder ein Relikt aus LV 8.2. "Preserve Runtime Class" kam erst später. Auch der Community-Scope wurde erst in LV 2009 bereitgestellt.

Es handelt sich also bei der HGF Klassenbibliothek tatsächlich um einen Prototypen, der die Machbarkeit demonstrieren sollte. Ich denke das ist ganz gut gelungen. Insbesondere, wenn ein Student mit einer Diplomarbeit beteiligt ist, der nur endliche Zeit zur Verfügung hat, kann man nicht mit jeder neuen LabVIEW Version ein Redesign veranlassen, wenn es nicht einen wirklich wichtigen Grund gibt.

Außerdem wollte ich das Projekt gern einmal veröffentlichen, um mich der kritischen Diskussion anderer LabVIEW Entwickler zu stellen. Z.B. ist der Entwurf für die VISA-Geräteklassen, HGF_VisaDevice.lvclass, zu kurz gegriffen. Stattdessen sollte die HGF_DeviceBase ein Interface-Objekt als Attribute erhalten, also als Composite entworfen werden. Da ich aber erst genau eine Beispielklase, HGF_NInstrSim.lvclass, implementiert habe, hält sich der Aufwand für das Redesign in Grenzen.

Es gibt noch mehr Stellen die des Redesign bedürfen, insbesondere die SharedVariable-Klassen stellen einen Kompromiss im Hinblick auf die kurze Zeit für die Diplomarbeit dar. Das werde ich demnächst in Angriff nehmen. Vielleicht erhalte ich ja Hilfe aus der Community?

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 


Nachrichten in diesem Thema
LVOOP im Kommen! - abrissbirne - 11.03.2010, 16:51
LVOOP im Kommen! - Y-P - 11.03.2010, 17:18
LVOOP im Kommen! - abrissbirne - 11.03.2010, 17:47
LVOOP im Kommen! - cb - 11.03.2010, 17:52
LVOOP im Kommen! - IchSelbst - 11.03.2010, 20:13
LVOOP im Kommen! - abrissbirne - 16.03.2010, 20:06
LVOOP im Kommen! - cb - 17.03.2010, 09:19
LVOOP im Kommen! - abrissbirne - 17.03.2010, 10:28
LVOOP im Kommen! - IchSelbst - 17.03.2010, 10:36
LVOOP im Kommen! - IchSelbst - 17.03.2010, 10:42
LVOOP im Kommen! - abrissbirne - 17.03.2010, 11:09
LVOOP im Kommen! - Y-P - 17.03.2010, 11:14
LVOOP im Kommen! - cb - 17.03.2010, 11:17
LVOOP im Kommen! - abrissbirne - 17.03.2010, 11:28
LVOOP im Kommen! - Y-P - 17.03.2010, 11:33
LVOOP im Kommen! - IchSelbst - 17.03.2010, 11:40
LVOOP im Kommen! - cb - 17.03.2010, 12:34
LVOOP im Kommen! - abrissbirne - 17.03.2010, 12:38
LVOOP im Kommen! - IchSelbst - 17.03.2010, 12:59
LVOOP im Kommen! - Y-P - 17.03.2010, 13:06
LVOOP im Kommen! - abrissbirne - 17.03.2010, 13:21
LVOOP im Kommen! - Y-P - 17.03.2010, 13:23
LVOOP im Kommen! - abrissbirne - 17.03.2010, 13:25
LVOOP im Kommen! - Y-P - 17.03.2010, 13:27
LVOOP im Kommen! - macmarvin - 18.03.2010, 23:12
LVOOP im Kommen! - cb - 20.03.2010, 09:02
LVOOP im Kommen! - macmarvin - 21.04.2010, 13:39
LVOOP im Kommen! - abrissbirne - 21.04.2010, 14:32
LVOOP im Kommen! - macmarvin - 23.04.2010, 08:48
LVOOP im Kommen! - IchSelbst - 24.04.2010, 10:42
LVOOP im Kommen! - eg - 24.04.2010, 12:15
LVOOP im Kommen! - IchSelbst - 24.04.2010, 13:30
LVOOP im Kommen! - eg - 24.04.2010, 13:50
LVOOP im Kommen! - abrissbirne - 24.04.2010, 15:32
LVOOP im Kommen! - macmarvin - 24.04.2010, 15:54
LVOOP im Kommen! - cb - 25.04.2010, 08:26
LVOOP im Kommen! - abrissbirne - 26.04.2010, 07:53
LVOOP im Kommen! - cb - 26.04.2010, 11:00
LVOOP im Kommen! - eg - 27.04.2010, 20:46
LVOOP im Kommen! - cb - 28.04.2010, 08:08
LVOOP im Kommen! - Frederik Berck - 01.06.2010, 15:17
LVOOP im Kommen! - BNT - 05.06.2010, 21:03
LVOOP im Kommen! - BNT - 29.10.2010, 14:16
LVOOP im Kommen! - rbliomera - 29.10.2010, 20:57
LVOOP im Kommen! - BNT - 30.10.2010, 10:33
LVOOP im Kommen! - rbliomera - 01.11.2010, 17:53
LVOOP im Kommen! - abrissbirne - 02.11.2010, 08:02
LVOOP im Kommen! - BNT - 02.11.2010 09:17
LVOOP im Kommen! - dlambert - 02.11.2010, 14:28
LVOOP im Kommen! - BNT - 02.11.2010, 16:50

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CS++ - A LVOOP Actor based Framework BNT 18 30.313 14.03.2015 14:26
Letzter Beitrag: BNT
  LVOOP und DAQmx - Resource ist reserviert Sundypha 2 10.413 13.08.2012 12:42
Letzter Beitrag: Sundypha
  Neuling, was bringen mir Klassen, LVOOP dali4u 6 18.379 24.02.2012 13:40
Letzter Beitrag: Kiesch
  LVOOP - wann wird Kopie erstellt? Kiesch 7 14.890 21.10.2011 14:23
Letzter Beitrag: Kiesch
Information LVOOP-Anfänger, Kommentar zu Programm Martin Heller 11 25.249 09.03.2011 14:32
Letzter Beitrag: Martin Heller
  LVOOP-Beispiel - Stimmt das so? Matze 12 26.576 29.06.2010 13:14
Letzter Beitrag: jg

Gehe zu: