Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить

HID и USB в Visual Basic.

Ср апр 19, 2017 11:42:04

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

ПС. По аналогии например, узнать сколько звуковух на компе - осьмушка строчки кода (X = waveInGetNumDevs) в Визуал Бейсике.

Re: HID и USB в Visual Basic.

Ср апр 19, 2017 14:12:23

http://www.radiokot.ru/forum/search.php ... ds=HID&fid[]=24&sc=1&terms=tag&sf=tag&sr=topics&submit=Search
http://www.radiokot.ru/forum/viewtopic. ... it=HID_Lib

Re: HID и USB в Visual Basic.

Пт апр 21, 2017 01:35:09

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

Re: HID и USB в Visual Basic.

Пт апр 21, 2017 07:48:44

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", основанную на использовании данной функции.

Re: HID и USB в Visual Basic.

Пт апр 21, 2017 22:58:35

Вчера его скачал "промеж" других. Спасибо за наводку. Есть такая функция. И работает. Но - как это сделано?
Ведь HID.dll как бы основа всего ХИДа, и в нем нет такой полезной функции ? Странно... Согласитесь ведь, "надергивать" функции из разных чужих длл-лек -несолидно даже на Бейсике, когда есть мама-Винда.

Re: HID и USB в Visual Basic.

Сб апр 22, 2017 09:00:20

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

Re: HID и USB в Visual Basic.

Вс апр 23, 2017 23:51:04

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