Stream auf nicht druckbare Zeichen filtern

Dieses Thema: "Stream auf nicht druckbare Zeichen filtern" im Forum "Programmieren allgemein" wurde erstellt von atomical, 06.12.2005.

  1. #1 atomical, 06.12.2005
    atomical

    atomical castor transporteur

    Dabei seit:
    11.11.2003
    Beiträge:
    133
    Zustimmungen:
    0
    Hallo!

    Ich habe folgendes Problem:

    Ein per RS232 angeschlossener Thermodrucker soll durch einen Nadeldrucker (Protokolldrucker) abgelöst werden. Die verschiedenen (unwichtigen) Formatierungsfunktionen des Thermodruckers werden durch diverse Steuerzeichen bzw. Zeichen jenseits des ASCII-Standards (Codetabelle unbekannt) ausgegeben. Direkt durchgereicht druckt der Nadeldrucker wild vorsich hin - allerdings nichts, was man lesen könnte.

    Da am Ende sowieso nur der Text wichtig ist, soll jetzt alles andere (Steuerzeichen außer LF und alles jenseits ASCII) auf dem Weg von /dev/ttyS0 nach /dev/lp0 rausgeschmissen werden.

    Mein selber gebasteltes Bashscript tut dies mit ordentlich CPU-Last dateiweise Zeile für Zeile ganz gut - das äquivalente Perl-Script kommt mit wesentlich weniger CPU-Zeit aus - allerdings auch nur zeilenweise - und genau da liegt das Problem - ich krieg es nicht hin, zeichenweise von /dev/ttyS0 zu lesen UND Zeiträume, in denen nichts kommt, ohne Probleme abzuwarten.

    Konkret würde mich interessieren, ob und (wenn ja) wie ich mit Bash und/oder Perl zuverlässig ständig auf Zeichen aus der seriellen Schnittstelle warten und diese entsprechend in "Echtzeit" weiterverarbeiten kann - getc auf /dev/ttyS0 hab ich probiert - das bricht nach ein paar Sekunden Funkstille von sich aus ab ...

    Alternaiv interessiert mich alles, was in die Richtung geht, einen Stream auf nichtdruckbare Zeichen zu filtern ...
     
  2. #2 atomical, 06.12.2005
    Zuletzt bearbeitet: 06.12.2005
    atomical

    atomical castor transporteur

    Dabei seit:
    11.11.2003
    Beiträge:
    133
    Zustimmungen:
    0
    Soweit so gut - ein
    Code:
    cat /dev/ttyS0 | tr -dc "\012 -~"
    schreibt mir die gefilterten Daten in die aktuelle Konsole ...

    Code:
    cat /dev/ttyS0 | tr -dc "\012 -~" > /dev/lp0
    oder auch
    Code:
    cat /dev/ttyS0 | tr -dc "\012 -~" > test.txt
    wartet immer volle 4096 Byte ab und schreibt dann in die jeweilige Datei - sprich er würde nur alle 4kB drucken ...

    :(

    Hat jemand noch eine Idee?
     
  3. #3 essener26, 11.07.2006
    essener26

    essener26 Grünschnabel

    Dabei seit:
    11.07.2006
    Beiträge:
    1
    Zustimmungen:
    0

    Vileicht so...
    Code:
    tr -cd '[:print:]'
    Entfernt alle nicht druckbaren Zeichen

    Gruß
     
Thema:

Stream auf nicht druckbare Zeichen filtern

Die Seite wird geladen...

Stream auf nicht druckbare Zeichen filtern - Ähnliche Themen

  1. Streamripper beachtet Paramter nicht

    Streamripper beachtet Paramter nicht: Hallo, ich benutze auf meinem Debian Server das Prog. Streamripper, um nachts Musik aus Internetradios aufzuzeichnen. Er nimmt auch korrekt...
  2. Darwin Streaming Server funzt nicht

    Darwin Streaming Server funzt nicht: Hallo, ich habe mir jetzt auf meinem Ubuntu Server den Darwin Streaming Server installiert. Die ganzen Beispielvideos konnte ich problemlos mit...
  3. Kaffeine Fehler "gstreamer_part" kann nicht geladen werden

    Kaffeine Fehler "gstreamer_part" kann nicht geladen werden: Hallo, seit Ubuntu 6.06 habe ich, sowohl als auch meine Freundin Probleme mit Kaffeine. Wir bekommen folgende Fehlermeldung wenn wir Kaffeine...
  4. kstreamripper speicher streams nicht

    kstreamripper speicher streams nicht: Hab da ein Problem mit meinem Kstreamripper. Der Gute Junge funktioniert einwandfrei , ripp mir 6 bis 7 streams nebenbei aber wenn ich den...
  5. Firefox demnächst mit FFmpeg statt GStreamer

    Firefox demnächst mit FFmpeg statt GStreamer: Wohl schon die kommende Version von Firefox wird beim Abspielen von Medien auf FFmpeg zurückgreifen statt auf GStreamer. Die Entwickler...