Создание плагина датчика
Как загружается плагин датчика
Поскольку бэкэнды датчиков создаются по требованию, плагин датчика загружается и просит зарегистрировать бэкэнды датчиков, за которые он отвечает. Плагин должен реализовывать QSensorPluginInterface::registerSensors() и вызывать QSensorManager::registerBackend() для регистрации доступных бэкэндов. Как правило, плагин также наследуется от QSensorBackendFactory и реализует QSensorBackendFactory::createBackend() для создания бэкэндов, которые он зарегистрировал.
Простейший плагин будет иметь только один бэкэнд датчика, хотя нет никаких причин, по которым в плагине не может быть несколько бэкэндов датчиков.
Следующий пример.
class MyPluginClass : public QObject, public QSensorPluginInterface, public QSensorBackendFactory
{
Q_OBJECT
//Q_PLUGIN_METADATA(IID "com.qt-project.Qt.QSensorPluginInterface/1.0" FILE "plugin.json")
Q_INTERFACES(QSensorPluginInterface)
public:
void registerSensors() override
{
QSensorManager::registerBackend(QAccelerometer::type, MyBackend::id, this);
}
QSensorBackend *createBackend(QSensor *sensor) override
{
if (sensor->identifier() == MyBackend::id)
return new MyBackend(sensor);
return 0;
}
};
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/creating-a-sensor-plugin.html