saída do dispositivo serial parece boa na tela do gnu, mas ilegível usando o gato

0

Eu tenho um dispositivo serial (Leitor de termopar Omega RDXL4SD, detalhes de comunicação p aqui ) conectados a uma porta USB no meu Raspberry Pi rodando o Raspbian através de um cabo FTDI. Aparece em / dev / ttyUSB0 e a saída parece perfeita se eu a exibir chamando

pi@raspberrypi:~ $ screen /dev/ttyUSB0 9600

A saída é alguns números. Cada vez que ele traça uma linha, o cursor retorna ao início da linha e sobregrava, para que haja sempre apenas uma linha de números na tela por vez.

Agora, desejo usar cat , não screen para obter o mesmo efeito, mas quando obtenho caixas com pontos de interrogação neles:

pi@raspberrypi:~ $ cat /dev/ttyUSB0
4401010000

Eu presumo que isso 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 isso 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

Edit: @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 de explicar 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
    
por foobarbecue 14.12.2017 / 20:18

1 resposta

1

Acontece que os caracteres ^ X, que são bytes de 0x18, são uma espécie de NaN não documentado neste protocolo. Existem várias portas de termopar e, se você conectar apenas um termopar, obtém uma linha com um valor de temperatura e, em seguida, várias linhas que terminam com ^ X.

Por alguma razão, o cat no meu terminal exibe esses caracteres como caixas, mas a tela não os exibe.

    
por 16.12.2017 / 22:19