Stream auf nicht druckbare Zeichen filtern

Dieses Thema 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. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #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?
     
  4. #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...