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 

Ein paar "Was ist das eigentlich" Fragen



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!

25.02.2009, 16:38
Beitrag #1

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
Ein paar "Was ist das eigentlich" Fragen
Hallo,

ähhh ... was ist das eigentlich:

* Unit Test Framework VIs
* Desktop execution Toolkit

* was mache ich mit den "Variant" VIs?
* was heisst flatten und unflatten

Danke für eine Nachhilfe

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.02.2009, 16:53
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ein paar "Was ist das eigentlich" Fragen
' schrieb:* Unit Test Framework VIs
http://sine.ni.com/nips/cds/view/p/lang/en/nid/206789
' schrieb:* Desktop execution Toolkit
http://sine.ni.com/nips/cds/view/p/lang/en/nid/206790
' schrieb:* was mache ich mit den "Variant" VIs?
Da muss ich jetzt aufpassen, dass ich nichts Falsches erzähle:
Variant ist quasi ein Container, der Datentyp und Dateninhalt zusammenfasst. Prinzipiell hast du also die Möglichkeit, in einem Variant-Control jeden Datentpy zu übertragen.
' schrieb:* was heisst flatten und unflatten
Flatten To String: Jede Datentyp hat im Computer irgendein Bit-Muster. Mit Flatten To String übersetzt du dieses Bit/Byte-Muster 1 zu 1 in einen String.
Oder anders gesagt: Du tust so, als ob dieses Bit/Byte-Muster einen String darstellt. Bsp: Eine U8-Variable mit Wert 65 gibt als Flatten to String ein A

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
25.02.2009, 17:25
Beitrag #3

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Ein paar "Was ist das eigentlich" Fragen
' schrieb:http://sine.ni.com/nips/cds/view/p/lang/en/nid/206789

http://sine.ni.com/nips/cds/view/p/lang/en/nid/206790

Da muss ich jetzt aufpassen, dass ich nichts Falsches erzähle:
Variant ist quasi ein Container, der Datentyp und Dateninhalt zusammenfasst. Prinzipiell hast du also die Möglichkeit, in einem Variant-Control jeden Datentpy zu übertragen.

Flatten To String: Jede Datentyp hat im Computer irgendein Bit-Muster. Mit Flatten To String übersetzt du dieses Bit/Byte-Muster 1 zu 1 in einen String.
Oder anders gesagt: Du tust so, als ob dieses Bit/Byte-Muster einen String darstellt. Bsp: Eine U8-Variable mit Wert 65 gibt als Flatten to String ein A

Gruß, Jens


kurze Ergänzung fürs Verständnis:

Das Zeichen 'A' (großes a) ist im ASCII-Code mit der 65 codiert. So gibt es natürlich auch für alle anderen Zeichen einen entsprechenden Wert. Bei Interesse einfach mal nach ASCII Tabelle googlen.

LG,
Torsten

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2009, 19:08
Beitrag #4

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Ein paar "Was ist das eigentlich" Fragen
obwohl das Beispiel mit dem A natürlich richtig ist (ich hab jetz nicht nachgeprüft ob wirklich ein A rauskommt, aber ich glaub's jetzt einfach mal) find ich es doch unpassend, weil es den Sinn von flatten to String IMHO nicht deutlich macht.

Flatten to string ist eine Funktion um an die Byte-Representation von Daten zu kommen. IMHO müsste das eigentlich Flatten to Byte Array heißen, aber da ein u8 Array und ein LabVIEW String im Speicher genau gleich aufgebaut sind ist es auch wieder egal. Irgendwer bei NI hat dann wohl irgendwann mal entschieden dass es eben ein String ist der hinten rauskommt und kein Byte Array. Vermutlich macht dann der Compiler wieder eins draus ...

Anwendungsbeispiel: wenn man Daten über TCP verschicken will geht das nur byteweise. Der Empfänger muss dann wissen was das für ein Datentyp ist und kann die Daten dann mit Unflatten wieder in den original-LV-Datentyp zurückwandel ...

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
25.02.2009, 19:58
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Ein paar "Was ist das eigentlich" Fragen
Vielleicht ist es einfacher so zu erklären (zumindest für C++ler o. ä.):

Flatten To String ist wie Type Cast von Irgendwas auf Stringtyp
Unflatten From String ist wie Type Cast von String auf Irgendwastyp

Ein Unterschied gibt es, man kann bei diesen VIs noch den Byte Order angeben.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.02.2009, 20:47
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ein paar "Was ist das eigentlich" Fragen
' schrieb:obwohl das Beispiel mit dem A natürlich richtig ist (ich hab jetz nicht nachgeprüft ob wirklich ein A rauskommt, aber ich glaub's jetzt einfach mal) find ich es doch unpassend, weil es den Sinn von flatten to String IMHO nicht deutlich macht.
Vielleicht hätte ich ein anderes Bsp wählen sollen, das mit U8 ist ein wenig zu einfach.
Also, z.B. eine Double mit Wert 0,25 wird zu in HEX zu folgendem Byte-Muster: 3FD0 0000 0000 0000

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
Anzeige
26.02.2009, 10:32 (Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2009 10:34 von rolfk.)
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Ein paar "Was ist das eigentlich" Fragen
' schrieb:Vielleicht ist es einfacher so zu erklären (zumindest für C++ler o. ä.):

