(Linux) (PC) (HARDWARE) /dev/ttySx - Teil 1000
Bio
- perl
Sup!
Also, ich will ja seit geraumer Zeit Daten über meine serielle Schnittstelle übertragen... unter Linux, per Nullmodemkabel von /dev/ttyS0 nach /dev/ttyS1
Ich öffne also nach allen Regeln der Kunst /dev/ttyS0 und /dev/ttyS1 in zwei verschiedenen Prozessen, Leser und Schreiber, mit open IN, "</dev/ttyS0" und open OUT,">/dev/ttyS1".
Wenn ich Daten übertrage, dann werden diese übertragen, wenn ich ein \n sende - autoflush ist beim Sender natürlich an.
Wenn ich 8 Byte sende (7 Byte plus \n), dann kommen 9 Byte an (Die 7 Byte, \n und noch ein \n - wo das herkommt, weiss der Geier).
Nun klappt das Lesen/Schreiben ziemlich exakt 460 mal - dann blockiert irgendwas.
460*9 wären ziemlich genau 4K...
Wenn man den Leser danach killt und wieder aktiviert, dann kann der Schreiber weiterschreiben. Allerdings muß man den Leser evtl. mehrmals neu starten, damit das funktioniert.
Nun frage ich mich ernsthaft, woran das liegen kann - Interrupt kaputt? SuSE Linux unfähig?
Warum kann diese blöde serielle Schnittstelle nicht einfach wie eine Pipe funktionieren?
Gruesse,
Bio