Документация
ОС Аврора 5.2.0

Libdevicewarden

Аврора ОС предоставляет библиотеку libdevicewarden для доступа к подключенным устройствам. На данный момент поддерживаются:

Доступ к устройствам предоставляется с помощью Aurora::Devices::Manager.

Для каждого типа устройств библиотека предоставляет набор геттеров для идентификации. Кроме того, она обеспечивает управляемый доступ к узлу устройства. При наличии соответствующих разрешений от системного администратора, приложение сможет получить доступ к файловому дескриптору определённого узла устройства. Для дальнейшей работы используются другие системные API (такие как libusb для USB-оборудования).

Обычно сценарий работы выглядит следующим образом:

 libusb_context* context;
 libusb_device_handle *devh;
 libusb_device_descriptor desc;
 libusb_set_option(context, LIBUSB_OPTION_NO_DEVICE_DISCOVERY, nullptr);
 libusb_init(&context);

 auto manager = new Aurora::Devices::Manager();
 auto usbDevices = manager->getUsbDevices();
 for (const auto& device: usbDevices) {
     if (device->serial() == "example") {
         libusb_wrap_sys_device(context, (intptr_t)device->fileDescriptor(), &devh);
         auto usbDevice = libusb_get_device(devh);
         libusb_get_device_descriptor(usbDevice, &desc);

         auto data = new uint8_t[255];
         libusb_get_string_descriptor_ascii(devh, desc.iProduct, data, 255);
         ...
     }
 }

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.