Flatten To String ist wie Type Cast von Irgendwas auf Stringtyp
Unflatten From String ist wie Type Cast von String auf Irgendwastyp

Ein Unterschied gibt es, man kann bei diesen VIs noch den Byte Order angeben.

Nein ein Typecast ist leider etwas anderes! Ein Typecast verändert den Datentyp einer Variablen ohne die Representation im Speicher zu veränderen. LabVIEW hat auch einen Typecast und der lässt sich nur auf flache Daten (d.h. Skalars und Arrays of Skalars, wobei auch ein String ein Array of Skalar ist) anwenden. In C kann man grundsätzlich auch eine Struktur (LabVIEW Equivalent zu einem Cluster) Typecasten aber wenn diese Pointers enthält bekommt man nach einem Typecast nicht den Inhalt dieser Pointer sondern nur 4 Bytes die dem Pointer selber entsprechen.

Ein Flatten geht die ganze Datenstruktur durch und kopiert alle darin enthaltenen Daten in einen zusammenhängenden Speicherbereich. Für Skalars und Array of Skalars ist das grundsätzlich equivalent zu einem Typecast aber sobald man darin einen Cluster hat der Arrays und Strings enthält werden diese mit in den flattened Datenstrom hineinkopiert, so nötig auch rekursiv.
Unflatten macht die ganze Operation von Flatten wieder rückgängig.

Warum ein flattened Datenstrom als String representiert wird? Ganz einfach: die FILE I/O, GPIB, VISA, TCP/IP usw. VIs haben (oder hatten zumindest) alle einen String Ein- und Ausgang weil man sie eben oft mit ASCII Kommandos verwendet aber grundsätzlich kann dieser String auch binäre Daten enthalten wenn der Empfänger auf der anderen Seite damit umgehen kann. Um nun solche Flattened Daten nicht jeweils noch durch ein String To Byte Array durchschleifen zu müssen (oder was man auch hätte machen können und im Nachhineine gesehen wohl logischer gewesen wäre) all diese Funktionen auch mit Byte Arrays kompatibel zu machen (polymorphe VIs bestehen aber erst seit Version 5.0 oder so), wurden sie halt als String ausgeführt.

Rolf Kalbermatter

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
26.02.2009, 11:07
Beitrag #8

gottfried Offline
LVF-Guru
*****


Beiträge: 1.735
Registriert seit: Mar 2007

2019
2004
EN

20**
Oesterreich
Ein paar "Was ist das eigentlich" Fragen
Danke - das ist ja ein Tutorial geworden.

Gottfried

mein wöchentlicher (eigenwilliger) Beitrag zur Innovation
http://innovation1.wordpress.com/
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
  XControl - wie funktioniert das eigentlich Hasenfuss 3 7.350 10.03.2013 18:06
Letzter Beitrag: GerdW
  Statemachine zur Erfassung von Messdaten nach ein paar tausend Messwerten sehr langsa nemesismf 4 4.807 20.09.2011 09:10
Letzter Beitrag: chrissyPu
  Umstieg auf, bzw. Neueinstieg in LabVIEW, ein paar Fragen RabenFlug 41 27.130 02.09.2010 10:58
Letzter Beitrag: RabenFlug
  Fragen zu PID Regler belu003 3 5.850 18.08.2010 17:50
Letzter Beitrag: Lucki
  Newbie-Fragen zur GUI Tito 3 4.642 18.06.2010 10:45
Letzter Beitrag: GerdW
  Fragen zum Buch Aisling 9 8.008 22.08.2009 11:10
Letzter Beitrag: Aisling

Gehe zu: