Да, вы можете использовать socat для имитации последовательного порта.
Вам необходимо использовать тип адреса Socat PTY:
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.
Самый простой вариант:
socat PTY,link=./virtual-tty,raw,echo=0 -
Приложение, которое вы тестируете, откроется virtual-tty. Вывод из вашего приложения будет напечатан на консоли. Введенный вами текст будет отправлен в ваше приложение.
Как отмечалось выше, тип адреса PTY создает peudo-terminal. Параметр link создает мягкую ссылку между псевдотерминалом и заданным файлом. Вы можете выбрать любое имя файла, какое пожелаете. Без софт-ссылки вам нужно было бы открыть устройство, и трудно определить правильный. raw переводит псевдотерминал в необработанный режим. Обычно вы этого хотите, поскольку вам не нужны какие-либо специальные параметры обработки терминала. echo=0 отключает режим эха.
Если у вас есть (или вы создаете) приложение, которое имитирует код, выполняемый на Arduino, вы также можете подключить его через socat. Если ваш симулятор общается через stdin / stdout, используйте следующую команду:
socat PTY,link=./virtual-tty,raw,echo=0 EXEC:simulator-command
Вышеупомянутое соединение stdin / stdout simulator-command с псевдотерминалом.
Если ваш симулятор также обменивается данными через последовательный порт, то дважды используйте команду PTY:
socat PTY,link=./arduino-sim,raw,echo=0 PTY,link=./virtual-tty,raw,echo=0
Откройте симулятор arduino-sim.
person
esorton
schedule
21.03.2014