Проблемы с поиском моих последовательных портов с помощью bash на Windows 10
Я хочу иметь возможность читать с последовательных портов на моем компьютере и записывать в файл. Внутри /dev (используя оболочку Bash в Windows 10) я не могу найти свои последовательные USB-порты (у меня есть tty, tty0, tty1, и это для tty).
Он находится где-то еще или даже доступен через оболочку bash? Я просто хочу узнать, как получить к нему доступ в данный момент.
В диспетчере устройств COM4 отображается под портами, когда я подключаю USB. Я также выполнил команду wmic path Win32_SerialPort
в командной строке Windows, и она сказала "Нет доступных экземпляров". Поэтому я очень озадачен тем, как я могу просматривать свои последовательные порты и почему они не отображаются в определенных случаях.
Будем весьма благодарны за любые пояснения о том, как работают последовательные порты, особенно с USB, так как я довольно новичок в этом деле.
Ответы
Ответ 1
Вскоре Windows официально поддержит серийный номер в подсистеме Windows для Linux (WSL). Порты COM_n_
будут доступны на /dev/ttyS_n_
Отображение:
COM1 >> /dev/ttyS0
COM2 >> /dev/ttyS1
...
COM192 >> /dev/ttyS191
Хорошее функциональное описание можно найти здесь:
https://blogs.msdn.microsoft.com/wsl/2017/04/14/serial-support-on-the-windows-subsystem-for-linux/
ПРИМЕЧАНИЕ. На момент написания этой функции она была доступна только в инсайдерских сборках.
Ответ 2
У меня та же проблема. По-видимому, вы по-прежнему не можете использовать последовательные порты в Bash на Ubuntu в Windows (BoUoW).
Вы можете выполнять основные операции чтения и записи с помощью socat. Я использовал Cygwin для создания SOCAT-сервера, который видит мои последовательные порты. Однако у меня были проблемы с DTR и RTS.
С помощью socat вы можете создавать виртуальные последовательные порты или пересылать последовательный порт через TCP. (И многое другое.)
В Cygwin последовательные порты перечислены в каталоге /dev/as ttyS *.
Например, COM3 - это /dev/ttyS 2, а COM4 -/dev/ttyS3.
Запустите сервер в Cygwin с помощью
socat -d -d -d TCP4-LISTEN:2022,reuseaddr,fork /dev/ttyS3
Запустите клиент на BoUoW с помощью
socat PTY,link=/tmp/vmodem0 TCP:localhost:2022
Это создаст виртуальный последовательный порт в BoUoW на /tmp/vmodem 0, который подключен к COM4 на вашем компьютере.
Ответ 3
Ну, время летит, но все еще нет решения, по крайней мере, на моем W10 box.
Я попробовал
$ python3 -m serial.tools.list_ports
но в этом списке только 192/dev/ttyS\d {1,3} записей, и ни одна из них не заставляет меня задуматься над тем, какая из них соответствует мосту USB-UART моста Silicon Labs CP210x. не "родные" последовательные порты.
Возможно,/dev/ttyS7 может быть потенциально многообещающим кандидатом, но следуя какой логике? Почему не /dev/ttyS9? Или нет /dev/ttyS23? Или же...?