Hallo cosmac,
danke für deine Antwort.
stty -F /dev/ttyUSB1 9600 -echo # Wird abgebrochen... stimmt natürlich so nicht. Ich bin fälschlich davon ausgegangen, das ein "echo" folgt, was natürlich nicht sein kann - somit nimmt er diese Einstellung an, es ändert aber nichts an meinem Grundproblem.
ttyUSB
1 gibt es, da an der Maschine 2 Serial -> USB Wandler hängen, über ttyUSB0 laufen Digitemp aufzeichnungen.
Mit vielen stty Parametern, insb. auch igncr hab ich schon rumgespielt, jetzt passt es wenigstens in der file.out.
Ein stty -F /dev/ttyUSB1 -a gibt folgendes zurück:
Code: Alles auswählen
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ^M; eol2 = ^M; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 5;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
Ein cat -v von file.out (cat /dev/ttyUSB1 > file.out), also echte Daten, sehen mit allen Zeichen, so aus:
Code: Alles auswählen
3645296075 ^R^L^A^@^@^@^@^@^@^@^@^M
3645296070 ^R,^A^@^@^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^M
3645267439 ^@^H^A^@^@^@^@^@^@^@^@8E<\"^N^M
Sie enden also alle mit einem "^M" und beginnen immer mit 10 Ziffern, daher hab ich "^M" als eol gesetzt.
Die file.out wird auch richtig geschrieben, alles schön in eine Zeile, aber ich hab keine Möglichkeit hinbekommen, direkt aus dem Device und wichtig, Zeilenweise, den Input zu verarbeiten.
Bei einem read LINE < /dev/ttyUSB1 hab ich das Problem, das in LINE Zeichen fehlen. Meißtens die ersten 2 Ziffern. Ferner kommen die Daten nicht in "Echtzeit", werden wohl irgendwie gepuffert und es scheint mir als finde er das Zeilenende nicht, die Ausgaben sind dann unvollständig oder es kommt eine leere LINE Variable.
Die Daten stammen von einem Microcontroller, Asynchronous data transmission (9600,N,8,1), der an einem RS232-USB Wandler hängt. Verkabelt sind übrigens nur
Code: Alles auswählen
Sub - D9 Pins:
5 -> Signalmasse
1,6,8,4 gebrückt > (DCD,DSR,CTS,DTR)
2 -> Daten
Die Schaltung funktioniert unter Windows, z.B. mit Putty seit Jahren in diesem Setup, soll jetzt aber auf meinen Debian umziehen.
Vielleicht sieht hier der ein oder andere noch einen Lösungsansatz.
Grüße
dokle