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 

String Zerlegen indem man MSB in einem Byte erkennt



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!

24.06.2010, 09:05
Beitrag #1

labuser2010 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Jun 2010

LabVIEW 2009
-
de

26731
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
Über die RS232 Schnittstelle erhalte ich Daten. Nun möchte ich mir ein Protokoll bastelln.

In jedem Byte soll das MSB vorbehalten werden, um zu erkennen (1 gesetzt) dass das Protokoll von neuem losgeht. Habe bis jetzt nur Funktionen gefunden die ein ganzes Zeichen in einem Byte erkennen. Auf ein Zeichen kann ich mich bei dieser Realisierung jedoch nicht festlegen, da im Startbyte auch schon Daten übertragen werden, die sich ändern. Also in C würde ich das Ganze byte einfach "verunden" um den relevanten Teil herauszubekommen. Habe aber noch nicht herausgefunden wie man das in LabVIEW macht. Ansonsten muss ich mir eine andere Protokollstruktur ausdenken.

Vielen Dank schon mal für die Hilfe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.06.2010, 09:39 (Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2010 09:39 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
Hallo labuser,

na dann schließ doch das Byte einfach mal an ein AND an. Und an den zweiten Eingang des ANDs eben eine 0x80-U8-Konstante...

Wieso denkst du, LabVIEW könnte keine Bytes verUNDen?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2010, 09:42
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
String Zerlegen indem man MSB in einem Byte erkennt
Der entscheidende Tip ist: Die Funktionen UND, OR... funktionieren auch mit Ganzzahlen bitweise.
Hab mal für die Sendeseite etwas gemacht, und gehe davon aus, daß Du das dann auf der Empfangsseite selber hinbekommst:
(Die binäre Zahlendarstellung muß natürlich nicht sein)

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2010, 09:53 (Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2010 09:54 von labuser2010.)
Beitrag #4

labuser2010 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Jun 2010

LabVIEW 2009
-
de

26731
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
so habe ich es mit auch schon gedacht, wenn ich aber diesen part suchen möchte zum Beispiel mit der Funktion "Muster Suchen" gibt es hier keine Möglichkeit nach dem MSB zu suchen. wie kann man das denn am besten machen??? Also Problem ist es ja dieses byte erstmal zu suchen wo das msb = 1 ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2010, 10:02
Beitrag #5

labuser2010 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Jun 2010

LabVIEW 2009
-
de

26731
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
Oder man verUNDet erstmal alle bytes und legt dann an die funktion muster suchen "10000000b" ran dann findet er ja auf jeden fall den anfang. jetzt muss man nur irgendwie das noch so umsetzen, dass das auf die nicht verUNDeten daten umgesetzt wird. aber wie?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2010, 10:16
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
Hallo labuser,

"Also Problem ist es ja dieses byte erstmal zu suchen wo das msb = 1 ist."

Wo ist das Problem? (Ich denke, das Problem liegt darin, dass du partout mit Strings/Chars arbeiten willst, anstatt mit einem U8-Array - was aber defacto das Gleiche ist!)
Erst machst du ein "AND 0x80" mit deinem Byte-Array, dann ein "= 0x80" mit dem Array, dann suchst du ein TRUE im erhaltenen Bool-Array. Nix mit "Muster suchen"... (Wenn du die Einzelbytes in einer FOR-Loop abarbeitest, brauchst du auch die ArraySuch-Funktion nicht mehr, dann hast du dein Ergebnis schon nach dem Vergleich...)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.06.2010, 10:45 (Dieser Beitrag wurde zuletzt bearbeitet: 24.06.2010 10:49 von Lucki.)
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
String Zerlegen indem man MSB in einem Byte erkennt
' schrieb:Also Problem ist es ja dieses byte erstmal zu suchen wo das msb = 1 ist.
Ganz einfach: In einer Schleife mit VisaRead immer nur ein Zeichen empfangen, und das solange, bis der Bytewert diese Zeichens größer als 127 ist. Das ist dann das gefundene Startbyte. Dann raus aus der Schleife und den Rest das Protokollstrings normal lesen.

@GerdW: Die Verwendung von Stringzeichen statt Bytes ist hier keine Frage das Wollens, sonder weil VISA-Send und -Read nur dieses Format benutzt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.06.2010, 08:35
Beitrag #8

labuser2010 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Jun 2010

LabVIEW 2009
-
de

26731
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
ich habe jetzt, weil es mir einfacher erscheint, erstmal einen formelknoten erstellt. Also eine funktion mit Ein- und Ausgang, welche mir meine Daten aufsplittet. Problem ist der Datentyp. WERT1 wurde zuvor in ein ByteArray umgewandelt.
Ich möchte wenn ich es jetzt mal in C beschreibe, wenn ich das Array anlege den ersten wert des Array prüfen ob das MSB == 1 ist,. Wenn dies der fall ist brauche ich die ersten vier werte aus dem array um daraus meine Varaiblen ADC1 und ADC2 zu erstellen.

Was fehlt hier oder was mache ich grundsätzlich falsch???

vielen Dank schonmal


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.06.2010, 09:50
Beitrag #9

labuser2010 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Jun 2010

LabVIEW 2009
-
de

26731
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
???? ist wahrscheinlich ein ganz einfaches problem
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.06.2010, 10:30 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2010 10:30 von GerdW.)
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
String Zerlegen indem man MSB in einem Byte erkennt
Hallo labuser,

bitte nicht drängeln, wir müssen alle unsere Brötchen nebenbei verdienen (die meisten jedenfalls)...

Ich habe deinen C-Code mal versucht, nach LabVIEW umzusetzen. Ich hoffe, ich habe die Shift-Faktoren richtig umgerechnet...
   
(Der andere Case ist auf Default gestellt und gibt "0" für beide Werte aus.)

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
  Variant in Grundtypen zerlegen LV-New 6 4.491 10.01.2022 10:55
Letzter Beitrag: LV-New
  String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer hansi9990 9 7.123 16.07.2015 14:25
Letzter Beitrag: hansi9990
  String Array zur Laufzeit wandeln und einem Cluster zuführen hTed 6 6.257 28.11.2014 14:44
Letzter Beitrag: Lucki
  2D Array zerlegen che-salih 37 24.026 29.10.2013 18:32
Letzter Beitrag: Y-P
  Datenstring Byte/Wordweise umdrehen LabviewRoland 5 5.385 18.10.2013 07:32
Letzter Beitrag: LabviewRoland
  String zerlegen --> in Array lambda89 5 10.369 02.07.2013 13:58
Letzter Beitrag: Lucki

Gehe zu: