diff options
Diffstat (limited to 'src/plugins/sensors/sensortag/sensortagbase.h')
-rw-r--r-- | src/plugins/sensors/sensortag/sensortagbase.h | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/src/plugins/sensors/sensortag/sensortagbase.h b/src/plugins/sensors/sensortag/sensortagbase.h deleted file mode 100644 index 5d61aacf..00000000 --- a/src/plugins/sensors/sensortag/sensortagbase.h +++ /dev/null @@ -1,252 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 Lorn Potter -** Copyright (C) 2017 Canonical, 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 SENSORTAGBASEPRIVATE_H -#define SENSORTAGBASEPRIVATE_H - -#include <QObject> -#include <QSensorBackend> - -#include <QBluetoothDeviceDiscoveryAgent> -#include <QBluetoothDeviceInfo> -#include <QLowEnergyController> -#include <QLowEnergyService> - -#include <QAccelerometerReading> -#include <QGyroscopeReading> -#include <QMagnetometerReading> - -class SensorTagBase; - -class SensorTagBasePrivate : public QObject -{ - Q_OBJECT - Q_DECLARE_PUBLIC(SensorTagBase) -public: - explicit SensorTagBasePrivate(QObject *parent = 0); - - QLowEnergyService *lightService = nullptr; - QLowEnergyService *temperatureService = nullptr; - QLowEnergyService *barometerService = nullptr; - QLowEnergyService *humidityService = nullptr; - QLowEnergyService *movementService = nullptr; - QLowEnergyService *acceleratorService = nullptr; - QLowEnergyService *magnetometerService = nullptr; - QLowEnergyService *gyroscopeService = nullptr; - - void enableService(const QBluetoothUuid &uuid); - void disableService(const QBluetoothUuid &uuid); - - static SensorTagBasePrivate *instance(); - -signals: - void accelDataAvailable(const QAccelerometerReading &); - void gyroDataAvailable(const QGyroscopeReading &); - void magDataAvailable(const QMagnetometerReading &); - - void luxDataAvailable(qreal); - void tempDataAvailable(qreal); - void humidityDataAvailable(qreal); - void pressureDataAvailable(qreal); - void compassDataAvailable(qreal); - -public slots: - void enableLight(bool); - void enableTemp(bool); - void enablePressure(bool); - void enableHumidity(bool); - void enableMovement(bool); - - void deviceFound(const QBluetoothDeviceInfo&); - void scanFinished(); - - void deviceScanError(QBluetoothDeviceDiscoveryAgent::Error); - void serviceDiscovered(const QBluetoothUuid &); - - void controllerError(QLowEnergyController::Error); - - void sensortagDeviceConnected(); - void deviceDisconnected(); - - void serviceStateChanged(QLowEnergyService::ServiceState s); - void updateCharacteristic(const QLowEnergyCharacteristic &c, - const QByteArray &value); - void serviceError(QLowEnergyService::ServiceError e); - void doConnections(QLowEnergyService *service); - -private slots: - void deviceSearch(); - void serviceDiscoveryFinished(); - void deviceSearchTimeout(); - -private: - - void convertLux(const QByteArray &value); - void convertTemperature(const QByteArray &value); - void convertBarometer(const QByteArray &value); - void convertHumidity(const QByteArray &value); - void convertAccelerometer(const QByteArray &value); - void convertMagnetometer(const QByteArray &value); - void convertGyroscope(const QByteArray &value); - - QBluetoothDeviceDiscoveryAgent *m_deviceDiscoveryAgent = nullptr; - QLowEnergyDescriptor m_notificationDesc; - - QLowEnergyController *m_control = nullptr; - QLowEnergyService *infoService = nullptr; - - QAccelerometerReading accelReading; - QGyroscopeReading gyroReading; - QMagnetometerReading magReading; - - bool discoveryDone = false; - QList <QBluetoothUuid> enabledServiceUuids; - SensorTagBase *q_ptr; - - bool accelerometerEnabled = false; - bool gyroscopeEnabled = false; - bool magnetometerEnabled = false; - - const QByteArray enableSensorCharacteristic = QByteArrayLiteral("\x01"); - const QByteArray disableSensorCharacteristic = QByteArrayLiteral("\x00"); - - const QByteArray enableNotificationsCharacteristic = QByteArrayLiteral("\x01\x00"); - const QByteArray disableNotificationsCharacteristic = QByteArrayLiteral("\x00\x00"); -}; - -const QBluetoothUuid TI_SENSORTAG_TEMPERATURE_SERVICE(QUuid("{f000aa00-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_IR_TEMPERATURE_DATA(QUuid("{f000aa01-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_IR_TEMPERATURE_CONTROL(QUuid("{f000aa02-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_IR_TEMPERATURE_PERIOD(QUuid("{f000aa03-0451-4000-b000-000000000000}")); - -const QBluetoothUuid TI_SENSORTAG_ACCELEROMETER_SERVICE(QUuid("{f000aa10-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_ACCELEROMETER_DATA(QUuid("{f000aa11-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_ACCELEROMETER_CONTROL(QUuid("{f000aa12-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_ACCELEROMETER_PERIOD(QUuid("{f000aa13-0451-4000-b000-000000000000}")); - -const QBluetoothUuid TI_SENSORTAG_HUMIDTIY_SERVICE(QUuid("{f000aa20-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_HUMIDTIY_DATA(QUuid("{f000aa21-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_HUMIDTIY_CONTROL(QUuid("{f000aa22-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_HUMIDTIY_PERIOD(QUuid("{f000aa23-0451-4000-b000-000000000000}")); - -const QBluetoothUuid TI_SENSORTAG_MAGNETOMETER_SERVICE(QUuid("{f000aa30-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_MAGNETOMETER_DATA(QUuid("{f000aa31-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_MAGNETOMETER_CONTROL(QUuid("{f000aa32-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_MAGNETOMETER_PERIOD(QUuid("{f000aa33-0451-4000-b000-000000000000}")); - -const QBluetoothUuid TI_SENSORTAG_BAROMETER_SERVICE(QUuid("{f000aa40-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_BAROMETER_DATA(QUuid("{f000aa41-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_BAROMETER_CONTROL(QUuid("{f000aa42-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_BAROMETER_CALIBRATION(QUuid("{f000aa43-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_BAROMETER_PERIOD(QUuid("{f000aa44-0451-4000-b000-000000000000}")); - -const QBluetoothUuid TI_SENSORTAG_GYROSCOPE_SERVICE(QUuid("{f000aa50-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_GYROSCOPE_DATA(QUuid("{f000aa51-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_GYROSCOPE_CONTROL(QUuid("{f000aa52-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_GYROSCOPE_PERIOD(QUuid("{f000aa53-0451-4000-b000-000000000000}")); - -// test service "{f000aa60-0451-4000-b000-000000000000}" - -const QBluetoothUuid TI_SENSORTAG_IO_SERVICE(QUuid("{f000aa64-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_IO_DATA(QUuid("{f000aa65-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_IO_CONTROL(QUuid("{f000aa66-0451-4000-b000-000000000000}")); - -const QBluetoothUuid TI_SENSORTAG_LIGHT_SERVICE(QUuid("{f000aa70-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_LIGHT_DATA(QUuid("{f000aa71-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_LIGHT_CONTROL(QUuid("{f000aa72-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_LIGHT_PERIOD(QUuid("{f000aa73-0451-4000-b000-000000000000}")); - -const QBluetoothUuid TI_SENSORTAG_MOVEMENT_SERVICE(QUuid("{f000aa80-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_MOVEMENT_DATA(QUuid("{f000aa81-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_MOVEMENT_CONTROL(QUuid("{f000aa82-0451-4000-b000-000000000000}")); -const QBluetoothUuid TI_SENSORTAG_MOVEMENT_PERIOD(QUuid("{f000aa83-0451-4000-b000-000000000000}")); - -// keypress "{f000ffe0-0000-1000-8000-00805f9b34fb" - -// Connection Control Service "{f000ccc0-0451-4000-b000-000000000000}" -// OAD (over air download) Service "{f000ffc0-0451-4000-b000-000000000000}" - -const QBluetoothUuid TI_SENSORTAG_INFO_SERVICE(QUuid("{0000180a-0000-1000-8000-00805f9b34fb}")); -//we might want to use these somehow -//const QBluetoothUuid TI_SENSORTAG_BATTERY_SERVICE "180F" -//const QBluetoothUuid TI_SENSORTAG_BATTERY_BATTERY_LEVEL "2A19" - -// {00001800-0000-1000-8000-00805f9b34fb} //Generic Access Service -// {00001801-0000-1000-8000-00805f9b34fb} //Generic Attribute Service - -class SensorTagBase : public QSensorBackend -{ - Q_OBJECT - Q_DECLARE_PRIVATE(SensorTagBase) -public: - SensorTagBase(QSensor *sensor); - virtual ~SensorTagBase(); - - quint64 produceTimestamp(); -signals: - void accelDataAvailable(const QAccelerometerReading &); - void luxDataAvailable(qreal); - void tempDataAvailable(qreal); - void humidityDataAvailable(qreal); - void pressureDataAvailable(qreal); - void gyroDataAvailable(const QGyroscopeReading &); - void magDataAvailable(const QMagnetometerReading &); - -protected: - void start() override; - void stop() override; - QLowEnergyService *leService; - QBluetoothUuid *serviceId; - -private: - SensorTagBasePrivate *d_ptr; - friend class SensorTagTemperatureSensor; - friend class SensorTagAls; - friend class SensorTagHumiditySensor; - friend class SensorTagLightSensor; - - friend class SensorTagPressureSensor; - friend class SensorTagAccelerometer; - - friend class SensorTagGyroscope; - friend class SensorTagMagnetometer; -}; - -#endif // SENSORTAGBASEPRIVATE_H |