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
- Taxa de transmissão - 9600
- Paridade - Nenhuma
- Bits - 8 bits
- 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 O
e 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 minicom
ou 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..