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 

Queues mit FGVs in Polymorphen 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!

08.05.2014, 21:58 (Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2014 22:09 von jg.)
Beitrag #1

Andre_A Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Nov 2012

2013
2011
EN


Deutschland
Queues mit FGVs in Polymorphen VI
Hallo Zusammen.

Habe ein kleines Programm zu Testzwecken mit zwei Qeues und einem Eventhandler gebastelt,
das auch soweit funktioniert. Um das Blockdiagramm etwas übersichtlicher zu gestalten, habe ich die
Qeue-Operationen in je einem Sub-Vi als FGV ausgelagert. Das kann ich dann über ein Enum
mit Init, Set und Get aufrufen, was nichts anderes als obtain, en- und deqeue macht und die Qeue-Ref
in eine FGV speichert. Läuft auch.

Die Qeues sind jeweils Type-Def-Structs mit je einem Type-Def-Enum (als Message-Header) und einem
Variant (als Message-Data), pro Qeue jeweils anders, da die beiden Qeues ja was unterschiedliches machen sollen.
So weit, so gut.

Als nächstes wollte ich, falls zukünftig weitere Qeues kommen sollten, das ganze noch dynamischer machen
und habe die beiden Sub-Vis in ein Polymorphes gepackt. Diese werden dann mit dem entsprechenden Type-Def
eindeutig zugeordnet beim Aufrufen des Polymorphen.

Hier funktioniert das ganze nicht mehr, was mich überrascht hat. Das Poly-Vi wählt doch "auch nur" zwischen
den beiden Vis, die ich vorher einzeln hatte, - und die liefen -, oder? Oder haut die Speicheradressierung nicht mehr
hin für die Verwendung einer FGV?

Ich hoffe, das Problem ist klar geworden, ansonsten gerne nachfragen.
Für Ideen, Erklärungen und weiteres wäre ich sehr dankbar.

Gruß,
Andre
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.05.2014, 07:42
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Queues mit FGVs in Polymorphen VI
Hallo Andre,

wenn beide FGVs den gleichen Datentyp (Cluster aus Enum und Variant) erhalten - wie soll das PolyVI sie dann unterscheiden?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.05.2014, 22:47
Beitrag #3

Andre_A Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Nov 2012

2013
2011
EN


Deutschland
RE: Queues mit FGVs in Polymorphen VI
Hallo,

Haben Sie ja nicht.
Sind zwar beide Enums, jede aber als eigene Typedef., wenn man die jeweils verkehrt anschließt kommt auch eine
Fehlermeldung, dass die Typen nicht passen. Das Poly-Vi unterscheidet richtig.
Wie gesagt, es funktioniert bei beiden VIs seperat genommen gleichzeitig in einer Main.
Sie sind identisch aufgebaut, jedoch unterschiedliche Typedefs vorrausgesetzt.

Es haut erst nicht mehr hin, wenn sie in ein Poly gepackt werden.
Ich poste morgen mal einen Ausschnitt daraus, der das ganze auf das Problem reduziert.

Gruß,
Andre
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2014, 08:50 (Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2014 08:53 von cb.)
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Queues mit FGVs in Polymorphen VI
mit Polymorphen VIs geht das nicht, ausserdem müsstest du für jede neue "Instanz" (=neues Enum-Typedef) das entsprechende VI neu programmieren und in das polymorphe VI einbinden. Das bringt dann zwar etwas vorteil beim Programmieren, vorallem wenn man viel mit Copy&Paste arbeitet, hilft aber nicht wirklich viel ...

Das Mittel der Wahl wäre eigentlich LVOOP. Ich hab mich mit der genau der gleichen Problemstellung schon seit LV 8.0 rumgeschlagen, weil ich auch sehr viel mit den von dir beschriebenen Strukturen mache. Ein Problem ist dann aber selbst bei LVOOP, dass die Elemente des Klassen-Clusters "protected" sind, d.h. du kannst den Cluster ausserhalb der Klasse nicht aufdröseln, was im Endeffekt dazu führt dass du dann doch wieder für jedes typedefed Enum ein eigenes VI erzeugen musst, weil ja das Control (-Terminal) im VI an das Typedef gebunden ist und nicht durch einen dynamic dispatch Mechanismus in das "richtige" Typedef umgewandelt wird.

