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