Skocz do zawartości

Identyfikacja portów COM


skoku

Pomocna odpowiedź

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
Link do komentarza
Share on other sites

8 minut temu, skoku napisał:

Może jest jakaś dystrybucja linuxa, która by to umożliwiła? 

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

Poczytaj np. http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/

 

 

  • Lubię! 1
Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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ę! 

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.