Создание плагина датчика
Как загружается плагин датчика
Поскольку бэкенды датчиков создаются по требованию, плагин датчика загружается и его просят зарегистрировать бэкенды датчиков, за которые он отвечает. Плагин должен реализовать 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()
{
QSensorManager::registerBackend(QAccelerometer::type, MyBackend::id, this);
}
QSensorBackend *createBackend(QSensor *sensor)
{
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.6/creating-a-sensor-plugin.html