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 

verschiedene Datentypen über TCP/IP / UDP



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!

01.02.2013, 13:21 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 13:22 von AgesKing.)
Beitrag #1

AgesKing Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jan 2013

2011
2011
DE



verschiedene Datentypen über TCP/IP / UDP
Erstmal hallo an alle,
ich bin neu in der Labview szene und hätte gleich eine Frage:

Ich möchte einige Messergebnisse über UDP oder TCP/Ip verschicken.

Erstmal kann ich natürlich die verschiedenen Werte in einen String formatieren (Wert formatieren (Funktion) ). Dabei gibts sowohl integer werte als auch fließkomma werte. die verschiedenen strings kann ich dann mit (Strings verknüpfen (Funktion)) zu einem langen String verknüpfen und der client bekommt dann einen langen string.

das wäre z.B.:
100005,44432,4566565654,554545454100000

Und da die anzahl der vorkomma und nachkomma stellen variabel ist kann man schlecht wissen wo man trennen muss.

Gibts eine Funktion, der man sagen kann:

"die ersten 4 byte sind ein integer, dann kommt ein float, dann wieder ein integer" oder geht das nach einer string umwandlung nicht mehr.

im idealfall würde ich wirklich gerne einen string verschicken, mit festen datentypen die der rechner wieder aufdröseln kann.




also meine fragen:
a) Gibt es ausser string noch eine möglichkeit viele verschiedene datentypen (int float double) in einem paket über udp zu verschicken?
b) Ist es möglich einen String mit unbekannten trennpunkten wieder aufzudröseln wenn bekannt ist welcher datentyp das ursprünglich war?

das ganze soll später nicht mehr mit labview sondern mit einem c programm gemacht werden. (also der client, server bleibt labview)

vielen Dank schonmal allein fürs durchlesen der langen Frage.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 13:25 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 13:29 von Trinitatis.)
Beitrag #2

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Array über TCP/IP / UDP
Hallo AgesKing,

So viel ich weiß, kannst du nur Strings verschicken. Du kannst aber mit der Funktion in String formatieren festlegen, dass jeder Wert exakt n Zeichen lang ist. So könntest du es einfacher zerlegen beim Einlesen, sendest aber Fülldaten mit.

Du kannst aber auch mit den Variantfunktionen mal rumspielen.

Gruß, Marko
Du kannst dir ja auch Trennzeichen selbst schaffen und beim Einlesen nach diesen parsen bzw. deinen String in ein Array zerlegen lassen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 13:49 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 13:53 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: verschiedene Datentypen über TCP/IP / UDP
Ich würde bei String beiben, denn wo sollte da das Problem sein?
Das Trennen lässt sich immer machen, aber es erleichtert die Sache ungemein, wenn es zwischen den Daten ein Trennzeichen gibt, und am Ende eines Datensatzes ein Endezeichen. Dann ist eine unterschiedliche Anzahl von Vor/Nachkommastellen bei der Konvertierung überhaupt kein Problem.
Labview default ist: Trennzeichen: TAB, Endezeichen: LF (Zeilenende), aber das können auch andere Zeichen sein

Dein Beispiel
100005,44432,4566565654,554545454100000
ist ohne Erläuterung "nicht hilfreich" (Originalzitat A. Merkel zu einem Buch von Sarrazin Big Grin), da weiß man nicht mal, was die Kommas bedeuten: Dezimalzeichen oder Trennzeichen.
Vorschlag: Poste ein oder mehrere String-Beispiele und beschreibe sie, und Du bekommst postwendend die Konvertierung präsentiert. (Von Trinitatis, nicht von mir Big Grin)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 13:50 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 13:51 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: verschiedene Datentypen über TCP/IP / UDP
Hallo Agesking,

Zitat:100005,44432,4566565654,554545454100000
Und da die anzahl der vorkomma und nachkomma stellen variabel ist kann man schlecht wissen wo man trennen muss.
Und ich dachte, die Kommata wären die Trennzeichen in deinem String...

