/ / Emuler un port série - c ++, port série, arduino, socat

Emuler un port série - c ++, port série, arduino, socat

Est-il possible de créer une série "virtuelle"appareil qui envoie des données via un port série "virtuel"? Je dois développer du code pour interagir avec un Arduino, mais je ne l’ai pas avec moi. Peut-on le faire avec socat, ou du code qui écrit dans un dev/ttyXXX fichier?

EDIT: Je suis sous Arch Linux

Réponses:

5 pour la réponse № 1

Oui, vous pouvez utiliser socat pour simuler un port série.

Vous devez utiliser le type d’adresse 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.

L'option la plus simple est:

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

Ouvrez l'application que vous testez virtual-tty. Sortie de votre L'application imprimera sur la console. Le texte que vous tapez sera envoyé à votre application.

Comme indiqué ci-dessus, le type d’adresse PTY crée une peudo-terminal. le link option crée un lien virtuel entre lepseudo-terminal et le fichier donné. Vous pouvez choisir le nom de fichier de votre choix. Sans le lien, vous auriez besoin de Ouvrez l'appareil et il est difficile de déterminer le bon. raw met le pseudo-terminal en mode brut. Vous le voulez généralement comme vous ne le voulez pas l'une des options spéciales de traitement du terminal. echo=0 désactive le mode écho.

Si vous avez (ou créez) une application quisimule l'exécution du code sur l’Arduino, vous pouvez également le connecter via socat. Si votre simulateur communique via stdin / stdout, puis utilisez la commande suivante:

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

Ce qui précède relie le stdin / stdout de simulator-command au pseudo-terminal.

Si votre simulateur communique également via un port série, utilisez le PTY. commande deux fois:

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

Avoir votre simulateur ouvert arduino-sim.