나는 USB 허브에 4 개의 USB 직렬 변환기 (Prolific)를 연결했다. 장치 관리자에서 볼 때 동적으로 할당 된 Com 번호가 표시됩니다. 그러나 허브를 다른 USB 포트에 다시 연결하거나 시스템 리부팅을 한 후 해당 COM 번호가 변경되는 경우가 있습니다. 수를 수동으로 검색하지 않고 모든 변환기의 숫자를 업데이트 할 수 있습니까? 기본적으로 모든 변환기에 대한 고유 한 ID를 찾고 새 COM 번호를 얻는 C# 프로젝트에서 메서드를 갖고 싶습니다. 이 작업을 수행 할 수있는 방법이 있습니까 (성공하지 못했지만 일부 wmi 쿼리를 시도했습니다)?USB 직렬 변환기를 구별하는 방법은 무엇입니까?
오늘 나는 임시 해결책에 대해 생각했다. 그래서 또 다른 질문이 있습니다. USB 허브에 대한 정보를 얻는 방법? 기본적으로 나는 어떻게 든 내 USB 허브를 찾은 다음 허브 포트 장치에 연결된 정보를 검색 할 수 있습니다. 그런 다음 해당 장치의 COM 번호를 가져 오는 것이 wmi 쿼리를 통해 매우 쉽습니다. 나는 그러한 정보를 얻는 것이 가능하다는 것을보기 위해 USBView를 사용했다. 루트 허브 -> 일반 USB 허브 -> 많은 USB-to-serial 통신 포트에서 나무가 보이지만 코드에서이를 수행하는 방법을 알 수 있습니다. 어떤 아이디어?
아니, USB는 버스이며이 링크를 찾기는 포트 번호를 표시하지 않습니다. 그리고 예, 테스트 할 때 고통스러운 문제 (프로덕션 환경이 아님). 순차적으로 플러그인하지 않고 코드에서 SerialPort.GetPortNames()를 관찰 할 수는 없습니다. 장치 데이터에서 물리적 장치를 식별하는 방법이 가장 좋습니다. –
많은 세부 사항을 기억하지 못합니다. 그러나 생성 된 각 포트에는 관련 레지스트리 키가 있습니다 (위치는 USB 직렬 칩의 제조사에 따라 다릅니다). –
이 문제를 피하기 위해 Moxa 8 포트 PCI 직렬 카드를 사용하도록 전환했습니다. –