Soros port buffer?

Fórumok

Sziasztok,

linux alatt szeretnék olvasni soros portot a következő módon:
echo A > /dev/usb/tts/0; head -n 1 /dev/usb/tts/0

Az echo A-val pollozom a microcontrollert, ami visszaküld egy string-et, ezt a headdel olvasom ki. Működik is a dolog néhány lekérdezésig, de aztán a head nem ad vissza semmilyen értéket. Olyan mintha tele lenne a soros port input buffere és ezért nem tudom kiolvasni. Manuálisan lehet valahogy a soros portot flush-olni? Köszi

Z.

Hozzászólások

ez így nem fog menni.
az echo és az utána következő olvasás között a port nincs megnyitva, ha ezalatt érkezik valami adat, az megy a levesbe (hiszen senki nem kiváncsi rá, senki nem tartja nyitva a portot, minek tárolgatná az oprendszer időtlen-időkig).

előbb kell az olvasónak megnyitnia a portot, és aztán lehet beleokádni az 'A'-betűt.

Én így próbálnám:


exec 3<>/dev/usb/tts/0
echo A >&3 
head -n 1 <&3

Könyvjelző.
--
unix -- több, mint kód. filozófia.
Life is feudal

Kiolvasást background process-be kell tenni.