Работаем с HID девайсом (C++ + Hid API) — выводим информацию

Как уже наверное догадались постоянные читатели сайта, я ударился в изучение микроконтроллеров. Соорудив пробный 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

зы не люблю о таком писать.. и рассказывать не о чем..

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий