[gelöst] Tastatur und /dev/ttyArduino gleichzeitig abfragen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
MartinV
Beiträge: 790
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

[gelöst] Tastatur und /dev/ttyArduino gleichzeitig abfragen

Beitrag von MartinV » 29.07.2016 20:37:52

Hallo!

Ich möchte in einer Schleife zeitgleich sowohl einzelne Tastendrücke der Tastatur als auch Signale aus /dev/ttyArduino einlesen.

Im Moment löse ich das so:

Code: Alles auswählen

while [bla] ; do {
   read -s -n 1 -t 0.01 TASTE
   read -s -n 1 -t 0.01 SIGNAL < /dev/ttyArduino
} ; done
Das funktioniert fast gut, die read-Befehle warten je 1/100s auf maximal 1 Zeichen. Durch -s werden Tastatureingaben nicht am Bildschirm angezeigt.
Ab und zu wird aber ein Zeichen nicht erfaßt. Es wird auf dem Bildschirm sichtbar, und damit verbundene Kommandos werden nicht ausgeführt.

Ich habe mir auch cat angeschaut, aber das scheint sich nicht auf einzelne Zeichen begrenzen zu lassen.

Gibt es eine elegantere Lösung als meine?

Viele Grüße, Martin
Zuletzt geändert von MartinV am 31.07.2016 19:45:53, insgesamt 1-mal geändert.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
MartinV
Beiträge: 790
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Tastatur und /dev/ttyArduino gleichzeitig abfragen

Beitrag von MartinV » 31.07.2016 19:45:31

Ich habe eine Lösung gefunden:

Code: Alles auswählen

# Tastatureingaben auf Kanal 3 umleiten
exec 3< <(cat)

while [ "1" = "1" ] ; do {
  # Tastatureingabe oder Arduinosignal einlesen
  read -t 0.01 TASTATUREINGABE <&3
  read -t 0.01 ARDUINOSIGNAL <$ARDUINO
} ; done
(Ich lese jetzt allerding ganze Zeilen ein, nicht nur einzelne Tastendrücke. Ist aber gut so)
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Antworten