Zitat:Gibts eine Funktion, der man sagen kann: "die ersten 4 byte sind ein integer, dann kommt ein float, dann wieder ein integer" oder geht das nach einer string umwandlung nicht mehr. im idealfall würde ich wirklich gerne einen string verschicken, mit festen datentypen die der rechner wieder aufdröseln kann.
- Du kannst U32/I32-Integer ohne Rundungsfehler in DBL-Werten speichern, dem Client kann also der Datentyp egal sein (solange du nicht U64/I64 verwendest)
- Nein, eine solche Funktion gibt es nicht. Woran sollte die Funktion den Datentyp erkennen?
- Falls dein Client LabVIEW verwendet, bist du aufgrund der strikten Typisierung an feste Datentypen gebunden. Du kannst nicht einmal DBL- und ein andermal I32-Werte ausgeben...

P.S.: Ist dir schon mal aufgefallen, dass deine Tastatur defekt ist? Die Umschalttasten zeigen beide Ausfallerscheinungen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 14:29
Beitrag #5

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: verschiedene Datentypen über TCP/IP / UDP
@Lucki
So lange könntest du deine Finger doch niemals stillhaltenAss

Aber ich fürchte, Gerd käme uns beiden zuvor.


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 14:40
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: verschiedene Datentypen über TCP/IP / UDP
Ab lv11_img würden sich vielleicht auch die "Network-Stream"-VIs anbieten.

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
Anzeige
01.02.2013, 15:06
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: verschiedene Datentypen über TCP/IP / UDP
(01.02.2013 14:29 )Trinitatis schrieb:  @Lucki
So lange könntest du deine Finger doch niemals stillhaltenAss
Aber ich fürchte, Gerd käme uns beiden zuvor.
Gruß, Marko
Offtopic2
Ja, hier es gibt hier eben keine auf User-Rückmeldung basierende Qualitätsmessung, man arbeitet sich hier allein mit der Menge der Beiträge hoch.
Aber es gilt auch: Wer zuletzt lacht.. Will sagen: Der erste Beitrag muss nicht der beste sein, und dann gibt es nachzubesseren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 15:22
Beitrag #8

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: verschiedene Datentypen über TCP/IP / UDP
Na dann pass´ich mal auf, dass ich nicht durch die Decke schieße!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 16:34 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 16:35 von AgesKing.)
Beitrag #9

AgesKing Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jan 2013

2011
2011
DE



RE: verschiedene Datentypen über TCP/IP / UDP
Waoh viele Antworten, ist ja echt nett hier :-)

Also ich hoffe ich hab das meisten auch verstanden.

Die Vorschläge "aufzufüllen" bzw. Trennzeichen zu setzen scheint mir sinnvoll. Mein Client soll jedoch in c++ geschrieben werden und der erwartet ganz bestimmte daten.
Ein Beispiel:

ich möchte verschicken:

int: 23
double: 2,340
double: 120,23
double: -0,23


und der c++-client will dann wirklich in den ersten 4 bytes den int haben, in den zweiten 8 bytes den double, u.s.w.
also kann ich da schlecht Trennzeichen einbauen.

Code:
so solltes ankommen:
Byte 0: 0x0X2A
Byte 1: 0x0
Byte 2: 0x0
Byte 3: 0x0
Byte 4: 0x0
Byte 5: 0x0
Byte 6: 0x0
Byte 7: 0x0
Byte 8: 0x0XCD
Byte 9: 0x0XCC
...
...


Ich bräuchte einen string der keine ASCII-Zeichen beinhaltet sondern wirklich die einzelnen bytes.

Es gibt ja die Funktion: String nach Byte-Array (Funktion)
Code:
Wandelt einen String in ein Array aus vorzeichenlosen Bytes um.
Jedes Byte im Array hat den ASCII-Wert des dazugehörigen Zeichens im String
Aber vermutlich hilft die mir nicht oder?

vielen Dank schonmal an euch alle.
AgesKing


/edit: falls ich was schlecht erkläre, oder übersehen hab, nehmts mir nicht krumm. ich hab versucht alles zu verstehen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 16:42 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 16:43 von jg.)
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: verschiedene Datentypen über TCP/IP / UDP
Aha, wenn ich richtig verstehe, brauchst du eher Type Cast, da du bei int immer 4 Byte und bei DBL immer 8 Byte senden willst:
   
Bei Bedarf musst du noch die Reihenfolge der Bytes drehen, falls du im C++ Programm "little endian" erwartest.

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Verschiedene Ergebnisse bei Typ Cast? n4f3ts 12 11.129 25.08.2015 06:59
Letzter Beitrag: n4f3ts

Gehe zu: