Serial para arquivo - sem acrescentar

3

Eu tenho um Arduino enviando dados através de uma porta serial para o meu PC Ubuntu. Isso está funcionando, pois posso abrir um monitor serial no PC e ver os dados. O arduino envia uma linha de dados a cada 2 segundos. Eu quero redirecionar a saída para um arquivo de texto no PC. Eu tentei:

(stty raw; cat > /home/me/received.txt) < /dev/ttyUSB2

Funciona, mas anexa cada linha recebida ao arquivo. Eu quero mais escrever o arquivo a cada vez. Em outras palavras, o arquivo deve ter apenas uma linha de dados que seria a mais nova recebida.

Eu pensei que o < vs < < cuidaria disso, mas obviamente estou perdendo alguma coisa. Alguém pode me apontar na direção certa?

    
por Adam Selene 18.10.2016 / 03:52

2 respostas

2

Eu tentaria algo assim:

(stty raw; while IFS= read -R line; do
printf '%s\n' "$line" > /home/me/received.txt; done) < /dev/ttyUSB2
    
por 18.10.2016 / 05:37
0

Outra possibilidade é abusar ligeiramente do awk:

( stty raw; awk -v f="outfile" '{print >f; close(f)}' )<tty
    
por 18.10.2016 / 09:33