Leitura a partir de uma interface serial

3

Eu tenho um dispositivo serial rodando no qual preciso ler dados (não tenho absolutamente nenhum controle sobre o próprio dispositivo), exceto ler sua saída; usando o hyper terminal no Windows eu sou capaz de detectar um tráfego significativo e ontem quando eu usei cat (ou o meu próprio pequeno programa C para ler os dados e imprimi-lo para stdout) funcionou bem.

Hoje, quando eu uso o cat / my program, tudo que consigo é um tipo de dado corrompido, mas o hyper terminal ainda mostra os dados.

O que poderia estar errado? como poderia ter funcionado ontem, mas não hoje?

O arquivo que estou lendo é /dev/ttyUSB1

* Por favor, note que eu nunca estou correndo tanto o meu programa e gato, apenas um deles de cada vez.

    
por Fingolfin 06.05.2013 / 01:39

2 respostas

2

Alguém no SO sugeriu na direção certa; o problema foi com o baudrate, foi ajustado para um valor diferente do que eu preciso.

Para verificar a taxa de transmissão: stty -F /dev/ttyUSB1
Para definir a taxa de transmissão: stty -F /dev/ttyUSB1 57600 (57600 no meu caso é a taxa de transmissão que meu dispositivo precisa)

Está funcionando como um encanto agora.

    
por 06.05.2013 / 03:08
1

As portas seriais são especialmente estranhas. Você vai querer usar um programa de emulação de terminal da Old School. Eu costumava pensar que tip era o melhor, mas ninguém parece ter mais a fonte para isso. cu vem com o UUCP, e é um aborrecimento completo para instalar e configurar, nem se incomode.

Um rápido "google around" me diz que as pessoas tendem a usar o minicom atualmente. Aqui está um Stack Overflow pergunta que parece ter alguma influência, pelo menos em usar minicom para falar com um dispositivo serial USB.

Deixe-nos saber como isso acontece. Atualize sua pergunta ou deixe um comentário ou algo assim.

    
por 06.05.2013 / 02:35