Уважаемые коты, ткните носом на информацию. А то похоже скоро опухоль мозга будет от гугления.
Нужно из Visual Basic общаться с USB окружением, чаще HID-ами. Например посмотреть сколько устройств подключено.
Их идентификаторы Виды-Пиды. Обратиться к конкретному Виду-Пиду. Узнать его возможности. Послать ему или от него
байт(ы) данных. И тд. В самом Бейсике этого конечно нет, поэтому делается через вызовы функций из DLL-лек. А это Бейсик может (ну и я чуть-чуть). Очень хоцца конкретных примеров кода. Абсолютно уверен, что все это кто-то умный уже сделал и опубликовал.
Заранее бесконечно благодарен.
ПС. По аналогии например, узнать сколько звуковух на компе - осьмушка строчки кода (X = waveInGetNumDevs) в Визуал Бейсике.
HID и USB в Visual Basic.
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1482
- Зарегистрирован: Вс май 13, 2012 00:01:54
- Реклама
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1482
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: HID и USB в Visual Basic.
Ага. Спасибо. Кое чего получается. Например функцией "Handle = HID_OpenDevice(PID, VID, VersionNumber, Index)" проверяем наличие конкретного Вида-Пида. Можно организовать цикл перебора VID-PID (0-65535). Но это жуткое количество времени. Существует ли способ просто "спросить" комп- к тебе вообще подключены какие-нибудь HID-устройства и сколько. А если нет, то нефиг и искать. Прошу прощенья за такой примитивизм - я "железячник" по профессии. И чегото не нагугливаю.
Re: HID и USB в Visual Basic.
Это больше 4 миллиардов комбинаций. Заранее неизвестны PID и VID?Ariadna-on-Line писал(а):Можно организовать цикл перебора VID-PID (0-65535).
Функция HID_DeviceInfo из HID_Lib_PlusAriadna-on-Line писал(а):Существует ли способ просто "спросить" комп- к тебе вообще подключены какие-нибудь HID-устройства и сколько.
Функция HID_Devicelnfo(*Struct.HID_Devicelnfo) помещает в структуру HID_Devicelnfo, указатель на которую должен быть передан в качестве аргумента, список всех НID устройств, подключенных к компьютеру и их конфигурацию. Описание структуры HID_Devlcelnfo на языке PureBasic.Переменные с префиксом w имеют тип Word занимают по два байта памяти компьютера, а переменные с префиксом s — строкового типа. В примерах в архиве можно найти утилиту "HIDInfo", основанную на использовании данной функции.Код: Выделить всё
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
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1482
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: HID и USB в Visual Basic.
Вчера его скачал "промеж" других. Спасибо за наводку. Есть такая функция. И работает. Но - как это сделано?
Ведь HID.dll как бы основа всего ХИДа, и в нем нет такой полезной функции ? Странно... Согласитесь ведь, "надергивать" функции из разных чужих длл-лек -несолидно даже на Бейсике, когда есть мама-Винда.
Ведь HID.dll как бы основа всего ХИДа, и в нем нет такой полезной функции ? Странно... Согласитесь ведь, "надергивать" функции из разных чужих длл-лек -несолидно даже на Бейсике, когда есть мама-Винда.
- Реклама
Re: HID и USB в Visual Basic.
Функции в setupapi.dllAriadna-on-Line писал(а):Ведь HID.dll как бы основа всего ХИДа, и в нем нет такой полезной функции ?
Если внимательно посмотреть на функцию HID_OpenDevice то можно заметить что в цикле производится перечисление всех (по крайней мере первых 256) HID устройств и сравнение их PID/VID с требуемым.
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1482
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: HID и USB в Visual Basic.
Нашел наконец. Работает. Разберусь до конца - отпишусь.
Действительно не допёр- ведь HID устройства сначала надо идентифицировать именно как HID из всех подключаемых к USB.
Действительно не допёр- ведь HID устройства сначала надо идентифицировать именно как HID из всех подключаемых к USB.


