Eu tenho um dispositivo serial (leitor de termopar Omega RDXL4SD, detalhes de comunicação p 22 aqui ) conectado a uma porta USB no meu Raspberry Pi executando Raspbian por meio de um cabo FTDI. Ele aparece em /dev/ttyUSB0 e a saída parece perfeita se eu exibi-la chamando
pi@raspberrypi:~ $ screen /dev/ttyUSB0 9600
A saída são alguns números. Cada vez que ele cospe uma linha, o cursor retorna ao início da linha e a sobrescreve, de modo que haja apenas uma linha de números na tela por vez.
Agora, quero usar cat
, não screen
para obter o mesmo efeito, mas quando o faço, recebo caixas com pontos de interrogação:
pi@raspberrypi:~ $ cat /dev/ttyUSB0
4401010000
Presumo que seja algum tipo de problema de codificação. Você pode explicar o que pode ser diferente sobre como esses caracteres estão sendo interpretados em screen
versus cat
ou sugerir outras etapas de solução de problemas?
Caso ajude:
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l
GNU/Linux
pi@raspberrypi:~ $ stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
min = 100; time = 2;
-icrnl -imaxbel
-opost -onlcr
-isig -icanon -echo
Editar: @meuh sugeriu adicionar -vet para exibir caracteres especiais. Agora que conheço essas bandeiras, meu problema específico está efetivamente resolvido! Eu ainda não me importaria com uma explicação de exatamente o que está acontecendo aqui.
pi@raspberrypi:~ $ cat -vet /dev/ttyUSB0
^M^B4201010000^X^X^X^X^M^B4301010000^X^X^X^X^M^B4401010000^X^X^X^X^M^B41010100000245^M^B4201010000^X^X^X^X^M^B4301010000^X^X^X^X^M^B4401010000^X^X^X^X^M^B41010100000245^M^B4201010000^X^X^X^X^M^B4301010000^X^X^X^X^M^B4401010000^X^X^X^X^M^B41010100000245^M^B4201010000