
Arduinoはシリアルポートを介してUbuntu PCにデータを転送しています。 PCでシリアルモニターを開いてデータを見ることができるので可能です。 Arduinoは2秒ごとに1行のデータを送信します。出力を自分のPCのテキストファイルにリダイレクトしたいです。私は試した:
(stty raw; cat > /home/me/received.txt) < /dev/ttyUSB2
動作しますが、受信したすべての行をファイルに追加します。毎回ファイルを上書きしたいと思います。つまり、ファイルには、最後に受信したデータの1行だけを含める必要があります。
私は<対<<が問題を解決すると思いましたが、何か欠けているようです。誰もが正しい方向に私を指すことができますか?
答え1
私は次のことを試してみます:
(stty raw; while IFS= read -R line; do
printf '%s\n' "$line" > /home/me/received.txt; done) < /dev/ttyUSB2
答え2
もう一つの可能性は、awkを少し乱用することです。
( stty raw; awk -v f="outfile" '{print >f; close(f)}' )<tty