Forums Neueste Beiträge
 

Spaß mit /dev/ttyS0...

02/08/2016 - 21:56 von Nico Hoffmann | Report spam
Hallo,

ich bastle gerade an einem Progràmmchen, das die serielle
Schnittstelle liest und beschreibt.

Ich habe 9600 Baud und "raw" eingestellt. Keine Datenflußkontrolle,
etc. Alles so simpel wie es nur geht. Ebenso natürlich die
Gegenstelle.

Die Gegenstelle schreibt 10mal in der Sekunde ein Byte, entweder "A"
oder "X". Ich muß gelegentlich nachsehen, welcher Buchstabe gerade
kommt, und ein "R" (d.h. ein einzelnes R) schreiben, falls ich ein X
gelesen habe (die Gegenstelle macht dann einige Dinge, die nichts mit
der seriellen Kanal zu tun haben, und schaltet wieder auf A um).

Im Prinzip funktioniert alles soweit. Manuell, d.h. mit "cat
/dev/ttyS0" sehe ich die Aen oder Xen, und mit "echo R > /dev/ttyS0"
kann ich die Umschaltung triggern.

Nur im Progràmmchen hakt es mit dem R. Es ist ein Shellscript und
macht exakt das, was ich auch manuell mache, nàmlich "echo R >
/dev/ttyS0". Nur triggert das keine Umschaltung. Ich habe das
Progràmmchen so geàndert, dass ich mehrere Rs schreibe ("RR"), dann
einige wenige Byte lese, eine Sekunde warte, und das ganze dann
nochmal wiederhole. Damit klappt es.

Anscheinend gibt es eine Totzeit oder eine Art Pufferungs-Problem, die
ich so umgehe. Ich hàtte das Mysterium aber gerne genauer
aufgeklàrt. Hat jemand einen Tipp, was Schwierigkeiten gemacht hat?
Ich bin bei /dev/ttyS0 nicht wirklich bibelfest.

Die Gegenstelle ist eine SPS. Es ist ziemlich mühsam, dort die
serielle Schnittstelle abzuhören, jedenfalls kann ich nicht einfach
mit cat oder putty nachsehen, ob und was da kommt.

N.
Beginn Gewürzgurke
Dies ist keine Signatur, sondern eine Gewürzgurke. Solle dein Newsreader hier
keine Gewürzgurke darstellen, ist er fehlerhaft.
Ende Gewürzgurke
 

Lesen sie die antworten

#1 Andreas Kohlbach
02/08/2016 - 22:50 | Warnen spam
On 2 Aug 2016 19:56:45 GMT, Nico Hoffmann wrote:

ich bastle gerade an einem Progràmmchen, das die serielle
Schnittstelle liest und beschreibt.

Ich habe 9600 Baud und "raw" eingestellt. Keine Datenflußkontrolle,
etc. Alles so simpel wie es nur geht. Ebenso natürlich die
Gegenstelle.

Die Gegenstelle schreibt 10mal in der Sekunde ein Byte, entweder "A"
oder "X". Ich muß gelegentlich nachsehen, welcher Buchstabe gerade
kommt, und ein "R" (d.h. ein einzelnes R) schreiben, falls ich ein X
gelesen habe (die Gegenstelle macht dann einige Dinge, die nichts mit
der seriellen Kanal zu tun haben, und schaltet wieder auf A um).

Im Prinzip funktioniert alles soweit. Manuell, d.h. mit "cat
/dev/ttyS0" sehe ich die Aen oder Xen, und mit "echo R > /dev/ttyS0"
kann ich die Umschaltung triggern.

Nur im Progràmmchen hakt es mit dem R. Es ist ein Shellscript und
macht exakt das, was ich auch manuell mache, nàmlich "echo R >
/dev/ttyS0". Nur triggert das keine Umschaltung. Ich habe das
Progràmmchen so geàndert, dass ich mehrere Rs schreibe ("RR"), dann
einige wenige Byte lese, eine Sekunde warte, und das ganze dann
nochmal wiederhole. Damit klappt es.

Anscheinend gibt es eine Totzeit oder eine Art Pufferungs-Problem, die
ich so umgehe. Ich hàtte das Mysterium aber gerne genauer
aufgeklàrt. Hat jemand einen Tipp, was Schwierigkeiten gemacht hat?
Ich bin bei /dev/ttyS0 nicht wirklich bibelfest.

Die Gegenstelle ist eine SPS. Es ist ziemlich mühsam, dort die
serielle Schnittstelle abzuhören, jedenfalls kann ich nicht einfach
mit cat oder putty nachsehen, ob und was da kommt.



Als ich noch ein Dialup Modem hatte, hatte ich auch minicom
installiert. Mit dem konnte man, zumindest gefiltert, schauen, was über
ttyS0 rein kommt.
Andreas
You know you're a redneck if
32. If you think fast food is hitting a deer at 65 mph.

Ähnliche fragen