2016-07-18 39 views
10

Chcę mieć możliwość odczytu z portów szeregowych na komputerze i zapisu do pliku. Wewnątrz dev/(używając powłoki Bash na Windows 10) nie mogę zlokalizować mojego portu szeregowego USB (mam tty, tty0, tty1, i to wszystko dla tty).Problemy z lokalizowaniem portów szeregowych przy użyciu powłoki Bash w systemie Windows 10

Czy znajduje się on gdzie indziej, czy nawet dostępny przez powłokę Bash? Chcę tylko wiedzieć, jak uzyskać do niego dostęp w tym momencie.

W menedżerze urządzeń COM4 pojawia się pod portami po podłączeniu mojego usb. Uruchomiłem też polecenie "wmic path Win32_SerialPort" w wierszu poleceń systemu Windows i napisałem "Brak dostępnych instancji". Więc jestem bardzo zdezorientowany, w jaki sposób mogę zobaczyć moje Serial Ports i dlaczego nie pojawiają się w niektórych przypadkach.

Wszelkie wyjaśnienia na temat działania portów szeregowych, szczególnie w przypadku usb, byłyby bardzo doceniane, ponieważ jestem całkiem nowy w tej dziedzinie. Dzięki!

+0

spróbuj po prostu 'com1'. Windows nadal ma stare, starsze nazwy plików "urządzenia", takie jak "con", "com1", "nul", itp. ... –

+1

To nie jest to pytanie, nazwy starszego urządzenia oparte na DOS są nieistotne. Problem polega na uzyskaniu dostępu do urządzenia szeregowego w powłoce Bash w systemie Windows 10. Mam ten sam problem, próbując uzyskać dostęp do układu Ftdi, który powinien być COM4 –

+0

Mam dokładnie ten sam problem co @DanGriffin, chciałbym, aby dane szeregowe tx i rx z mojego Urządzenie FTDI na WSL. Wszystko, co znalazłem do tej pory pochodzi z przed-AU, ale mówi, że to nie jest jeszcze obsługiwane :( – Toby

Odpowiedz

4

Mam ten sam problem. Wygląda na to, że nadal nie możesz korzystać z portów szeregowych w Bash na Ubuntu w systemie Windows (BoUoW). Możesz wykonywać podstawowe operacje odczytu i zapisu za pomocą programu społecznościowego. Użyłem Cygwin do stworzenia serwera społecznościowego, który widzi moje porty szeregowe. Miałem jednak problemy z pinami DTR i RTS.

Dzięki usłudze społeczności można tworzyć wirtualne porty szeregowe lub przekazywać port szeregowy przez TCP. (I wiele więcej.)

W portach szeregowych Cygwin są wymienione w/dev/as ttyS *. Na przykład COM3 to/dev/ttyS2, a COM4 to/dev/ttyS3.

Uruchom serwer w Cygwin z

socat -d -d -d TCP4-LISTEN:2022,reuseaddr,fork /dev/ttyS3

uruchomić klienta na BoUoW z

socat PTY,link=/tmp/vmodem0 TCP:localhost:2022 

Spowoduje to utworzenie wirtualnego portu szeregowego w BoUoW w/tmp/vmodem0, który jest podłączony do COM4 na twoim komputerze.

+0

Przeszukałem część, która mówi, że mapy COM4 do/dev/ttyS3 i myślałem, że COMx będzie mapować do/dev/ttySx i drapało mi głowę. Upewnij się, że używasz nieintuicyjnej nazwy odwzorowania! –

3

Wkrótce system Windows będzie oficjalnie obsługiwał szeregowy w podsystemie systemu Windows dla systemu Linux (WSL). Porty COM_n_ będą dostępne na /dev/ttyS_n_

Mapowanie:

COM1 >> /dev/ttyS0 
COM2 >> /dev/ttyS1 
... 
COM192 >> /dev/ttyS191 

Dobry opis funkcji można znaleźć tutaj:

https://blogs.msdn.microsoft.com/wsl/2017/04/14/serial-support-on-the-windows-subsystem-for-linux/

UWAGA: W chwili pisania tej funkcji jest dostępny tylko na kompilacjach wewnętrznych.