/ / Emular porta serial - c ++, porta serial, arduino, socat

Emular porta serial - c ++, porta serial, arduino, socat

É possível criar um serial "virtual"dispositivo que envia dados através de uma porta serial "virtual"? Eu preciso desenvolver algum código para interagir com um Arduino, mas não o tenho comigo. Pode ser feito com socat, ou algum código que grava em um dev/ttyXXX Arquivo?

EDIT: Estou executando o Arch Linux

Respostas:

5 para resposta № 1

Sim, você pode usar o socat para simular uma porta serial.

Você precisa usar o tipo de endereço PTY do socat:

PTY: Generates a pseudo terminal (pty) and uses its master side. Another
process may open the pty"s slave side using it like a serial line or
terminal.

A opção mais simples é:

socat PTY,link=./virtual-tty,raw,echo=0 -

A aplicação que você está testando é aberta virtual-tty. Saída do seu aplicativo será impresso no console. O texto digitado será enviado para o seu aplicação.

Como mencionado acima, o tipo de endereço PTY cria peudo-terminal. o link opção cria uma ligação suave entre opseudo-terminal e o arquivo fornecido. Você pode escolher qualquer nome de arquivo que desejar. Sem o soft-link você precisaria abra o dispositivo e é difícil determinar o correto. raw coloca o pseudo-terminal no modo raw. Você geralmente quer isso como você não quer qualquer uma das opções especiais de manuseio do terminal. echo=0 desativa o modo de eco.

Se você tiver (ou criar) um aplicativo quesimula o código em execução no o Arduino, você pode conectá-lo via socat também. Se o seu simulador comunica via stdin / stdout, então use o seguinte comando:

socat PTY,link=./virtual-tty,raw,echo=0 EXEC:simulator-command

O acima liga o stdin / stdout de simulator-command ao pseudo-terminal.

Se o seu simulador se comunicar através de uma porta serial, use o comando duas vezes:

socat PTY,link=./arduino-sim,raw,echo=0 PTY,link=./virtual-tty,raw,echo=0

Tem seu simulador aberto arduino-sim.