En un proyecto que estoy realizando necesitaba poder comunicarme con un equipo por puerto seria, pero no tenía el equipo a mano. Por lo tanto necesitaba una manera de poder probar al comunicación serial con el programa que desarrolle.
Buscando en internet me encontée con este post (link) y comentaban el uso de ptys (Pseusoterminal) y fueron de ayuda para probar el desarrollo, puesto que simula una dispositivo y podemos escribir y recibir datos con ellos, por lo tanto desde mi aplicación escribía en el y desde consola le enviaba respuestas a mi aplicación.
Para crear los puertos se usa el comando
socat -d -d pty,raw,echo=0 pty,raw,echo=0
y retorna
2021/05/26 11:25:40 socat[13518] N PTY is /dev/pts/3
2021/05/26 11:25:40 socat[13518] N PTY is /dev/pts/4
2021/05/26 11:25:40 socat[13518] N starting data transfer loop with FDs [5,5] and [7,7]
Siendo /dev/pts/4 y /dev/pts/3 los puertos virtuales generados. Los valores de 3 y 4 dependen del sistema operativo.
Con esta configuración podemos desde nuestra aplicación utilizar el puerto /dev/pts/3
Por consola si ejecutamos tail -f /dev/pts/4 recibimos lo que estamos escribiendo en la aplicación y para responder podemos escribir en el puerto 4, por ejemplo echo ‘hola’ > /dev/pts/4.
O tener un mock de que utilice estos puertos para reemplazar al hardware que no poseemos y poder probar la comunicación.