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 

Universelle SubVIs erstellen



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!

28.01.2009, 12:44
Beitrag #1

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Universelle SubVIs erstellen
Hallo LVF!

Meine Frage ist, wie kann ich solche typunabhängige SubVIs erstellen?


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 12:46
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Universelle SubVIs erstellen
' schrieb:Hallo LVF!

Meine Frage ist, wie kann ich solche typunabhängige SubVIs erstellen?
Polymorphe VIs (Voraussetzung: mind. Pro-Paket). Wobei die dann immer nur für die Datentypen funktionieren, für die du was definierst.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 12:53
Beitrag #3

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Universelle SubVIs erstellen
' schrieb:Polymorphe VIs (Voraussetzung: mind. Pro-Paket). Wobei die dann immer nur für die Datentypen funktionieren, für die du was definierst.

Gruß, Jens

Diese Lösung passt mir leider nicht.

Ich weiss, dass ich es so machen kann:
   

Aber ich will Queues mit einem Array verwalten und da kommt es zu folgendem Problem:
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 13:20
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Universelle SubVIs erstellen
' schrieb:Diese Lösung passt mir leider nicht.

Ich weiss, dass ich es so machen kann:
[attachment=44063:QueueTyp.png]

Aber ich will Queues mit einem Array verwalten und da kommt es zu folgendem Problem:
[attachment=44064:QueueArray.png]
Dann sind aber die Cluster in deinem 2. Bsp nicht identisch. Denn zu einem Array kannst du natürlich nur Elemente gleichen Typs zusammenfassen.

Ich habe nur mal kurz nachgezeichnet, und bei mir hat es z.B. so kein Problem gegeben:
   

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 13:33
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Universelle SubVIs erstellen
' schrieb:Dann sind aber die Cluster in deinem 2. Bsp nicht identisch. Denn zu einem Array kannst du natürlich nur Elemente gleichen Typs zusammenfassen.

Ich habe nur mal kurz nachgezeichnet, und bei mir hat es z.B. so kein Problem gegeben:
[attachment=44068:Image01.png]

Gruß, Jens

Ja, aber so bekommt man das Kommando (in der Case-Struktur) nicht raus, man muss dann noch mal kasten. Siehe hier:


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 13:57
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Universelle SubVIs erstellen
' schrieb:Meine Frage ist, wie kann ich solche typunabhängige SubVIs erstellen?
RTTI - Runtime-Typinfo. So heißt das in Delphi. Verwende ich aber nicht. Ob es sowas in LV gibt, weiß ich nicht. Möglicherweise in der Pro-Version.

Das Problem ist die strikte Typbindung des Kompilers - was auch richtig so ist.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 14:07 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2009 14:13 von eg.)
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Universelle SubVIs erstellen
' schrieb:RTTI - Runtime-Typinfo. So heißt das in Delphi. Verwende ich aber nicht. Ob es sowas in LV gibt, weiß ich nicht. Möglicherweise in der Pro-Version.

Das Problem ist die strikte Typbindung des Kompilers - was auch richtig so ist.

Dann bleibt wahrscheinlich nichts anderes übrig als Strings statt Enums zu verwenden (was ich ja auch mache) oder Typecast ausserhalb des Lese- und Schreibe- SubVIs zu verwenden. Das Problem bei der ersten Lösung ist, dass Strings im Vergleich zu Enums CPU-fressender sind und es können Tippfehler beim Schreiben auftreten. Das Problem bei der zweiten Lösung ist, dass es nicht mehr so kompakt (kann man nicht als Libraray verwenden) aussieht, wie es gewünscht ist.
Die dritte Möglichkeit wäre die Queuereferenzen nicht mit Arrays, sondern in einem Cluster zu verwalten, was dann aber dazu führt, dass man die Erstellung von Queues nicht in ein universelles SubVI packen kann, da der Cluster mit Queuereferenzen dann projektabhängig ist. Und ausserdem kann man dann keine neuen Queues zur Laufzeit erzeugen, was die ganze Dynamik des Projektes ausschliesst.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 14:18
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Universelle SubVIs erstellen
' schrieb:Dann bleibt wahrscheinlich nichts anderes übrig als Strings statt Enums zu verwenden (was ich ja auch mache)
Genau. Aufgrund der Struktur eines Strings geht das nämlich.
Zitat:Das Problem bei der ersten Lösung ist, dass Strings im Vergleich zu Enums CPU-fressender sind und es können Tippfehler beim Schreiben auftreten.
Genau. Und deshalb, besonders letzteres wegen, ziehe ich die Methode mit Enum und Konvertierung vor.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2009, 14:29 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2009 14:42 von eg.)
Beitrag #9

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Universelle SubVIs erstellen
Mehr zum Thema:
http://www.LabVIEWforum.de/index.php?showt...ost&p=63332

So wie es aussieht werde ich keine gute und passende Lösung dazu finden. Aber ich bin jetzt davon überzeugt Numeric(für Kommando) und String(für Daten) zu nehmen und Type Cast aufs Kommando ausserhalb des Lese- und Schreibe- VIs zu verwenden. Ich glaube in anderen Programmiersprachen wird es auch so gemacht. Es kommst also demnächst eine neue Version der Tasking-Library (wo ich leider immer dem Benutzer der Library erklären muss, dass er beim Lesen und Schreiben zuerst das Kommando auf/von Enum type-kastet Pccrash ).

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Allgemeines Vorgehen zum Erstellen von SubVIs Matze 3 4.666 04.09.2010 10:31
Letzter Beitrag: IchSelbst
  Gibt es eine Möglichkeit SubVIs zu erstellen ohne dass diese in eine neue Datei ausgelagert werden? hans_p 2 4.328 29.05.2009 08:20
Letzter Beitrag: VDB
  Erstellen von SubVIs mit sich anpassenden Ein- und Ausgangsdatentypen astraios 5 5.082 12.03.2007 16:02
Letzter Beitrag: astraios

Gehe zu: