Эмулировать последовательный порт

Можно ли создать «виртуальное» последовательное устройство, которое отправляет данные через «виртуальный» последовательный порт? Мне нужно разработать код для взаимодействия с Arduino, но у меня его нет. Можно ли это сделать с Сокат, или некоторый код, который пишет в dev/ttyXXX файл?

РЕДАКТИРОВАТЬ: я использую Arch Linux

6

Решение

Да, вы можете использовать socat для симуляции последовательного порта.

Вам нужно использовать тип адреса PTY для 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.

Самый простой вариант:

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

Открывается ли тестируемое вами приложение virtual-tty, Выход из вашего
Приложение выведет на консоль. Введенный вами текст будет отправлен на ваш
приложение.

Как отмечено выше, тип адреса PTY создает
peudo-терминал. link
опция создает программную ссылку между псевдо-терминалом и данным файлом.
Вы можете выбрать любое имя файла. Без софт-линка вам понадобится
откройте устройство, и трудно определить правильное. raw
переводит псевдо-терминал в сырой режим. Вы обычно хотите это, как вы не хотите
любой из специальных вариантов обработки терминала. echo=0 отключает режим эха.

Если у вас есть (или вы создаете) приложение, которое имитирует код, выполняющийся на
Arduino, вы также можете подключить его через socat. Если ваш симулятор
соединяется через stdin / stdout, затем используйте следующую команду:

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

Вышеуказанное связывает стандартный вывод / стандартный вывод simulator-command к
псевдо-терминал.

Если ваш симулятор также соединяется через последовательный порт, используйте PTY.
команда дважды:

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

Ваш симулятор открыт arduino-sim,

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]