Acontece que cat /dev/ttyACM0 | awk
não é exatamente o mesmo que </dev/ttyACM awk
E o awk também armazena em buffer, como cpugeniusmv comentou.
Estou lendo dados de /dev/ttyACM0
usando cat /dev/ttyACM0
em um Raspberry Pi. Os dados vêm de um dispositivo, que envia linhas na forma
15.00 1316013 15
em que o primeiro número é um valor, o segundo, um timestamp em milissegundos do dispositivo.
Quando eu faço cat /dev/ttyACM0 > file.csv
, recebo um valor a cada 12 ~ 13ms, mas quando faço exatamente a mesma coisa na rede, obtenho um intervalo de 1 ~ 2 segundos a cada 5 segundos.
É possível que haja dados perdidos em algum lugar? Ou que o sistema operacional bloqueia o dispositivo serial, então ele precisa aguardar alguns segundos para enviar mais dados? Existe alguma relação entre um dispositivo serial e um comando de rede canalizada?
Estou usando netcat
ou ssh
para enviar os dados. O dispositivo está enviando dados a 9600 bps