Im Endeffekt läuft es darauf hinaus, dass man mit LVOOP zwar eine Standard-Queued-Statemachine-Queue-Klasse (watt ein Wort Big Grin ...) entwickeln kann, aufgrund der internen Beschränkungen von LVOOP kann man sie dann aber wiederum nicht nutzen (Stand LabVIEW 2011 SP 1 ...). Und genau das ist der Grund warum ich immer sage: LVOOP ist eigentlich nur ein Marketing-Gag, wirklich viel bringen tut es nicht - zumindest nicht so lang man solche Sachen wie oben beschrieben nicht damit lösen kann und sich Basis-Klassen schreiben kann, die man dann auch wirklich über jahre hinweg in jedem Projekt nutzen kann ...

Leider häng ich gerade noch auf LV2011SP1 fest (aus diversen Gründen) und da schafft man es nicht mit LVOOP eine Basis-Statemachine-Queue-Klasse aufzubauen, die dann auf eine abgeleitete Klasse reagiert bei dem im Prinzip nur das typedefed enum ausgetauscht wird mit dem man die States für die Klasse festlegt. Aber vielleicht geht das ja mit 2013SP1? Obwohl ich es mir ehrlichgesagt nicht vorstellen kann - aus den og. Gründen ...

Das Test-Projekt, das ich angehangen habe hilft in Richtung deiner Fragestellung schon mal ein bischen, allerdings muss man immer noch für die Queue-Insert und Dequeue-Operationen ein extra VI erstellen, im besonderen dann, wenn man das getypedef'te Enum als einzelnes Control (-Terminal) haben will, damit man es einzeln anschließen kann, was man fast muss, da man ja im Klassen-Cluster keinen Zugriff auf irgendwelche Elemente hat ...

viele Grüße
cb


Angehängte Datei(en)
0.0 .zip  LVOOP Test Project LV2011SP1.zip (Größe: 124,25 KB / Downloads: 336)

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2014, 11:04
Beitrag #5

Andre_A Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Nov 2012

2013
2011
EN


Deutschland
RE: Queues mit FGVs in Polymorphen VI
Mahlzeit,

super Antwort, danke.

Ich schaue mir das mal an, wenn ich es schaffe mit LV2013 dann eine
benutzbare "Standard-Queued-Statemachine-Queue-Klasse" Big Grin zu bauen,
werde ich das Ergebnis posten.

Gruß,
Andre
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.05.2014, 11:51
Beitrag #6

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Queues mit FGVs in Polymorphen VI
(11.05.2014 11:04 )Andre_A schrieb:  super Antwort, danke.

... auch wenn's selbst in den Ohren des Autors wie "super-nerdy-Bullshit" klingt Big Grin Big Grin

lass es mich unbedingt wissen wenn es geklappt hat - ich hab grad selber keine Zeit mich drum zu kümmern. Wenn das wirklich funktioniert, dann werd ich ab sofort freudiger LVOOP-Hardcore-User und strick mein gesamtes Project-Design-Pattern um Smile Smile

Was mich an der ganze Geschichte irgendwie nervt ist, dass LV alle Möglichkeiten um das umzusetzen eigentlich schon mitbringt (Stichwort: X-Nodes), das ganze aber für die "normalen" Anwender nicht freigegeben wird. Ich hab keine Ahnung ob in Deutschland überhaupt jemand eine X-Node-Entwicklungs-Lizenz hat!? Ich hab mal nach einer Lizenz gefragt, aber mein Ansinnen wurde wohl von NI als so abwegig eingestuft, dass ich noch nicht mal eine Antwort bekommen habe. Und dann steh ich da mit dem halbgaren LVOOP, fluch leise vor mich hin, und benutz weiter mein VIScripting-based-Queuded-Statemachine-Queue-Management-VIs-Template-Instance-Create&Copy-Tool (noch ein viel schöneres Nerd-Wort Big Grin Big Grin) und denk mir jedes mal: "sch**** die Wand an, eigentlich müsste das doch schon längst anders gehen!"

