/ / Emular puerto serie - c ++, puerto serie, arduino, socat

Emular puerto serie - c ++, puerto serie, arduino, socat

¿Es posible crear una serie "virtual"?¿Dispositivo que envía datos a través de un puerto serie "virtual"? Necesito desarrollar un código para interactuar con un Arduino, pero no lo tenga conmigo. Se puede hacer con socat, o algún código que escribe a un dev/ttyXXX ¿archivo?

EDITAR: Estoy ejecutando Arch Linux

Respuestas

5 para la respuesta № 1

Sí, puedes usar socat para simular un puerto serie.

Necesitas usar el tipo de dirección PTY de 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.

La opción más sencilla es:

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

Abre la aplicación que estás probando. virtual-tty. Salida de su La aplicación se imprimirá en la consola. El texto que escriba será enviado a su solicitud.

Como se señaló anteriormente, el tipo de dirección PTY crea un peudo-terminal. los link opción crea un enlace blando entre elpseudo-terminal y el archivo dado. Puede elegir cualquier nombre de archivo que desee. Sin el soft-link necesitarías Abra el dispositivo y es difícil determinar el correcto. raw pone el pseudo-terminal en modo crudo. Usualmente quieres esto como no quieres Cualquiera de las opciones especiales de manejo de terminales. echo=0 desactiva el modo eco.

Si tienes (o creas) una aplicación quesimula el código ejecutándose en El Arduino, se puede conectar a través de socat también. Si tu simulador Se comunica a través de stdin / stdout, luego use el siguiente comando:

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

Lo anterior conecta el stdin / stdout de simulator-command al pseudo-terminal.

Si su simulador también se comunica a través de un puerto serial, entonces use el PTY comando dos veces:

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

Ten tu simulador abierto arduino-sim.