Anh Chu Ответов: 3

подключения USB-устройства в C#


Привет ребята,
У меня есть система подключения к ПК через USB. Я пишу программное обеспечение, которое имеет кнопку "Connect", которая позволяет пользователю подключаться к этому конкретному USB-порту. Мое решение таково
1. сканируйте все доступные COM-порты
2. Отправить сообщение для каждого COM-порт, и если система эхо еще сообщение, что матч, программное обеспечение будет подключиться к COM-порту.

Однако проблема заключается в том, что некоторые COM-порты уже открыты и используются. Поэтому, когда программное обеспечение попытается открыть этот COM-порт (который не является моим USB), это будет ошибка. Поэтому я хотел бы сканировать все USB-порты с каждым конкретным именем (мои имена USB-портов: устройство TUSB3410, в разделе Управление устройствами). Так что теперь задание просто подключается к этому конкретному имени USB-устройства.

Как я могу получить все имя USB-устройства?

Спасибо, :)

3 Ответов

Рейтинг:
2

DavidKiryazi

Привет,

Вы говорите об эмуляторе USB или COM-порта? Это звучит так, как будто вы говорите о USB, который подключается как эмулятор COM-порта.

Если это так, то вы можете использовать следующий метод для получения списка имен устройств com-порта.

SerialPort.GetPortNames();

затем вы можете перебрать список и найти тот, который вы ищете, используя оператор forloop.

Надеюсь, это поможет.

Дейв :)


Рейтинг:
2

Anh Chu

Привет,

На самом деле я решил эту проблему с помощью оператора try catch. Поэтому, если программное обеспечение не может попытаться открыть 1 порт, оно без каких-либо проблем попробует другой порт. Однако я хотел бы знать, как использовать C#, чтобы получить дополнительную информацию о USB (COM) порту, например, VID/PID, имени устройства и т. д. Это должно быть очень интересно узнать.

Спасибо что помогли мне в этом,
С уважением,
Ань


Рейтинг:
0

Anh Chu

Да, я говорю о USB, который подключается как COM-порт. И да, я делаю SerialPort.GetPortNames (), чтобы получить имя COMx и подключиться к этому конкретному USB. Но я сталкиваюсь с проблемой, скажем, ПК, к которому я подключаю USB, имеет следующий COM (В диспетчере устройств):

1. COM1: коммуникационный порт
2. COM3: мышь Logitech (например)
3. COM4: другое устройство USB - COM-порта
5. COM5: устройство TUSB3410 (мой USB)

Я повторяю цикл, в каждом цикле я делаю:
1. назначьте текущий порт Port_temp
2. Проверьте, открыт ли уже Port_temp? Если он открыт, то это не тот самый. Он же с другой стороны находится в употреблении.
3. если он не открыт, попробуйте открыть Port_temp
4. отправьте сообщение
5. получите сообщение от MCU
6. Проверьте сообщение от MCU, если оно совпадает с каким-то предопределенным сообщением. Назначить Port_temp в последовательный порт и подключить к тем.

Мне удалось подключиться к COM5 после выполнения цикла. Однако, когда я запустил программное обеспечение на другой компьютер(предположим , что у них есть тот же порт списка выше), он столкнулся с проблемой, что он может открыть COM3. Я не знаю, почему возникла проблема, потому что перед открытием порта на шаге 3 я проверил, был ли порт открыт или нет на шаге 2.

Так вот почему я хотел бы получить имя устройства USB,то есть коммуникационный порт, устройство TUSB3410 и т. д. Таким образом, я могу подключиться к определенному порту с уникальным именем. Или получить VID/PID тоже хорошо. Есть ли в любом случае я могу получить эту информацию о каждом COM-порту?

С уважением,


DavidKiryazi

мои извинения Ань Чу, я неправильно понял первоначальную проблему. Я посмотрю и посмотрю, есть ли способ получить имена устройств. Тем временем, может быть, кто-то еще ответит :)

Дейв