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-Datensatzverarbeitung



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!

06.02.2014, 15:03 (Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2014 15:57 von jg.)
Beitrag #1

ExXeQtor Offline
LVF-Grünschnabel
*


Beiträge: 31
Registriert seit: Jul 2011

8.6
-
DE



String-Datensatzverarbeitung
Hallo, ich bin zwar inzwischen relativ LabView eingearbeitet, habe aber mit der Stringerarbeitung noch recht wenig erfahrung.

Ich habe nun ein VI laufen, das Daten von der seriellen Schnittstelle ausliest und in einen Stringpuffer schreibt. Der Inhalt des Puffers (ein String) sieht dann z.B. so aus:

Configuration finished. Leaving Config-Mode.
Module;Channel;Wavelength;Speedmode;ADC-Value;Timer-Value;
[0-3];[0-3];[0:750nm, 1:850nm];[1:on, 0:off];[16Bit HEX, *5/2^16];[16Bit HEX, 1/100s];
M0;C2;L1;S0;0D2D;05C4;
M0;C0;L0;S0;1817;05CB;
M0;C0;L1;S0;16DE;05D2;
M0;C1;L0;S0;11F5;05DA;
M0;C1;L1;S0;0EA8;05E1;
M0;C0;L0;S0;0DB8;05E8;
M0;C0;L1;S0;0DE3;05F0;
Speedmode On
M0;C1;L0;S1;0E1B;05F7;
M0;C1;L1;S1;0E4D;05FE;


Nun muss man noch dazu sagen, was hier nicht angezeigt wird: Jeder Absatz wird durch CR + LF gekennzeichnet (in ebender Reihenfolge).

Was ich tun möchte ist nun eigentlich relativ simpel: Die Datensätze (Zeilen) bestehen aus Header - z.B. "M0,C2;L1;S0;" und Hex-Daten "0D2D;05C4". Der Header gibt Modulnummer (M), Channelnummer ©, Lambda (L) und Speedmode (S) an. Ich würde nun gerne aus jeder vollständigen Zeile ein Cluster machen, das die Informationen und Daten trägt.
Alle anderen Zeilen mit Informationen (z.B: "Speedmode On") sollen ignoriert werden.

Mein Problem ist, dass ich nicht genau weiß wie das nun am besten zu bewerkstelligen ist, denn: Der Stringpuffer muss ja nicht zwangsweise ganze vielfache einer Zeile beinhalten (da kommt ja immer wieder etwas dazu).

Könnte mir da jemand kurze Hinweise oder Beispiele geben, wie ich den Puffer von vorne (d.h. älteste Daten zu erst) in vollständigen Zeilen auslesen und verarbeiten könnte? Hinten werdem ja laufend neue Daten angehängt. Der Rest ist in einer Queued State Machine implementiert, es sollte also alles darumherum bereits "optimal" laufen.

Viele Grüße und besten Dank!!

Alexander
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
String-Datensatzverarbeitung - ExXeQtor - 06.02.2014 15:03

Gehe zu: