Recebendo dados da porta serial

2

Eu quero receber dados da porta Serial RS232 para o meu terminal e com uma diretiva para um arquivo. Deve ser bem direto.

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

Antes disso, configurei os parâmetros para corresponder ao do dispositivo (Analisador de Bioquímica).

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. Stop Bits - 2

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

    
por Br. Sayan 06.12.2015 / 03:43

1 resposta

5

Teste Minicom primeiro e veja o retorno da porta serial. Instale-o com sudo apt-get install minicom

Você começa da seguinte maneira (para ttyS0):

sudo minicom -D /dev/ttyS0

Você pode definir os parâmetros de comunicação dentro do Minicom (usando ctrl-A P ), então você tem certeza de que eles estão corretos.

Se o seu dispositivo usa um protocolo específico, talvez seja 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 handshaking de hardware. Se possível, desligue-a (pelo menos para começar).

Se você não puder desativá-lo, terá que configurar isso também ao seu lado. No Minicom isso está em ctrl-A O e, em seguida, em serial port setup .

Eu usei o Minicom com freqüência para depurar as comunicações seriais e acho que funciona melhor.

Recebi mais algumas informações do OP:

The laboratory instrument(Cobas C311) uses ASTM protocol. There in the interface , we just need to click "Send to Host" and it sends a bunch of ASTM records. I just need to receive them in a file. Is there any other setting? What is the command to start acquiring data?...and how to save the data in a file?

Chosen the right paramters. Minicom is showing 9600 8N2. Hope it's alright. But receiving nothing - not a single bit. The analyser says, "The instrument transmitted ENQ as a send request,but the Host did not return ACK or NAK within 15 seconds.(Link Timeout)"

O dispositivo usa o Protocolo ASTM . O dispositivo envia o caractere <ENQ> como um sinal de que está pronto para começar a enviar dados.
Isso não é algo que você poderá receber usando minicom ou qualquer outro programa de terminal. Você precisará de um software aplicativo adequado que suporte esse protocolo.

Você definitivamente precisa ler o manual do usuário e verificar o disco de instalação (se houver) e o site do fabricante para obter um aplicativo que suporte esse protocolo.
Eu ficaria surpreso se eles não têm suporte a aplicativos para este dispositivo. Se eles oferecem algo, é provável que seja um aplicativo do Windows ou algum código de exemplo mais uma biblioteca.

É possível escrever algo, mas não será fácil. Existe algum suporte em Python para ASTM e há um script Perl que você poderia tentar.

O SO também tem uma postagem com algumas informações sobre a ASTM.

    
por 06.12.2015 / 06:30