Проблемы с поиском моих последовательных портов с помощью 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? Или же...?