OIn-Board-Werkzeuge von Linux für das auseinanderbeindeln von Datenströmen

Post Reply
Message
Author
Gwunder-Nas

OIn-Board-Werkzeuge von Linux für das auseinanderbeindeln von Datenströmen

#1 Post by Gwunder-Nas »

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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

Re: OIn-Board-Werkzeuge von Linux für das auseinanderbeindeln von Datenströmen

#2 Post by Janka »

Nimm eine Skriptsprache. In Tcl sieht das in etwa so aus:

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
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.
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Gwunder-Nas

#3 Post by Gwunder-Nas »

Vielen Dank für den Hinweis! An sowas habe ich noch gar nicht gedacht, muss ich mir näher anschauen!

Gibt's denn für C keine entsprechenden Erweiterungen? Z.B. müssen doch Configfiles auch eingelesen und interpretiert/geparst werden.

Danke

Flohri

Post Reply