viele Grüße
cb

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.05.2014, 10:58
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Queues mit FGVs in Polymorphen VI
(11.05.2014 11:51 )cb schrieb:  
(11.05.2014 11:04 )Andre_A schrieb:  super Antwort, danke.

... auch wenn's selbst in den Ohren des Autors wie "super-nerdy-Bullshit" klingt Big Grin Big Grin

lass es mich unbedingt wissen wenn es geklappt hat - ich hab grad selber keine Zeit mich drum zu kümmern. Wenn das wirklich funktioniert, dann werd ich ab sofort freudiger LVOOP-Hardcore-User und strick mein gesamtes Project-Design-Pattern um Smile Smile

Was mich an der ganze Geschichte irgendwie nervt ist, dass LV alle Möglichkeiten um das umzusetzen eigentlich schon mitbringt (Stichwort: X-Nodes), das ganze aber für die "normalen" Anwender nicht freigegeben wird. Ich hab keine Ahnung ob in Deutschland überhaupt jemand eine X-Node-Entwicklungs-Lizenz hat!? Ich hab mal nach einer Lizenz gefragt, aber mein Ansinnen wurde wohl von NI als so abwegig eingestuft, dass ich noch nicht mal eine Antwort bekommen habe. Und dann steh ich da mit dem halbgaren LVOOP, fluch leise vor mich hin, und benutz weiter mein VIScripting-based-Queuded-Statemachine-Queue-Management-VIs-Template-Instance-Create&Copy-Tool (noch ein viel schöneres Nerd-Wort Big Grin Big Grin) und denk mir jedes mal: "sch**** die Wand an, eigentlich müsste das doch schon längst anders gehen!"

viele Grüße
cb

Ausser wenn Du nie rot anläufst wenn LabVIEW sich einfach ganz unscheinbar ins Nirvana abmeldet oder etwas netter einen Crashdialog sehen lässt sind X-Nodes wahrscheinlich nichts für Dich. Big Grin
Und vom Ton deiner Postings in diesem Thread bezweifle ich ein wenig dass das bei dir der Fall wäre. Angel_not

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
17.05.2014, 07:39
Beitrag #8

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Queues mit FGVs in Polymorphen VI
(15.05.2014 10:58 )rolfk schrieb:  Ausser wenn Du nie rot anläufst wenn LabVIEW sich einfach ganz unscheinbar ins Nirvana abmeldet oder etwas netter einen Crashdialog sehen lässt sind X-Nodes wahrscheinlich nichts für Dich. Big Grin
Und vom Ton deiner Postings in diesem Thread bezweifle ich ein wenig dass das bei dir der Fall wäre. Angel_not

ach, die Crashes hab ich auch ohne X-Nodes. Manchmal ein paar mal am Tag. Ich hab keine Ahnung ob es bei LV2013SP1 besser is, aber ich glaub's nicht, denn das gibt's seit ich LV benutze (2001). Und rot anlaufen, den Computer anbrüllen, LabVIEW verfluchen und NI zur Hölle wünschen gehört bei mir zum daily business Wink

Ok, wieder ernst: klar, ist das ein "heisses" Feature und man kann viel Sch**ss mit machen, aber das kann man mit Pointern auch und keiner käme auf die Idee Pointer zu verbieten weil man damit Memory leaks programmieren kann. Und ich geb die Hoffnung nicht auf, dass das irgendwann auch mal als offizielles Features released wird, das würde nämlich wirklich viel bringen! (mir zumindest - glaube ich)

viele Grüße
cb

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
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
  LabVIEW Queues Schrankwand 3 4.382 14.12.2023 13:41
Letzter Beitrag: Schrankwand
  Bool Werte über Queues maxil 52 24.698 12.07.2019 14:00
Letzter Beitrag: GerdW
  Queues? flizzer82 14 30.663 23.05.2017 19:58
Letzter Beitrag: jg
  Queues VI übergreifend verwenden mdu 12 16.786 14.03.2015 15:34
Letzter Beitrag: Lucki
  If Schleife und queues Danjo 4 7.225 27.05.2013 15:14
Letzter Beitrag: jg
  Dynamisch Queues erstellen Kiesch 9 11.318 24.06.2012 21:46
Letzter Beitrag: Kiesch

Gehe zu: