Hallo zusammen,
ich möchte Daten, die über eine serielle Schnittstelle kommen auseinanderbeindeln. Die Daten krieg ich dank eurem Forum schon auf den Bildschirm. Die schaut etwa wie folgt aus:
[..]
Temperatures: 19 19 12 24 24 25
Binary Inputs: 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0
[..]
Am die serielle Schnittstelle angeschlossen ist ein Gerät, welches neben dem Abfragen von verschiedenen Temperaturmesssensoren auch noch Digitale I/O und mehr bietet und alle Zustände ununterbrochen auf die RS-Schnittstelle schreibt.
So wie die Dinge über die serielle Schnittstelle daherkommen, sind sie relativ mühsam lesbar. Ich möchte die Daten aufschlüsseln und irgendwie vernünftig Darstellen:
Temp1: 19 °C
Temp2: 19 °C
Tempx: y °C
Sind unter Linux schon Befehle oder Funktionen enthalten, welche ein aufschlüsseln leicht ermöglichen? Ich bin höchst warscheinlich kaum der Erste der sowas tut:-)
Vielen Dank für Eure Inputs!
Flohri
OIn-Board-Werkzeuge von Linux für das auseinanderbeindeln von Datenströmen
Re: OIn-Board-Werkzeuge von Linux für das auseinanderbeindeln von Datenströmen
Nimm eine Skriptsprache. In Tcl sieht das in etwa so aus:
Tcl bietet viele Möglichkeiten, das Ergebnis zwischenzuspeichern oder schönzuformatieren. Außerdem Kann man auch sehr leicht eventorientiert (mit fileevent und vwait) arbeiten und das Programm nebenbei noch was anderes machen lassen.
Ähnliches bieten auch die vielen anderen Skriptsprachen.
Code: Select all
set FD [ open "/dev/ttyS0" r ]
fconfigure $FD -buffering line
while ![ eof $FD ] {
set TEMPERATURES [ gets $FD ]
set BINARY_INPUTS [ gets $FD ]
set I 1
foreach ELEMENT [ lrange $TEMPERATURES 1 end ] {
puts "Temperatur $I: $ELEMENT"
incr I
}
set I 1
foreach ELEMENT [ lrange $BINARY_INPUTS 1 end ] {
puts "Binary_Input $I: $ELEMENT"
incr I
}
}
close $FD
Ähnliches bieten auch die vielen anderen Skriptsprachen.
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.