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 

Regulärer Ausdruck für bestimmte Bitfolge



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!

17.07.2006, 11:30
Beitrag #1

Florian79 Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2006

8
2006
kA


Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Hallo zusammen,

ich möchte über eine serielle Schnittstelle(RS-232) Daten die von einem DSP gesendet werden einlesen. Die Datenblöcke sind folgender Maßen aufgebaut.

12 bit lang, 1 start bit -> 8 Daten bits (LSB...MSB) -> 1 Adress bit (gesetzt im ersten datenblock) -> 1 Paritäts bit -> 1 stop bit

Mein Problem ist nu das ich die eingehenden Daten binär auf diese Form hin kontrollieren muß, um zwischen dem Adressblock und den Datenblocks unterscheiden zu können. Ich wollte erst einmal dieses Beispiel
http://forum.ib-berger.com/viewtopic.php?t=29
so abändern das ich 2 Datenblöcke einen Adress und einen Datenblock einlese und dann anzeige oder abspeichere. Ich habe mir gedacht den regulären Ausdruck in Match Patter entsprechen zu ändern und dann über scan from string die entsprechenden Adress bzw Daten Informationen weiter zu verarbeiten. Leider weiß ich nicht wie ich den regulären Ausdruck formulieren soll, gibts vielleicht eine funktion die die Auswertung der Daten in binärer Form erleichtert.

Ich hoffe das war einiger Maßen verständlich.

Danke und Gruß

Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.07.2006, 08:21
Beitrag #2

Florian79 Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2006

8
2006
kA


Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Hallo Leute,
hat keiner einen Vorschlag?? Ich möchte hier auch keine fertige Lösung bekommen, es würde mir schon etwas in der Art schau Dir mal die Funktion so und so an und versuchs mal so und so. Ich bin gerade erst bei der Einarbeitung in LV und es ist wirklich sehr Umfangreich :-) Da meine Diplomarbeit zum großen Teil auf LV basiert werde ich mich sowieso näher damit beschäftigen, aber eine kleine Hilfestellung hier und da wäre trotzdem superWub_anim .

Gruß
Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2006, 08:54
Beitrag #3

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Hi,

vielleicht hilft dir das Bildchen ein wenig...ich verstehe noch nicht so ganz, was du eigentlich machen willst! Musst du den ersten empfangenen von allen anderen Datenblöcken separieren (in dem das Adressbit als Hinweis "Ich bin der Adressblock" gesetzt ist)? Dann sollte dir die gezeigte Funktion was nützen, da kannst du dann einfach überprüfen, ob das betreffende Bit gesetzt ist...

Gruss
Achim


   

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2006, 10:09
Beitrag #4

Florian79 Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2006

8
2006
kA


Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Erstmal danke Achim!
Genau das ist es was ich tun muß, ich muß ihn als Adressblock erkennen und dann entsprechend interpretieren. Das Bild ist ja schonmal ein guter Anfang, wenn Du mir vielleicht erklären könntest welche Bausteine Du da verwendet hast, dann kann ich mir die Hilfedateien dazu durlesen.
Mein Problem ist nämlich das ich nicht weiß wie ich die Daten oder zumindest den Adressblock binär interpretieren kann ich habe beim rumstöbern gelesen das LV die Daten an der seriellen Schnittstelle immer als ASCII kodiert erwartet?! Die Datenbits in den Datenblöcke werden warscheinlich ASCII kodiert werden und da müßte ich dann ja eigendlich mit scan from string ausglierdern und zusammenfügen können oder?

Gruß
Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2006, 10:24 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2006 10:28 von Achim.)
Beitrag #5

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Hi,

hier mal das VI...

Gruss
Achim


Sonstige .vi  Finde_Bitwert_in_Bin_rstring.vi (Größe: 9,37 KB / Downloads: 322)



PS: Wenn du so wie gezeigt in Boole'sche Werte wandelst, dann musst du nicht im String nach irgend nem Ausdruck suchen. Wenn du den Adressblock identifiziert hast, kannst du die Adresse (bzw. in den anderen Blöcken die Daten) einfach mit String- oder Array-Funktionen (zB Index Array) extrahieren und dann verarbeiten...

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2006, 11:39
Beitrag #6

Florian79 Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2006

8
2006
kA


Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Ich habe mal Ansatzweise Dein Beispiel abgeändert und als Eingangsstring die Daten aus der seriellen Schnittstelle mit Match Pattern auf richtiges Format geprüft und dann als Eingang auf Scan Value gelegt.
Könnte das so funktionieren?
Die Umwandlung in einen boolschen Array ist wirklich praktisch für die weiter Verarbeitung:Dauch wenn ich noch nicht so ganz weiß wie ich das machen soll, aber da wird die LV Hilfe warscheinlich weiter helfen.

Danke und Gruß
Florian
Sonstige .vi  Finde_Bitwert_in_Bin_rstring.vi (Größe: 13,48 KB / Downloads: 273)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
21.07.2006, 09:12
Beitrag #7

Florian79 Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2006

8
2006
kA


Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Ich hab gestern ein wenig rumprobiert und bin bei der Verarbeitung des booleschen array auf einige Probleme gestoßen. Wenn ich die booleschem Werte wieder in Binärwerte umwandel macht LV daraus 16bit Integer Einsen und Nullen, ich brauche aber alle Datenbits zusammen als ein 8 bit Integer.
Kann mir jemand einen anderen Weg sagen wie ich aus dem booleschen array einen 8bit Integer mit meinem ASCII Zeichen bekomme??

Danke Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2006, 10:43 (Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2006 10:45 von Achim.)
Beitrag #8

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Hi,

die Umwandlung in U16 in meinem Beispiel erfolgte deshalb, weil ja pro Nachricht 12 Bit ankommen. Aus diesen kannst du dann ja die acht Datenbits extrahieren (Array Subset), dann hast du ein boolesches Array mit dann acht Elementen. Die Booleschen Werte sind doch nix anderes wie Binärwerte...was meinst du da genau? Wandelst du wieder in nen String mit Einsen und Nullen? Dein boolesches Array wandelst du vermutlich irgendwann wieder in ne Zahl (Boolean Array to Number), da kommt ne U32 Zahl raus (default-mäßig). Diese kannst du doch mit der entsprechenden Funktion locker in ne U8 Zahl wandeln, wenn du dieses Format benötigst...

Hab ich dich falsch verstanden? Dann werd ein bisschen konkreter, am besten mit VI oder Screenshot! Kriegst du jetzt eigentlich die Trennung von Daten- und Adressblocks hin?

Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2006, 11:28
Beitrag #9

Florian79 Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Jul 2006

8
2006
kA


Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Hi Achim,
ich versuchs mal genauer zu erklären, die umwandlung in U16 und danach ins boolsche array ist schon so in Ordnung weil man mit dem array wirklich gut arbeiten kann bezüglich Trennung Adress und Datenblock. Das hab ich zwar noch nicht gemacht aber das dürfte mit einer Case Struktur und dem Adressbit als Bedingung gut funktionieren, danke nochmal für den Tip. Ich habe dann versucht aus den booleschen Werten Zahlen zu machen, aber da kommt eine 16bit integer 1 oder 0 raus und wenn diese Werte in ein array schreibe kriege ich Probleme den eigendlichen ASCII Wert raus zu kriegen "Byte-Array nach String" interpretiert die arrayelemente als 8bit ASCII Zeichen. Mit (Boolean Array to Number) wird das array auch ander interpretiert ( siehe vi) hier ein Auszug aus der Hilfe "Ist der erste boolesche Wert TRUE, wird 1 ausgegeben. Wenn der zweite Wert TRUE ist, wird 2 ausgegeben. Sind beide TRUE, wird 3 ausgegeben.". In meinem Beispiel hab ich Ascii a geschickt und raus kommt ein †. Ich habe mir eine Schleife gebastelt die mir die mir den boolschen Teilarray in einen array mit Einsen und Nullen umwandelt, aber diese 1 und 0 sind im array auch als irgendetwas anderes als binärwerte abgelegt.
Wenn also eine funktion gäbe mit der ich eine 1 ( als interger oder boole oder sonst was) in eine binäre 1 umwandeln könnte müsste ich weiter kommen.

Sonstige .vi  Finde_Bitwert_in_Bin_rstring1.vi (Größe: 22,36 KB / Downloads: 235)
Ich hoffe das man mit dem Beispiel klar kommt Blink

Gruß
Florian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.07.2006, 12:29
Beitrag #10

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Regulärer Ausdruck für bestimmte Bitfolge
Hi,

schau mal ins VI!

So gehts, oder? Die Wandlung in boolesche Array kannst du ja trotzdem irgendwo brauchen, oder?

Gruss
Achim


Sonstige .vi  ascii_zeichen.vi (Größe: 9,78 KB / Downloads: 248)



   

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
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
  Nur bestimmte Messwerte in Datei schreiben Olli169 6 5.066 16.08.2017 11:22
Letzter Beitrag: Olli169
  Encoder werte nach bestimmte steps in Array speichern ziarehmann 4 5.317 09.07.2017 23:33
Letzter Beitrag: Trinitatis
  Array auf Doppelwerte prüfen und bestimmte dabei ignorieren sara2211 4 4.880 14.01.2017 13:13
Letzter Beitrag: sara2211
  2D Array durchsuchen und bestimmte Werte ersetzen sara2211 4 5.704 13.01.2017 10:59
Letzter Beitrag: sara2211
  Format für Regulärer Ausdruck hansi9990 8 6.887 29.02.2016 19:04
Letzter Beitrag: hansi9990
  Muster suchen, RegEx Ausdruck String innerhalb Klammern dali4u 2 5.676 23.09.2014 10:30
Letzter Beitrag: dali4u

Gehe zu: