/ / Emuluj port szeregowy - c ++, port szeregowy, arduino, socat

Emulacja portu szeregowego - c ++, port szeregowy, arduino, socat

Czy jest możliwe utworzenie "wirtualnego" numeru seryjnegourządzenie wysyłające dane przez "wirtualny" port szeregowy? Muszę opracować kod do interakcji z Arduino, ale nie musisz go mieć przy sobie Socatlub jakiś kod zapisujący do a dev/ttyXXX plik?

EDIT: Używam Arch Linux

Odpowiedzi:

5 dla odpowiedzi № 1

Tak, możesz użyć programu społecznościowego do symulacji portu szeregowego.

Musisz użyć typu adresu PTY firmy 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.

Najprostsza opcja to:

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

Czy aplikacja, którą testujesz, otworzy się virtual-tty. Wyjście z twojego aplikacja zostanie wydrukowana na konsoli. Tekst, który wpisujesz, zostanie wysłany do twojego podanie.

Jak wspomniano powyżej, typ adresu PTY tworzy a peudo-terminal. The link opcja tworzy miękki link międzypseudo-terminal i podany plik. Możesz wybrać dowolną nazwę pliku. Bez miękkiego łącza musiałbyś otwórz urządzenie i trudno jest określić prawidłowe. raw umieszcza pseudo-terminal w trybie raw. Zwykle chcesz tego, ponieważ nie chcesz dowolne specjalne opcje obsługi terminali. echo=0 wyłącza tryb echa.

Jeśli masz (lub stworzyłeś) aplikację, którasymuluje kod wykonujący Arduino, możesz połączyć go także poprzez socat. Jeśli twój symulator komunikuje się przez stdin / stdout, a następnie użyj następującego polecenia:

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

Powyższe łączy stdin / stdout z simulator-command do pseudo-terminal.

Jeśli twój symulator komunikuje się również przez port szeregowy, użyj PTY polecenie dwa razy:

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

Miej otwarty symulator arduino-sim.