summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/sensors/qmlpressuresensor.cpp20
-rw-r--r--src/imports/sensors/qmlpressuresensor.h4
-rw-r--r--src/imports/sensors/sensors.cpp43
-rw-r--r--src/plugins/sensors/blackberry/bbpressuresensor.cpp1
-rw-r--r--src/plugins/sensors/blackberry/bbsensorbackend.cpp1
-rw-r--r--src/sensors/qpressuresensor.cpp27
-rw-r--r--src/sensors/qpressuresensor.h4
-rw-r--r--src/sensors/qpressuresensor_p.h3
-rw-r--r--src/sensors/qsensor.cpp4
-rw-r--r--src/sensors/qsensor.h1
-rw-r--r--tests/auto/qsensor/test_backends.h1
-rw-r--r--tests/auto/qsensor/tst_qsensor.cpp1
12 files changed, 109 insertions, 1 deletions
diff --git a/src/imports/sensors/qmlpressuresensor.cpp b/src/imports/sensors/qmlpressuresensor.cpp
index a21f7c0d..8f32b4e0 100644
--- a/src/imports/sensors/qmlpressuresensor.cpp
+++ b/src/imports/sensors/qmlpressuresensor.cpp
@@ -99,6 +99,7 @@ QmlPressureReading::QmlPressureReading(QPressureSensor *sensor)
: QmlSensorReading(sensor)
, m_sensor(sensor)
, m_pressure(0)
+ , m_temperature(0)
{
}
@@ -118,6 +119,19 @@ qreal QmlPressureReading::pressure() const
return m_pressure;
}
+/*!
+ \qmlproperty qreal PressureReading::temperature
+ This property holds the pressure sensor's temperature value in degrees Celsius.
+
+ Please see QPressureReading::temperature for information about this property.
+ \since QtSensors 5.2
+*/
+
+qreal QmlPressureReading::temperature() const
+{
+ return m_temperature;
+}
+
QSensorReading *QmlPressureReading::reading() const
{
return m_sensor->reading();
@@ -130,4 +144,10 @@ void QmlPressureReading::readingUpdate()
m_pressure = pressure;
Q_EMIT pressureChanged();
}
+
+ qreal temperature = m_sensor->reading()->temperature();
+ if (m_temperature != temperature) {
+ m_temperature = temperature;
+ Q_EMIT temperatureChanged();
+ }
}
diff --git a/src/imports/sensors/qmlpressuresensor.h b/src/imports/sensors/qmlpressuresensor.h
index 627915a6..c8c19fd2 100644
--- a/src/imports/sensors/qmlpressuresensor.h
+++ b/src/imports/sensors/qmlpressuresensor.h
@@ -65,14 +65,17 @@ class QmlPressureReading : public QmlSensorReading
{
Q_OBJECT
Q_PROPERTY(qreal pressure READ pressure NOTIFY pressureChanged)
+ Q_PROPERTY(qreal temperature READ temperature NOTIFY temperatureChanged REVISION 1)
public:
explicit QmlPressureReading(QPressureSensor *sensor);
~QmlPressureReading();
qreal pressure() const;
+ qreal temperature() const;
Q_SIGNALS:
void pressureChanged();
+ Q_REVISION(1) void temperatureChanged();
private:
QSensorReading *reading() const Q_DECL_OVERRIDE;
@@ -80,6 +83,7 @@ private:
QPressureSensor *m_sensor;
qreal m_pressure;
+ qreal m_temperature;
};
QT_END_NAMESPACE
diff --git a/src/imports/sensors/sensors.cpp b/src/imports/sensors/sensors.cpp
index 77ad754a..abcb3812 100644
--- a/src/imports/sensors/sensors.cpp
+++ b/src/imports/sensors/sensors.cpp
@@ -174,6 +174,49 @@ public:
qmlRegisterUncreatableType<QmlTiltSensorReading >(package, major, minor, "TiltReading", QLatin1String("Cannot create TiltReading"));
qmlRegisterType <QmlSensorGesture >(package, major, minor, "SensorGesture");
+
+ // Register the 5.2 interfaces
+ major = 5;
+ minor = 2;
+ qmlRegisterSingletonType <QmlSensorGlobal >(package, major, minor, "QmlSensors", global_object_50);
+ qmlRegisterUncreatableType<QmlSensorRange >(package, major, minor, "Range", QLatin1String("Cannot create Range"));
+ qmlRegisterUncreatableType<QmlSensorOutputRange >(package, major, minor, "OutputRange", QLatin1String("Cannot create OutputRange"));
+ qmlRegisterUncreatableType<QmlSensor,1 >(package, major, minor, "Sensor", QLatin1String("Cannot create Sensor"));
+ qmlRegisterUncreatableType<QmlSensorReading >(package, major, minor, "SensorReading", QLatin1String("Cannot create SensorReading"));
+ qmlRegisterType <QmlAccelerometer,1 >(package, major, minor, "Accelerometer");
+ qmlRegisterUncreatableType<QmlAccelerometerReading >(package, major, minor, "AccelerometerReading", QLatin1String("Cannot create AccelerometerReading"));
+ qmlRegisterType <QmlAltimeter >(package, major, minor, "Altimeter");
+ qmlRegisterUncreatableType<QmlAltimeterReading >(package, major, minor, "AltimeterReading", QLatin1String("Cannot create AltimeterReading"));
+ qmlRegisterType <QmlAmbientLightSensor >(package, major, minor, "AmbientLightSensor");
+ qmlRegisterUncreatableType<QmlAmbientLightSensorReading>(package, major, minor, "AmbientLightReading", QLatin1String("Cannot create AmbientLightReading"));
+ qmlRegisterType <QmlAmbientTemperatureSensor >(package, major, minor, "AmbientTemperatureSensor");
+ qmlRegisterUncreatableType<QmlAmbientTemperatureReading>(package, major, minor, "AmbientTemperatureReading", QLatin1String("Cannot create AmbientTemperatureReading"));
+ qmlRegisterType <QmlCompass >(package, major, minor, "Compass");
+ qmlRegisterUncreatableType<QmlCompassReading >(package, major, minor, "CompassReading", QLatin1String("Cannot create CompassReading"));
+ qmlRegisterType <QmlGyroscope >(package, major, minor, "Gyroscope");
+ qmlRegisterUncreatableType<QmlGyroscopeReading >(package, major, minor, "GyroscopeReading", QLatin1String("Cannot create GyroscopeReading"));
+ qmlRegisterType <QmlHolsterSensor >(package, major, minor, "HolsterSensor");
+ qmlRegisterUncreatableType<QmlHolsterReading >(package, major, minor, "HolsterReading", QLatin1String("Cannot create HolsterReading"));
+ qmlRegisterType <QmlIRProximitySensor >(package, major, minor, "IRProximitySensor");
+ qmlRegisterUncreatableType<QmlIRProximitySensorReading >(package, major, minor, "IRProximityReading", QLatin1String("Cannot create IRProximityReading"));
+ qmlRegisterType <QmlLightSensor >(package, major, minor, "LightSensor");
+ qmlRegisterUncreatableType<QmlLightSensorReading >(package, major, minor, "LightReading", QLatin1String("Cannot create LightReading"));
+ qmlRegisterType <QmlMagnetometer >(package, major, minor, "Magnetometer");
+ qmlRegisterUncreatableType<QmlMagnetometerReading >(package, major, minor, "MagnetometerReading", QLatin1String("Cannot create MagnetometerReading"));
+ qmlRegisterType <QmlOrientationSensor >(package, major, minor, "OrientationSensor");
+ qmlRegisterUncreatableType<QmlOrientationSensorReading >(package, major, minor, "OrientationReading", QLatin1String("Cannot create OrientationReading"));
+ qmlRegisterType <QmlPressureSensor >(package, major, minor, "PressureSensor");
+ qmlRegisterUncreatableType<QmlPressureReading,1 >(package, major, minor, "PressureReading", QLatin1String("Cannot create PressureReading"));
+ qmlRegisterType <QmlProximitySensor >(package, major, minor, "ProximitySensor");
+ qmlRegisterUncreatableType<QmlProximitySensorReading >(package, major, minor, "ProximityReading", QLatin1String("Cannot create ProximityReading"));
+ qmlRegisterType <QmlRotationSensor >(package, major, minor, "RotationSensor");
+ qmlRegisterUncreatableType<QmlRotationSensorReading >(package, major, minor, "RotationReading", QLatin1String("Cannot create RotationReading"));
+ qmlRegisterType <QmlTapSensor >(package, major, minor, "TapSensor");
+ qmlRegisterUncreatableType<QmlTapSensorReading >(package, major, minor, "TapReading", QLatin1String("Cannot create TapReading"));
+ qmlRegisterType <QmlTiltSensor >(package, major, minor, "TiltSensor");
+ qmlRegisterUncreatableType<QmlTiltSensorReading >(package, major, minor, "TiltReading", QLatin1String("Cannot create TiltReading"));
+
+ qmlRegisterType <QmlSensorGesture >(package, major, minor, "SensorGesture");
}
};
diff --git a/src/plugins/sensors/blackberry/bbpressuresensor.cpp b/src/plugins/sensors/blackberry/bbpressuresensor.cpp
index 7098dec9..edbb3927 100644
--- a/src/plugins/sensors/blackberry/bbpressuresensor.cpp
+++ b/src/plugins/sensors/blackberry/bbpressuresensor.cpp
@@ -54,5 +54,6 @@ QString BbPressureSensor::devicePath()
bool BbPressureSensor::updateReadingFromEvent(const sensor_event_t &event, QPressureReading *reading)
{
reading->setPressure(event.pressure_s.pressure);
+ reading->setTemperature(event.pressure_s.temperature);
return true;
}
diff --git a/src/plugins/sensors/blackberry/bbsensorbackend.cpp b/src/plugins/sensors/blackberry/bbsensorbackend.cpp
index 6b614a8a..7822dd86 100644
--- a/src/plugins/sensors/blackberry/bbsensorbackend.cpp
+++ b/src/plugins/sensors/blackberry/bbsensorbackend.cpp
@@ -303,6 +303,7 @@ bool BbSensorBackendBase::isFeatureSupported(QSensor::Feature feature) const
case QSensor::Buffering:
case QSensor::AccelerationMode:
case QSensor::SkipDuplicates:
+ case QSensor::PressureSensorTemperature:
return true;
case QSensor::GeoValues:
#ifndef Q_OS_BLACKBERRY_TABLET
diff --git a/src/sensors/qpressuresensor.cpp b/src/sensors/qpressuresensor.cpp
index ea8a79bb..ca3a861f 100644
--- a/src/sensors/qpressuresensor.cpp
+++ b/src/sensors/qpressuresensor.cpp
@@ -79,6 +79,33 @@ void QPressureReading::setPressure(qreal pressure)
d->pressure = pressure;
}
+/*!
+ \property QPressureReading::temperature
+ \brief The pressure sensor's temperature.
+ \since 5.2
+
+ The temperature is returned in degree Celsius.
+ This property, if supported, provides the pressure sensor die temperature.
+ Note that this temperature may be (and usually is) different than the temperature
+ reported from QAmbientTemperatureSensor.
+ Use QSensor::isFeatureSupported() with the QSensor::PressureSensorTemperature
+ flag to determine its availability.
+*/
+
+qreal QPressureReading::temperature() const
+{
+ return d->temperature;
+}
+
+/*!
+ Sets the pressure sensor's temperature to \a temperature.
+ \since 5.2
+*/
+void QPressureReading::setTemperature(qreal temperature)
+{
+ d->temperature = temperature;
+}
+
// =====================================================================
/*!
diff --git a/src/sensors/qpressuresensor.h b/src/sensors/qpressuresensor.h
index 50379b52..4df22899 100644
--- a/src/sensors/qpressuresensor.h
+++ b/src/sensors/qpressuresensor.h
@@ -51,10 +51,14 @@ class Q_SENSORS_EXPORT QPressureReading : public QSensorReading
{
Q_OBJECT
Q_PROPERTY(qreal pressure READ pressure)
+ Q_PROPERTY(qreal temperature READ temperature)
DECLARE_READING(QPressureReading)
public:
qreal pressure() const;
void setPressure(qreal pressure);
+
+ qreal temperature() const;
+ void setTemperature(qreal temperature);
};
class Q_SENSORS_EXPORT QPressureFilter : public QSensorFilter
diff --git a/src/sensors/qpressuresensor_p.h b/src/sensors/qpressuresensor_p.h
index 1c74e7f1..f91b3bad 100644
--- a/src/sensors/qpressuresensor_p.h
+++ b/src/sensors/qpressuresensor_p.h
@@ -58,11 +58,12 @@ class QPressureReadingPrivate
{
public:
QPressureReadingPrivate()
- : pressure(0)
+ : pressure(0), temperature(0)
{
}
qreal pressure;
+ qreal temperature;
};
QT_END_NAMESPACE
diff --git a/src/sensors/qsensor.cpp b/src/sensors/qsensor.cpp
index 01a4f7b7..4b8ca2d5 100644
--- a/src/sensors/qsensor.cpp
+++ b/src/sensors/qsensor.cpp
@@ -242,6 +242,10 @@ void QSensorPrivate::init(const QByteArray &sensorType)
\value AccelerationMode The backend supports switching the acceleration mode
of the acceleromter with the QAccelerometer::accelerationMode property.
+ The features of QPressureSensor are:
+
+ \value PressureSensorTemperature The backend provides the pressure sensor's die temperature
+
The features of all orientable sensors are:
\value AxesOrientation The backend supports changing the axes orientation from the default of
diff --git a/src/sensors/qsensor.h b/src/sensors/qsensor.h
index 2314fb94..8512d4c6 100644
--- a/src/sensors/qsensor.h
+++ b/src/sensors/qsensor.h
@@ -107,6 +107,7 @@ public:
AccelerationMode,
SkipDuplicates,
AxesOrientation,
+ PressureSensorTemperature,
Reserved = 257 // Make sure at least 2 bytes are used for the enum to avoid breaking BC later
};
diff --git a/tests/auto/qsensor/test_backends.h b/tests/auto/qsensor/test_backends.h
index b76d4128..674abf80 100644
--- a/tests/auto/qsensor/test_backends.h
+++ b/tests/auto/qsensor/test_backends.h
@@ -135,6 +135,7 @@ PREPARE_SENSORINTERFACE(QOrientationSensor, QOrientationReading, QOrientationFil
})
PREPARE_SENSORINTERFACE(QPressureSensor, QPressureReading, QPressureFilter, {
reading->setPressure(1.0);
+ reading->setTemperature(1.0);
})
PREPARE_SENSORINTERFACE(QProximitySensor, QProximityReading, QProximityFilter, {
reading->setClose(true);
diff --git a/tests/auto/qsensor/tst_qsensor.cpp b/tests/auto/qsensor/tst_qsensor.cpp
index a410f711..ce5f8e36 100644
--- a/tests/auto/qsensor/tst_qsensor.cpp
+++ b/tests/auto/qsensor/tst_qsensor.cpp
@@ -891,6 +891,7 @@ private slots:
TEST_SENSORINTERFACE(QPressureSensor, QPressureReading, {
QCOMPARE(reading->pressure(), 1.0);
+ QCOMPARE(reading->temperature(), 1.0);
})
TEST_SENSORINTERFACE(QProximitySensor, QProximityReading, {