1/****************************************************************************
2**
3** Copyright (C) 2016 Canonical Ltd
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the QtSensors module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPL3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or (at your option) the GNU General
28** Public license version 3 or any later version approved by the KDE Free
29** Qt Foundation. The licenses are as published by the Free Software
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31** included in the packaging of this file. Please review the following
32** information to ensure the GNU General Public License requirements will
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34** https://www.gnu.org/licenses/gpl-3.0.html.
35**
36** $QT_END_LICENSE$
37**
38****************************************************************************/
39
40#include "qmlhumiditysensor.h"
41#include <QtSensors/QHumiditySensor>
42
43/*!
44 \qmltype HumiditySensor
45 \instantiates QmlHumiditySensor
46 \ingroup qml-sensors_type
47 \inqmlmodule QtSensors
48 \since QtSensors 5.9
49 \inherits Sensor
50 \brief The HumiditySensor element reports on humidity.
51
52 The HumiditySensor element reports on humidity.
53
54 This element wraps the QHumiditySensor class. Please see the documentation for
55 QHumiditySensor for details.
56
57 \sa HumidityReading
58*/
59
60QmlHumiditySensor::QmlHumiditySensor(QObject *parent)
61 : QmlSensor(parent)
62 , m_sensor(new QHumiditySensor(this))
63{
64}
65
66QmlHumiditySensor::~QmlHumiditySensor()
67{
68}
69
70QmlSensorReading *QmlHumiditySensor::createReading() const
71{
72 return new QmlHumidityReading(m_sensor);
73}
74
75QSensor *QmlHumiditySensor::sensor() const
76{
77 return m_sensor;
78}
79
80/*!
81 \qmltype HumidityReading
82 \instantiates QmlHumidityReading
83 \ingroup qml-sensors_reading
84 \inqmlmodule QtSensors
85 \since QtSensors 5.9
86 \inherits SensorReading
87 \brief The HumidityReading element holds the most recent HumiditySensor reading.
88
89 The HumidityReading element holds the most recent HumiditySensor reading.
90
91 This element wraps the QHumidityReading class. Please see the documentation for
92 QHumidityReading for details.
93
94 This element cannot be directly created.
95*/
96
97QmlHumidityReading::QmlHumidityReading(QHumiditySensor *sensor)
98 : QmlSensorReading(sensor)
99 , m_sensor(sensor)
100 , m_relativeHumidity(0)
101 , m_absoluteHumidity(0)
102{
103}
104
105QmlHumidityReading::~QmlHumidityReading()
106{
107}
108
109/*!
110 \qmlproperty qreal HumidityReading::relativeHumidity
111 This property holds the relative humidity as a percentage.
112
113 Please see QHumidityReading::relativeHumidity for information about this property.
114*/
115
116qreal QmlHumidityReading::relativeHumidity() const
117{
118 return m_relativeHumidity;
119}
120
121/*!
122 \qmlproperty qreal HumidityReading::absoluteHumidity
123 This property holds the absolute humidity in grams per cubic meter (g/m3).
124
125 Please see QHumidityReading::absoluteHumidity for information about this property.
126*/
127
128qreal QmlHumidityReading::absoluteHumidity() const
129{
130 return m_absoluteHumidity;
131}
132
133QSensorReading *QmlHumidityReading::reading() const
134{
135 return m_sensor->reading();
136}
137
138void QmlHumidityReading::readingUpdate()
139{
140 qreal humidity = m_sensor->reading()->relativeHumidity();
141 if (m_relativeHumidity != humidity) {
142 m_relativeHumidity = humidity;
143 Q_EMIT relativeHumidityChanged();
144 }
145 qreal abs = m_sensor->reading()->absoluteHumidity();
146 if (m_absoluteHumidity != abs) {
147 m_absoluteHumidity = abs;
148 Q_EMIT absoluteHumidityChanged();
149 }
150}
151

source code of qtsensors/src/imports/sensors/qmlhumiditysensor.cpp