Класс Usb
(Aurora::Devices::Usb)
Подключённое USB-устройство. Подробнее...
Класс Usb является частью библиотеки libdevicewarden и предоставляет доступ к свойствам
USB-устройства, подключённого к системе, через D-Bus-интерфейс сервиса
ru.auroraos.DeviceWarden1.
| Подключение: | #include <usb.hpp> |
Свойства
- deviceClass : const QString
- manufacturer : const QString
- product : const QString
- productId : const QString
- productVersion : const QString
- serial : const QString
- vendorId : const QString
Публичные функции
| Usb(const QString &objectPath, const QVariantMap &properties, QObject *parent = nullptr) | |
| ~Usb() = default | |
| QString | deviceClass() const |
| int | fileDescriptor() |
| QString | manufacturer() const |
| QString | product() const |
| QString | productId() const |
| QString | productVersion() const |
| QString | serial() const |
| QString | vendorId() const |
Подробное описание
Подключённое USB-устройство.
Позволяет взаимодействовать с USB-устройством.
Экземпляр класса создаётся на основе данных, полученных от менеджера устройств
(Aurora::Devices::Manager), и содержит набор свойств для идентификации устройства.
Для получения файлового дескриптора, который может быть использован для работы с
устройством через библиотеку libusb, предусмотрен метод fileDescriptor().
Важно! Системная библиотека libusb не является публичным API ОС Аврора и
не предназначена для официального использования. Если для работы с USB-оборудованием
требуется libusb, разработчику необходимо собрать собственную версию библиотеки.
Пример сборки и использования libusb приведён в демонстрационном проекте
USB Use Cases.
Описание свойств
deviceClass : const QString
Содержит класс устройства в соответствии со спецификацией USB-IF.
Класс устройства определяет его функциональное назначение, например, аудиоустройство, устройство хранения данных или интерфейс взаимодействия с человеком (HID).
Функции доступа:
| QString | deviceClass() const |
manufacturer : const QString
Содержит имя производителя устройства.
Значение свойства позволяет идентифицировать компанию-изготовителя оборудования.
Функции доступа:
| QString | manufacturer() const |
product : const QString
Содержит название модели устройства.
Название модели обычно указывается производителем и может использоваться для отображения информации об устройстве в пользовательском интерфейсе.
Функции доступа:
| QString | product() const |
productId : const QString
Содержит уникальный 16-битный код модели устройства.
Идентификатор продукта (PID) присваивается производителем и в сочетании с идентификатором производителя (VID) однозначно определяет модель устройства.
Функции доступа:
| QString | productId() const |
productVersion : const QString
Содержит версию модели устройства.
Номер версии позволяет различать модификации одной и той же модели оборудования.
Функции доступа:
| QString | productVersion() const |
serial : const QString
Содержит серийный номер устройства.
Функции доступа:
| QString | serial() const |
vendorId : const QString
Содержит уникальный 16-битный код производителя устройства.
Идентификатор производителя (VID) присваивается организации USB-IF и используется совместно с идентификатором продукта (PID) для идентификации устройства.
Функции доступа:
| QString | vendorId() const |
Описание функций-членов
Usb::Usb(const QString &objectPath, const QVariantMap &properties, QObject *parent = nullptr)
Создаёт экземпляр Usb с параметрами по умолчанию.
Параметр objectPath задаёт путь к объекту на D-Bus-шине, а properties содержит
исходный набор свойств устройства, полученный от менеджера.
[default] Usb::~Usb()
Уничтожает экземпляр Usb.
int Usb::fileDescriptor()
Возвращает файловый дескриптор узла устройства. Полученный файловый дескриптор может затем быть
использован для создания устройства libusb. Дальнейшие действия ограничены версией libusb.
Примечание. Устройство недоступно без добавления в белый список. Белый список может быть глобальным, пользовательским или привязанным к конкретному приложению.
Если белый список пуст, доступ предоставляется всем приложениям и пользователям. Если в белом списке есть записи, доступ разрешается только устройствам, соответствующим хотя бы одному правилу (правила применяются через логическое ИЛИ).
Устройство будет доступно, если оно включено в глобальный белый список, в белый список пользователя, под которым запущено приложение, или в белый список самого приложения.
Управление белым списком осуществляется через
интерфейс SerialManager. Без соответствующей записи в белом списке вызов
fileDescriptor() не сможет открыть устройство.