summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2021-08-19 14:35:33 +0300
committerJuha Vuolle <juha.vuolle@insta.fi>2021-08-26 10:19:42 +0300
commit117087dbbf235d4b9f7533c0df4c9c3cc795c0cf (patch)
tree22e2fcb1e755c88ec116e180ae3b7c89f1f554ac
parentaab0cb269d5ce044ced9321a7f25ed441bf7a938 (diff)
Remove linux sysfs backend
The backend provided accelerometer. The backend has been undocumented since the beginning and has been virtually without any activity during its existence. Pick-to: 6.2 Task-number: QTBUG-95789 Change-Id: I7efb3ed10e68a729bc4c834b6c7c3bab9fd8169f Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r--src/plugins/sensors/CMakeLists.txt4
-rw-r--r--src/plugins/sensors/linux/CMakeLists.txt25
-rw-r--r--src/plugins/sensors/linux/linuxsysaccelerometer.cpp188
-rw-r--r--src/plugins/sensors/linux/linuxsysaccelerometer.h74
-rw-r--r--src/plugins/sensors/linux/main.cpp72
-rw-r--r--src/plugins/sensors/linux/plugin.json1
-rw-r--r--src/sensors/doc/src/compatmap.qdoc2
-rw-r--r--src/sensors/doc/src/qt6-changes.qdoc5
8 files changed, 6 insertions, 365 deletions
diff --git a/src/plugins/sensors/CMakeLists.txt b/src/plugins/sensors/CMakeLists.txt
index bf42ae8d..7b11ea7f 100644
--- a/src/plugins/sensors/CMakeLists.txt
+++ b/src/plugins/sensors/CMakeLists.txt
@@ -14,10 +14,6 @@ if (QT_FEATURE_winrt_sensors AND NOT SENSORS_PLUGINS OR "winrt" IN_LIST SENSORS_
add_subdirectory(winrt)
endif()
-if (LINUX AND NOT SENSORS_PLUGINS OR "linux" IN_LIST SENSORS_PLUGINS)
- add_subdirectory(linux)
-endif()
-
if (IOS AND NOT SENSORS_PLUGINS OR "ios" IN_LIST SENSORS_PLUGINS)
add_subdirectory(ios)
endif()
diff --git a/src/plugins/sensors/linux/CMakeLists.txt b/src/plugins/sensors/linux/CMakeLists.txt
deleted file mode 100644
index 5df7029d..00000000
--- a/src/plugins/sensors/linux/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#####################################################################
-## LinuxSensorPlugin Plugin:
-#####################################################################
-
-qt_internal_add_plugin(LinuxSensorPlugin
- OUTPUT_NAME qtsensors_linuxsys
- PLUGIN_TYPE sensors
- SOURCES
- linuxsysaccelerometer.cpp linuxsysaccelerometer.h
- main.cpp
- LIBRARIES
- Qt::Core
- Qt::Sensors
-)
-
-#### Keys ignored in scope 1:.:.:linux.pro:<TRUE>:
-# OTHER_FILES = "plugin.json"
-
-## Scopes:
-#####################################################################
-
-qt_internal_extend_target(LinuxSensorPlugin CONDITION NOT ANDROID
- LIBRARIES
- rt
-)
diff --git a/src/plugins/sensors/linux/linuxsysaccelerometer.cpp b/src/plugins/sensors/linux/linuxsysaccelerometer.cpp
deleted file mode 100644
index c5c7e375..00000000
--- a/src/plugins/sensors/linux/linuxsysaccelerometer.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "linuxsysaccelerometer.h"
-#include <QtCore/QDebug>
-#include <QtCore/QtGlobal>
-#include <QtCore/QFile>
-#include <QtCore/QDebug>
-#include <QtCore/QTimer>
-
-#include <QtCore/QStringList>
-
-#include <time.h>
-#include <errno.h>
-
-char const * const LinuxSysAccelerometer::id("linuxsys.accelerometer");
-
-// This plugin reads the accelerometer from a sys interface.
-
-// test machine (laptop):
-// QT_ACCEL_FILEPATH=/sys/devices/platform/lis3lv02d/position
-// QT_ACCEL_DATADIVISOR=7
-// QT_ACCEL_DELIMITER=,
-
-quint64 produceTimestamp()
-{
- struct timespec tv;
- int ok;
-
-#ifdef CLOCK_MONOTONIC_RAW
- ok = clock_gettime(CLOCK_MONOTONIC_RAW, &tv);
- if (ok != 0)
-#endif
- ok = clock_gettime(CLOCK_MONOTONIC, &tv);
- Q_ASSERT(ok == 0);
-
- quint64 result = (tv.tv_sec * 1000000ULL) + (tv.tv_nsec * 0.001); // scale to microseconds
- return result;
-}
-
-// TODO get output template from env and apply
-// Currently this assumes the output is like:
-// (x,y,z) or x,y,z
-
-LinuxSysAccelerometer::LinuxSysAccelerometer(QSensor *sensor)
- : QSensorBackend(sensor)
- , m_timerid(0)
- , path(QString())
- , divisor(0)
- , delimiter(QString())
-{
- setReading<QAccelerometerReading>(&m_reading);
- addDataRate(1, 100); // 100Hz
- addOutputRange(-22.418, 22.418, 0.17651); // 2G
-// not sure how to retrieve proper range
-
- path = QString::fromLatin1(qgetenv("QT_ACCEL_FILEPATH"));
- bool ok;
- divisor = QString::fromLatin1(qgetenv("QT_ACCEL_DATADIVISOR")).toInt(&ok);
- if (divisor == 0 || !ok) {
- divisor = 1;
- }
- delimiter = QString::fromLatin1(qgetenv("QT_ACCEL_DELIMITER"));
- file.setFileName(path);
-}
-
-LinuxSysAccelerometer::~LinuxSysAccelerometer()
-{
-}
-
-void LinuxSysAccelerometer::start()
-{
- if (m_timerid)
- return;
-
- if (!openFile())
- return;
-
- int dataRate = sensor()->dataRate();
- if (dataRate == 0) {
- if (sensor()->availableDataRates().count())
- dataRate = sensor()->availableDataRates().first().second;
- else
- dataRate = 1;
- }
-
- int interval = 1000 / dataRate;
-
- if (interval)
- m_timerid = startTimer(interval);
-}
-
-void LinuxSysAccelerometer::stop()
-{
- if (m_timerid) {
- killTimer(m_timerid);
- m_timerid = 0;
- }
- closeFile();
-}
-
-void LinuxSysAccelerometer::poll()
-{
- if (!file.isOpen())
- return;
-
- file.seek(0);
- QString str = file.readLine();
- if (str.isEmpty()) {
- return;
- }
- str = str.simplified();
-
- if (!str.at(0).isNumber() && str.at(0) != '-') {
- str.remove(0,1);
- }
-
- if (!str.at(str.size()-1).isNumber()) {
- str.chop(1);
- }
-
- QStringList accelDataList = str.split(delimiter);
-
- m_reading.setTimestamp(produceTimestamp());
- m_reading.setX(-accelDataList.at(0).toFloat() / divisor);
- m_reading.setY(-accelDataList.at(1).toFloat() / divisor);
- m_reading.setZ(-accelDataList.at(2).toFloat() / divisor);
-
- newReadingAvailable();
-}
-
-void LinuxSysAccelerometer::timerEvent(QTimerEvent * /*event*/)
-{
- poll();
-}
-
-bool LinuxSysAccelerometer::openFile()
-{
- if (!path.isEmpty()
- && !file.open(QIODevice::ReadOnly)) {
- qWarning() << "Could not open file" << strerror(errno);
- return false;
- }
- return true;
-}
-
-void LinuxSysAccelerometer::closeFile()
-{
- file.close();
-}
-
-
diff --git a/src/plugins/sensors/linux/linuxsysaccelerometer.h b/src/plugins/sensors/linux/linuxsysaccelerometer.h
deleted file mode 100644
index af89bf77..00000000
--- a/src/plugins/sensors/linux/linuxsysaccelerometer.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef LINUXSYSACCELEROMETER_H
-#define LINUXSYSACCELEROMETER_H
-
-#include <qsensorbackend.h>
-#include <qaccelerometer.h>
-#include <QtCore/QFile>
-
-
-class LinuxSysAccelerometer : public QSensorBackend
-{
-public:
- static char const * const id;
-
- LinuxSysAccelerometer(QSensor *sensor);
- ~LinuxSysAccelerometer();
-
- void start() override;
- void stop() override;
- void poll();
- void timerEvent(QTimerEvent * /*event*/) override;
-
-private:
- QAccelerometerReading m_reading;
- int m_timerid;
-
- bool openFile();
- void closeFile();
- QString path;
- QFile file;
- float divisor;
- QString delimiter;
-};
-
-#endif // LINUXSYSACCELEROMETER_H
-
diff --git a/src/plugins/sensors/linux/main.cpp b/src/plugins/sensors/linux/main.cpp
deleted file mode 100644
index 6531d9d3..00000000
--- a/src/plugins/sensors/linux/main.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtSensors module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "linuxsysaccelerometer.h"
-
-#include <qsensorplugin.h>
-#include <qsensorbackend.h>
-#include <qsensormanager.h>
-
-#include <QtCore/QFile>
-#include <QtCore/QDebug>
-
-class LinuxSensorPlugin : 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
- {
- QString path = QString::fromLatin1(qgetenv("QT_ACCEL_FILEPATH"));
- if (!path.isEmpty() && !QSensorManager::isBackendRegistered(QAccelerometer::sensorType, LinuxSysAccelerometer::id))
- QSensorManager::registerBackend(QAccelerometer::sensorType, LinuxSysAccelerometer::id, this);
- }
-
- QSensorBackend *createBackend(QSensor *sensor) override
- {
- if (sensor->identifier() == LinuxSysAccelerometer::id)
- return new LinuxSysAccelerometer(sensor);
-
- return 0;
- }
-};
-
-#include "main.moc"
-
diff --git a/src/plugins/sensors/linux/plugin.json b/src/plugins/sensors/linux/plugin.json
deleted file mode 100644
index f3863f11..00000000
--- a/src/plugins/sensors/linux/plugin.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "Keys": [ "linux" ] }
diff --git a/src/sensors/doc/src/compatmap.qdoc b/src/sensors/doc/src/compatmap.qdoc
index 48384ee2..ef1340b8 100644
--- a/src/sensors/doc/src/compatmap.qdoc
+++ b/src/sensors/doc/src/compatmap.qdoc
@@ -62,7 +62,7 @@
<tr>
<td nowrap="nowrap">Accelerometer</td>
<td bgcolor="green"></td>
- <td bgcolor="green"></td>
+ <td bgcolor="gray"></td>
<td bgcolor="green"></td>
<td bgcolor="green"></td>
<td bgcolor="gray"></td>
diff --git a/src/sensors/doc/src/qt6-changes.qdoc b/src/sensors/doc/src/qt6-changes.qdoc
index c82bf561..6f3c3598 100644
--- a/src/sensors/doc/src/qt6-changes.qdoc
+++ b/src/sensors/doc/src/qt6-changes.qdoc
@@ -71,6 +71,11 @@
backend, and as such they are not currently listed as supported sensor
types.
+ \section2 Linux
+
+ The Linux sysfs accelerometer support has been removed. The backend is
+ undocumented and has been without any real activity for almost 10 years.
+
\section1 API changes
\section2 Deleted typedef for qtimestamp