Recebendo dados da porta serial

Recebendo dados da porta serial

Quero receber dados da porta serial RS232 para o meu terminal e com uma diretiva para um arquivo. Deve ser bastante simples.

cat /dev/ttyS0
cat /dev/ttyS0 > file.txt

Antes disso, configurei os parâmetros para corresponder aos do dispositivo (Analisador Bioquímico).

sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb

ou seja

  1. Taxa de transmissão - 9600
  2. Paridade - Nenhuma
  3. Bits - 8 bits
  4. Bits de parada - 2

Mas não recebo nada no terminal. Está apenas em branco. Qual é o problema?

Responder1

TentarMinicomprimeiro e veja o que sua porta serial retorna. Instale-o comsudo apt-get install minicom

Você inicia da seguinte maneira (para ttyS0):

sudo minicom -D /dev/ttyS0

Você pode definir os parâmetros de comunicação no Minicom (usando ctrl-A P), para ter certeza de que estão corretos.

Se o seu dispositivo utiliza um protocolo específico, pode ser necessário um comando para iniciar sua comunicação. Então dê uma olhada no manual do usuário.

Talvez o seu dispositivo esteja configurado para usar handshake de hardware. Se possível, desligue-o (pelo menos no início).

Se você não conseguir desligá-lo, terá que configurá-lo também do seu lado. No Minicom isso está abaixo ctrl-A Oe então serial port setup.

Usei frequentemente o Minicom para depurar comunicações seriais e acho que funciona melhor.

Recebi mais algumas informações do OP:

O instrumento de laboratório (Cobas C311) utiliza o protocolo ASTM. Lá na interface, basta clicar em “Enviar para Host” e ele envia vários registros ASTM. Eu só preciso recebê-los em um arquivo. Existe alguma outra configuração? Qual é o comando para iniciar a aquisição de dados?...e como salvar os dados em um arquivo?

Escolhi os parâmetros corretos. Minicom está mostrando 9600 8N2. Espero que esteja tudo bem. Mas não recebendo nada – nem um pouquinho. O analisador diz: "O instrumento transmitiu ENQ como uma solicitação de envio, mas o Host não retornou ACK ou NAK em 15 segundos. (Tempo limite do link)"

O dispositivo usa oProtocolo ASTM. O dispositivo envia o <ENQ>caractere como um sinal de que está pronto para iniciar o envio de dados.
Isso não é algo que você poderá receber usando minicomou qualquer outro programa de terminal. Você precisará de um software aplicativo adequado que suporte esse protocolo.

Definitivamente, você deve ler o manual do usuário e verificar o disco de instalação (se houver) e o site do fabricante para encontrar um aplicativo que suporte este protocolo.
Eu ficaria surpreso se eles não tivessem suporte a aplicativos para este dispositivo. Se eles oferecerem algo, provavelmente será um aplicativo do Windows ou algum exemplo de código mais uma biblioteca.

É possível escrever algo sozinho, mas não será fácil. Existe algum suporte Python paraASTMe há umScript Perlque você poderia tentar.

SO também tem umpublicarcom algumas informações sobre ASTM..

informação relacionada