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 № 1Tak, 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
.