Spec-Zone.ru › Qt 5.6

Определение сенсора по умолчанию для типа

Для одного типа может существовать несколько сенсоров

Сенсоры были разработаны таким образом, что для данного типа может существовать несколько сенсоров. Почему? Рассмотрим этот пример.

У устройства N900 встроенный акселерометр. Оно также поддерживает Bluetooth и может подключаться к игровому контроллеру, который также оснащён акселерометром. Для разработчика игры эти два устройства концептуально представляют один и тот же тип.

Сенсор по умолчанию для типа

Чтобы избежать необходимости знать (или проверять) какой сенсор по умолчанию для данного типа, система будет использовать сенсор по умолчанию для типа. В большинстве случаев это то, что хочет сделать разработчик приложения. Если разработчик приложения хочет выбрать конкретный сенсор, он должен вызвать метод QSensor::setIdentifier() перед запуском сенсора, чтобы использовать соответствующий бэкенд.

Однако с точки зрения системы выбор сенсора по умолчанию усложняется. Библиотека сенсоров использует первый зарегистрированный идентификатор в качестве значения по умолчанию. Это означает, что порядок регистрации бэкэндов сенсоров важен, поэтому система позволит файлу конфигурации определить значение по умолчанию вместо этого.

Sensors.conf

Файл конфигурации, определяющий сенсор по умолчанию для типа, называется Sensors.conf. При наличии он находится в /etc/xdg/QtProject. Он имеет стандартный формат файла INI.

Настройки находятся в группе Default, и общий формат:

type = identifier

Пример: Sensors.conf гарантирует, что акселерометр N900 используется по умолчанию, не учитывая порядок регистрации бэкэндов.

[Default]
QAccelerometer = n900.accelerometer

Если в Sensors.conf указан идентификатор, который не зарегистрирован, система вернётся к первому зарегистрированному идентификатору в качестве значения по умолчанию.

Обратите внимание, что есть специальная логика, которая предотвращает превращение бэкэндов универсальной плагиновой библиотеки в сенсор по умолчанию, когда для того же типа зарегистрирован другой бэкенд. Эта логика означает, что идентификатор бэкенда, начинающийся с generic. , будет по умолчанию только в том случае, если для этого типа не зарегистрированы другие бэкэнды или если он указан в Sensors.conf.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/determining-the-default-sensor-for-a-type.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API