On Tuesday 06 December 2005 01:18, Alexander Tomisch wrote:
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.
...
Mfg, Alexander Tomisch
Wenn der Stream erst mal auf einem Device ist (a la /dev/ttyS0) kommt nur noch der Kernel an Daten ran. Speziell auf der ttyS* laufen Versuche mit cat / tee / dd .. daneben, weil sie zum Teil die Schnittstelle beeinflussen. Der Weg, erst in ein FiFo zu senden, dieses zu Filtern usw. scheitert meistens daran, das die ausgebenden Programme zur Ausgabe auf ttyS* "voreingestellt" sind. Außerdem werden Steuersignale an die Schnittstelle gesendet, die im FiFo nicht übertragen werden.
Pech ...
(Der beste Weg ist es, den Quellcode des sendenden Programms zu ändern.) (Keine Alternative: 3 Schnittstellen: out1 ->in2 ->(modify)->out3)
Bernhard (Bei Bedarf mehr Informationen. Ich habe mal einen Vortrag über serielle Schnittstelle und deren Programmierung unter Linux gemacht.)