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

Antworten
Nachricht
Autor
Gwunder-Nas

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

#1 Beitrag von Gwunder-Nas » 12. Jun 2006 16:24

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

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

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

#2 Beitrag von Janka » 12. Jun 2006 19:10

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

Code: Alles auswählen

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 Beitrag von Gwunder-Nas » 13. Jun 2006 14:25

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

Antworten