Skocz do zawartości

Identyfikacja portów COM


Pomocna odpowiedź

Napisano (edytowany)

Witam wszystkich!

Posiadam kod w którym przetwarzam informacje pochodzące bezpośrednio z urządzeń z którymi komunikuję się za pośrednictwem wirtualnych portów COM w komputerze poprzez USB. Niestety, muszę przewidzieć taką opcję, że użytkownik może przepiąć urządzenie do innego, fizycznego portu USB w komputerze. I tu pojawia się problem gdyż sterownik zarządzający przydzieleniem wirtualnego numerka - z mojego doświadczenia - robi to dosyć niespodziewanie, niekiedy potrafi dawać temu samemu urządzeniu ciągle port COM18 a w randomowym przypadku COM5.

Czy istnieje może jakiś program, dzięki któremu byśmy mogli przydzielać numerek COMU względem jakieś atrybutu urządzenia? Może jest jakaś dystrybucja linuxa, która by to umożliwiła? 

To są wszystkie informacje, które jestem w stanie odczytać z poziomu kodu na temat portu mikrokontrolera STM-32. Teoretycznie serial nie powinien się zmieniać ale wciąż temu nie ufam bo widziałem urządzenie kilka razy z serialem "0001"...

COM NUMBER:  COM18 

DEVICE:  STMicroelectronics STLink Virtual COM Port (COM18)

DESCRIPTION:  USB VID:PID=0483:374B SER=066CFF555349898667240831 LOCATION=1-10:x.2

Dziękuję i miłego dnia:)

 

Edytowano przez skoku
załącznik
2 godziny temu, ethanak napisał:

Każda oparta na udev (czyli praktycznie wszystkie współczesne) potrafi zrobić symlinka jeśli mu się zgadzają VID i PID.

Z tym bym uważał, chyba, że kolega ma wykupione VID/PID od USB-IF albo wypożyczone PID od STM, bo inaczej może się przez przypadek trafić inne urządzenie z tym samym VID i PID i wtedy będzie zgrzyt.

Warto by pomyśleć jeszcze nad jakimś requestem do weryfikacji tożsamości urządzenia, albo jakimś innym sprytnym sposobem, by nie było przykrych niespodzianek.

  • Lubię! 2

@H1M4W4R1 Zawsze można sobie podpiąć to ustrojstwo do USB i poczytać, co Linux ma na ten temat do powiedzenia (raczej więcej niż to co podano w pierwszym poście). Może się coś ciekawego znajdzie?

  • Lubię! 2
18 godzin temu, ethanak napisał:

Każda oparta na udev (czyli praktycznie wszystkie współczesne) potrafi zrobić symlinka jeśli mu się zgadzają VID i PID.

Dobry artykuł - potwierdził mnie w przekonaniu, ze po VID i PID oraz serialu jednak mogę mogę odnaleźć każde urządzenie. Zrobię to z poziomu kodu, dzięki!

16 godzin temu, H1M4W4R1 napisał:

Warto by pomyśleć jeszcze nad jakimś requestem do weryfikacji tożsamości urządzenia, albo jakimś innym sprytnym sposobem, by nie było przykrych niespodzianek.

Niestety, posiadam również urządzenia, które tylko wysyłają dane natomiast ich nie odbierają. Spróbuję sposobem z góry, może się uda w taki sposób. Dziękuję! 

2 godziny temu, skoku napisał:

Niestety, posiadam również urządzenia, które tylko wysyłają dane natomiast ich nie odbierają. Spróbuję sposobem z góry, może się uda w taki sposób. Dziękuję! 

Nie zapominaj o sztuczce nazywanej KeepAlive 😉 (pakiet weryfikacyjny co pewien czas)

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...