HID и USB в Visual Basic.

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Аватара пользователя
Ariadna-on-Line
Это не хвост, это антенна
Сообщения: 1482
Зарегистрирован: Вс май 13, 2012 00:01:54

HID и USB в Visual Basic.

Сообщение Ariadna-on-Line »

Уважаемые коты, ткните носом на информацию. А то похоже скоро опухоль мозга будет от гугления.
Нужно из Visual Basic общаться с USB окружением, чаще HID-ами. Например посмотреть сколько устройств подключено.
Их идентификаторы Виды-Пиды. Обратиться к конкретному Виду-Пиду. Узнать его возможности. Послать ему или от него
байт(ы) данных. И тд. В самом Бейсике этого конечно нет, поэтому делается через вызовы функций из DLL-лек. А это Бейсик может (ну и я чуть-чуть). Очень хоцца конкретных примеров кода. Абсолютно уверен, что все это кто-то умный уже сделал и опубликовал.
Заранее бесконечно благодарен.

ПС. По аналогии например, узнать сколько звуковух на компе - осьмушка строчки кода (X = waveInGetNumDevs) в Визуал Бейсике.
Реклама
Реклама
Аватара пользователя
Ariadna-on-Line
Это не хвост, это антенна
Сообщения: 1482
Зарегистрирован: Вс май 13, 2012 00:01:54

Re: HID и USB в Visual Basic.

Сообщение Ariadna-on-Line »

Ага. Спасибо. Кое чего получается. Например функцией "Handle = HID_OpenDevice(PID, VID, VersionNumber, Index)" проверяем наличие конкретного Вида-Пида. Можно организовать цикл перебора VID-PID (0-65535). Но это жуткое количество времени. Существует ли способ просто "спросить" комп- к тебе вообще подключены какие-нибудь HID-устройства и сколько. А если нет, то нефиг и искать. Прошу прощенья за такой примитивизм - я "железячник" по профессии. И чегото не нагугливаю.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: HID и USB в Visual Basic.

Сообщение Мурик »

Ariadna-on-Line писал(а):Можно организовать цикл перебора VID-PID (0-65535).
Это больше 4 миллиардов комбинаций. Заранее неизвестны PID и VID?
Ariadna-on-Line писал(а):Существует ли способ просто "спросить" комп- к тебе вообще подключены какие-нибудь HID-устройства и сколько.
Функция HID_DeviceInfo из HID_Lib_Plus
Функция HID_Devicelnfo(*Struct.HID_Devicelnfo) помещает в структуру HID_Devicelnfo, указатель на которую должен быть передан в качестве аргумента, список всех НID устройств, подключенных к компьютеру и их конфигурацию. Описание структуры HID_Devlcelnfo на языке PureBasic.

Код: Выделить всё

Structure HID_Sub_DeviceInfo
  VendorID.w
  ProductID.w
  VersionNumber.w
  NumInputBuffers.w
  InputReportByteLength.w
  OutputReportByteLength.w
  FeatureReportByteLength.w
  Manufacturer.s
  Product.s
  SerialNumber.s
EndStructure

Structure HID_DeviceInfo
  CountDevice.w                      ; Число обнаруженных HID устройств
  DeviceInfo.HID_Sub_DeviceInfo[258] ; Статический массив структур "HID_Sub_DeviceInfo"
EndStructure
Переменные с префиксом w имеют тип Word занимают по два байта памяти компьютера, а переменные с префиксом s — строкового типа. В примерах в архиве можно найти утилиту "HIDInfo", основанную на использовании данной функции.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Ariadna-on-Line
Это не хвост, это антенна
Сообщения: 1482
Зарегистрирован: Вс май 13, 2012 00:01:54

Re: HID и USB в Visual Basic.

Сообщение Ariadna-on-Line »

Вчера его скачал "промеж" других. Спасибо за наводку. Есть такая функция. И работает. Но - как это сделано?
Ведь HID.dll как бы основа всего ХИДа, и в нем нет такой полезной функции ? Странно... Согласитесь ведь, "надергивать" функции из разных чужих длл-лек -несолидно даже на Бейсике, когда есть мама-Винда.
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: HID и USB в Visual Basic.

Сообщение Мурик »

Ariadna-on-Line писал(а):Ведь HID.dll как бы основа всего ХИДа, и в нем нет такой полезной функции ?
Функции в setupapi.dll
Если внимательно посмотреть на функцию HID_OpenDevice то можно заметить что в цикле производится перечисление всех (по крайней мере первых 256) HID устройств и сравнение их PID/VID с требуемым.
Реклама
Аватара пользователя
Ariadna-on-Line
Это не хвост, это антенна
Сообщения: 1482
Зарегистрирован: Вс май 13, 2012 00:01:54

Re: HID и USB в Visual Basic.

Сообщение Ariadna-on-Line »

Нашел наконец. Работает. Разберусь до конца - отпишусь.
Действительно не допёр- ведь HID устройства сначала надо идентифицировать именно как HID из всех подключаемых к USB.
Ответить

Вернуться в «Интеграция с ПК»