Я пишу тест JUnit для проверки моего приложения. Приложение написано на Java и использует библиотеку purejavacomm. Чтобы протестировать анализатор последовательного порта, я хочу настроить виртуальный последовательный порт, чтобы тест мог взаимодействовать с анализатором. В дополнение к простому анализу, он также динамически подключается к последовательному порту, когда он становится доступным, поэтому я не хочу использовать, скажем, PipedInputStream
.
Эта библиотека ищет только те файлы устройств, которые начинаются с ttyS
, ttyUSB
или ttyACM
. Из-за этого я не могу сделать обычный (который выдавал бы последовательные порты в /dev/pts/x
):
socat -d -d pty,raw,echo=0 pty,raw,echo=0
Я пытался сделать:
socat /dev/ttyS20 /dev/ttyS21
но это не работает. Он не выходит или печатает ошибку. Я попытался подключиться к /dev/ttyS20
с помощью экрана, но он просто говорит, [screen is terminating]
.
Я посмотрел права пользователя для ttyS20
(и 21), и у них обоих есть группа dialout
(пользователь: root), в которой находится мой пользователь (Крис).
Я что-то упускаю из виду с разрешениями? Есть ли лучший способ сделать это все вместе?
pty
s сttyS
s. Я предполагаю, что именно это делает флагlink=
, верно? - person Chris Smith   schedule 19.11.2015