Chcete-li zůstat poměrně nezávislí na systému, použijte programovací jazyk pro více platforem:jako je Python, použijte sériovou knihovnu pro různé platformy, jako je:pySerial, a proveďte zpracování ve skriptu. Použil jsem pySerial a mohl jsem spustit skript napříč platformou téměř bez změn ve zdrojovém kódu. Používáním BASH se trochu omezujete.
Není to to, co hledáte?
while read -r line < /dev/ttyS2; do
# $line is the line read, do something with it
# which produces $result
echo $result > /dev/ttyS2
done
Je možné, že opětovné otevření sériového zařízení na každé lince má nějaký vedlejší účinek, v takovém případě můžete zkusit:
while read -r line; do
# $line is the line read, do something with it
# which produces $result
echo $result > /dev/ttyS2
done < /dev/ttyS2
Můžete také přesunout přesměrování výstupu, ale mám podezření, že budete muset vypnout standardní ukládání do vyrovnávací paměti.
Proč někteří programátoři jádra používají goto místo jednoduchých smyček while?
Manipulace s pamětí pomocí struktury epoll_event