Как уже наверное догадались постоянные читатели сайта, я ударился в изучение микроконтроллеров. Соорудив пробный HID девайс повозил мышью, порадовался. Захотелось «поиграть» более подробно… Потаскать данные и тд..
Итак. В этом не лёгком деле нам поможет HID API. Это кросплатформенная библиотека для работы с HID устройствами..
Можете конечно поиграть с libusb и прочими.. Но мне лень..
Первым делом сливаем её c git :
git clone git://github.com/signal11/hidapi.git
Теперь нам понадобиться файлы hidapi.h и hid.c
Первый можно найти в каталоге hidapi
Второй же ищите в каталоге с названием вашей ОС
Я в Linux такчто дальше для него. Если не выходит смотри в Makefile
Теперь прилинкуйте к проекту либы: udev и rt
Флаг -l если что…
И заинклудте hidapi.h
Тут для каждой среды по разному так что описывать бесполезно…
Теперь что касается программы.
Первым делом инклуды:
#include <iostream>
#include <stdio.h>
using namespace std;
#include «hidapi.h»
Теперь код:
int main() {
struct hid_device_info *devs, *cur_dev;
devs = hid_enumerate(0x0, 0x0);
cur_dev = devs;
while (cur_dev) {
printf(«Device Found\n type: %04hx %04hx\n path: %s\n serial_number: %ls»,
cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number);
printf(«\n»);
printf(» Manufacturer: %ls\n», cur_dev->manufacturer_string);
printf(» Product: %ls\n», cur_dev->product_string);
printf(«\n»);
cur_dev = cur_dev->next;
}
hid_free_enumeration(devs);
return 0;
}
Это выведет все найденные в системе (подключенные) hid устройства и выведет информацию о них.
Пример вывода:
Device Found
type: 046d c062
path: /dev/hidraw0
serial_number: (null)
Manufacturer: Logitech
Product: USB Laser Mouse
зы не люблю о таком писать.. и рассказывать не о чем..