summaryrefslogtreecommitdiffstats
path: root/tradeshow/iot-sensortag
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@qt.io>2017-02-01 10:24:44 +0200
committerOtto Ryynänen <otto.ryynanen@qt.io>2017-02-01 08:56:21 +0000
commit7cfb17d7db0ffc79210fe6c24e8c358eaf535e65 (patch)
treec3b630c3bc5745000937488fd08096b68999c1db /tradeshow/iot-sensortag
parent518c73c59a71911b65ae5d3240b22ea9f5878961 (diff)
iot-sensortag: Add Accelometer chart
Added new accelometer chart. Updated the ui-layout and images. Change-Id: Id8474e533f39f5c8178b487fc9bc03d7ea956772 Reviewed-by: Otto Ryynänen <otto.ryynanen@qt.io>
Diffstat (limited to 'tradeshow/iot-sensortag')
-rw-r--r--tradeshow/iot-sensortag/base.qrc1
-rw-r--r--tradeshow/iot-sensortag/demodataproviderpool.cpp2
-rw-r--r--tradeshow/iot-sensortag/mockdataprovider.cpp2
-rw-r--r--tradeshow/iot-sensortag/mockdataprovider.h1
-rw-r--r--tradeshow/iot-sensortag/resources/base/AccelChart.qml120
-rw-r--r--tradeshow/iot-sensortag/resources/base/GyroChart.qml4
-rw-r--r--tradeshow/iot-sensortag/resources/base/HumidityChart.qml9
-rw-r--r--tradeshow/iot-sensortag/resources/base/MagnetometerChart.qml3
-rw-r--r--tradeshow/iot-sensortag/resources/base/TopToolbar.qml1
-rw-r--r--tradeshow/iot-sensortag/resources/small/MainSmall.qml14
-rw-r--r--tradeshow/iot-sensortag/resources/small/images/Accelometer/inner_ring.pngbin0 -> 4657 bytes
-rw-r--r--tradeshow/iot-sensortag/resources/small/images/Accelometer/outer_ring.pngbin0 -> 9239 bytes
-rw-r--r--tradeshow/iot-sensortag/resources/small/images/General/icon_sensor.pngbin489 -> 407 bytes
-rw-r--r--tradeshow/iot-sensortag/resources/small/images/Toolbar/topbar_all.pngbin1840 -> 8895 bytes
-rw-r--r--tradeshow/iot-sensortag/sensortagdataprovider.cpp2
-rw-r--r--tradeshow/iot-sensortag/sensortagdataprovider.h3
-rw-r--r--tradeshow/iot-sensortag/uismall.qrc2
17 files changed, 150 insertions, 14 deletions
diff --git a/tradeshow/iot-sensortag/base.qrc b/tradeshow/iot-sensortag/base.qrc
index c02e7fb..3d99d9f 100644
--- a/tradeshow/iot-sensortag/base.qrc
+++ b/tradeshow/iot-sensortag/base.qrc
@@ -15,6 +15,7 @@
<file>resources/base/TopToolbar.qml</file>
<file>resources/base/CircularGauge.qml</file>
<file>resources/base/GyroChart.qml</file>
+ <file>resources/base/AccelChart.qml</file>
<file>resources/base/fonts/titilliumweb/TitilliumWeb-Bold.ttf</file>
<file>resources/base/fonts/titilliumweb/TitilliumWeb-Regular.ttf</file>
<file>resources/base/fonts/titilliumweb/TitilliumWeb-SemiBold.ttf</file>
diff --git a/tradeshow/iot-sensortag/demodataproviderpool.cpp b/tradeshow/iot-sensortag/demodataproviderpool.cpp
index a1369d7..2f287d8 100644
--- a/tradeshow/iot-sensortag/demodataproviderpool.cpp
+++ b/tradeshow/iot-sensortag/demodataproviderpool.cpp
@@ -64,7 +64,7 @@ void DemoDataProviderPool::startScanning()
p->setTagType(SensorTagDataProvider::ObjectTemperature | SensorTagDataProvider::AmbientTemperature | SensorTagDataProvider::Rotation);
m_dataProviders.push_back(p);
p = new MockDataProvider("MOCK_PROVIDER_2", this);
- p->setTagType(SensorTagDataProvider::Humidity | SensorTagDataProvider::Light);
+ p->setTagType(SensorTagDataProvider::Humidity | SensorTagDataProvider::Light | SensorTagDataProvider::Accelometer);
m_dataProviders.push_back(p);
p = new MockDataProvider("MOCK_PROVIDER_3", this);
p->setTagType(SensorTagDataProvider::Magnetometer | SensorTagDataProvider::AirPressure);
diff --git a/tradeshow/iot-sensortag/mockdataprovider.cpp b/tradeshow/iot-sensortag/mockdataprovider.cpp
index ca1ba79..ad56c28 100644
--- a/tradeshow/iot-sensortag/mockdataprovider.cpp
+++ b/tradeshow/iot-sensortag/mockdataprovider.cpp
@@ -53,6 +53,7 @@
MockDataProvider::MockDataProvider(QString id, QObject* parent)
: SensorTagDataProvider(id, parent),
xAxisG(-10),
+ yAxisG(10),
zAxisG(0),
luxIncrease(100),
rotationDegPerSecXIncrease(5),
@@ -189,6 +190,7 @@ void MockDataProvider::twentyMsTimerExpired()
}
}
accelometer_mG_xAxis = xAxisG * 100;
+ accelometer_mG_yAxis = yAxisG * 100;
accelometer_mG_zAxis = zAxisG * 100;
emit accelometerGChanged();
magnetometerMicroT_xAxis += 50;
diff --git a/tradeshow/iot-sensortag/mockdataprovider.h b/tradeshow/iot-sensortag/mockdataprovider.h
index 1381a7d..5f1f1e3 100644
--- a/tradeshow/iot-sensortag/mockdataprovider.h
+++ b/tradeshow/iot-sensortag/mockdataprovider.h
@@ -76,6 +76,7 @@ private:
QTimer *oneSecondTimer;
QTimer *twentyMillisecondTimer;
int xAxisG;
+ int yAxisG;
int zAxisG;
int luxIncrease;
int rotationDegPerSecXIncrease;
diff --git a/tradeshow/iot-sensortag/resources/base/AccelChart.qml b/tradeshow/iot-sensortag/resources/base/AccelChart.qml
new file mode 100644
index 0000000..6b7d240
--- /dev/null
+++ b/tradeshow/iot-sensortag/resources/base/AccelChart.qml
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the examples of Qt for Device Creation.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** 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.
+**
+** BSD License Usage
+** Alternatively, you may use this file under the terms of the BSD license
+** as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of The Qt Company Ltd nor the names of its
+** contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 2.5
+import SensorTag.DataProvider 1.0
+
+BaseChart {
+
+ property real acceXValue
+ property real acceYValue
+ property real acceZValue
+
+ antialiasing: true
+ title: qsTr("Accelometer")
+ rightSide: true
+
+ onSensorChanged: if (sensor) {
+ sensor.accelometerGChanged.connect(contentItem.updateAcceValues)
+ }
+
+ content: Item {
+ anchors.fill: parent
+
+ function updateAcceValues() {
+ acceXValue = sensor.accelometer_mG_xAxis.toFixed(1)
+ acceYValue = sensor.accelometer_mG_yAxis.toFixed(1)
+ acceZValue = sensor.accelometer_mG_zAxis.toFixed(1)
+ }
+
+ Row {
+ id: itemRow
+ anchors.fill: parent
+
+ Repeater {
+
+ model: 3
+
+ Item {
+ height: itemRow.height
+ width: itemRow.width / 3
+ Image {
+ id: accelometerOuter
+
+ source: pathPrefix + "Accelometer/outer_ring.png"
+ anchors.centerIn: parent
+
+ Image {
+ source: pathPrefix + "Accelometer/inner_ring.png"
+ anchors.centerIn: parent
+ }
+
+ Text {
+ id: accelMainText
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.verticalCenter
+ anchors.bottomMargin: -12
+ text: (index == 0) ? acceXValue : ((index == 1) ? acceYValue : acceZValue)
+ color: "white"
+ }
+ }
+
+ Text {
+ anchors.horizontalCenter: accelometerOuter.horizontalCenter
+ anchors.top: accelometerOuter.bottom
+ anchors.topMargin: -18
+ text: (index == 0) ? "X" : ((index == 1) ? "Y" : "Z")
+ color: "white"
+ font.pixelSize: 20
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/tradeshow/iot-sensortag/resources/base/GyroChart.qml b/tradeshow/iot-sensortag/resources/base/GyroChart.qml
index 91f1911..1852641 100644
--- a/tradeshow/iot-sensortag/resources/base/GyroChart.qml
+++ b/tradeshow/iot-sensortag/resources/base/GyroChart.qml
@@ -97,7 +97,7 @@ BaseChart {
anchors.top: parent.top
anchors.bottom: parent.bottom
- anchors.bottomMargin: 33
+ anchors.bottomMargin: 25
anchors.left: parent.left
anchors.leftMargin: -20
anchors.right: parent.right
@@ -161,7 +161,7 @@ BaseChart {
Row {
id: xLabelRow
anchors.bottom: parent.bottom
- anchors.bottomMargin: 28
+ anchors.bottomMargin: 4
anchors.left: parent.left
anchors.leftMargin: chartView.plotArea.x - 40
anchors.right: parent.right
diff --git a/tradeshow/iot-sensortag/resources/base/HumidityChart.qml b/tradeshow/iot-sensortag/resources/base/HumidityChart.qml
index 0a74a68..fdffc5a 100644
--- a/tradeshow/iot-sensortag/resources/base/HumidityChart.qml
+++ b/tradeshow/iot-sensortag/resources/base/HumidityChart.qml
@@ -95,7 +95,10 @@ BaseChart {
source: pathPrefix + "Humidity/humidity_base_gauge.png"
anchors.left: parent.left
anchors.leftMargin: 8
+ anchors.top: parent.top
+ anchors.topMargin: 8
anchors.bottom: parent.bottom
+ width: height
Text {
id: humidityMainText
@@ -108,7 +111,7 @@ BaseChart {
Image {
source: pathPrefix + "Humidity/humidity_min_hum.png"
anchors.left: humidityMainImg.right
- anchors.leftMargin: -11
+ anchors.leftMargin: -7
anchors.bottom: humidityMainImg.bottom
Text {
@@ -134,8 +137,8 @@ BaseChart {
Image {
source: pathPrefix + "Humidity/humidity_max_hum.png"
anchors.left: humidityMainImg.right
- anchors.leftMargin: -22
- anchors.top: humidityMainImg.top
+ anchors.leftMargin: -18
+ anchors.top: parent.top
Text {
anchors.top: parent.top
diff --git a/tradeshow/iot-sensortag/resources/base/MagnetometerChart.qml b/tradeshow/iot-sensortag/resources/base/MagnetometerChart.qml
index bd60dc6..699f537 100644
--- a/tradeshow/iot-sensortag/resources/base/MagnetometerChart.qml
+++ b/tradeshow/iot-sensortag/resources/base/MagnetometerChart.qml
@@ -161,7 +161,6 @@ BaseChart {
horizontalAlignment: Text.AlignHCenter
text: "<font color=\"" + xColor + "\">X<br><font color=\"white\">" + (sensor ? sensor.magnetometerMicroT_xAxis : 0)
lineHeight: 0.7
- width: (magnetHolderRect.width - xLabelRow.x) / 3
}
Text {
@@ -172,7 +171,6 @@ BaseChart {
horizontalAlignment: Text.AlignHCenter
text: "<font color=\"" + yColor + "\">Y<br><font color=\"white\">" + (sensor ? sensor.magnetometerMicroT_yAxis : 0)
lineHeight: 0.7
- width: xLabel.width
}
Text {
@@ -183,7 +181,6 @@ BaseChart {
horizontalAlignment: Text.AlignHCenter
text: "<font color=\"" + zColor + "\">Z<br><font color=\"white\">" + (sensor ? sensor.magnetometerMicroT_zAxis : 0)
lineHeight: 0.7
- width: xLabel.width
}
}
}
diff --git a/tradeshow/iot-sensortag/resources/base/TopToolbar.qml b/tradeshow/iot-sensortag/resources/base/TopToolbar.qml
index f3e7e2b..36117b3 100644
--- a/tradeshow/iot-sensortag/resources/base/TopToolbar.qml
+++ b/tradeshow/iot-sensortag/resources/base/TopToolbar.qml
@@ -191,6 +191,7 @@ Item {
Image {
anchors.bottom: parent.bottom
+ anchors.bottomMargin: -18
source: pathPrefix + "Toolbar/topbar_all.png"
}
}
diff --git a/tradeshow/iot-sensortag/resources/small/MainSmall.qml b/tradeshow/iot-sensortag/resources/small/MainSmall.qml
index 4044b32..1f46093 100644
--- a/tradeshow/iot-sensortag/resources/small/MainSmall.qml
+++ b/tradeshow/iot-sensortag/resources/small/MainSmall.qml
@@ -70,6 +70,7 @@ Item {
light.sensor = dataProviderPool.getProvider(SensorTagData.Light);
magnetometer.sensor = dataProviderPool.getProvider(SensorTagData.Magnetometer);
rotation.sensor = dataProviderPool.getProvider(SensorTagData.Rotation);
+ accelometer.sensor = dataProviderPool.getProvider(SensorTagData.Accelometer);
}
}
@@ -136,21 +137,21 @@ Item {
id: light
width: rightPane.width
- height: leftPane.height / 4
+ height: rightPane.height / 4
}
MagnetometerChart {
id: magnetometer
width: rightPane.width
- height: leftPane.height * 0.3
+ height: rightPane.height * 0.3 - 30
}
GyroChart {
id: rotation
width: rightPane.width
- height: leftPane.height * 0.3
+ height: rightPane.height * 0.3 - 60
onClicked: {
//mainContainer.source = "../base/GyroPage.qml";
gyroConnection.enabled = true;
@@ -169,6 +170,13 @@ Item {
}
}
}
+
+ AccelChart {
+ id: accelometer
+
+ width: rightPane.width
+ height: rightPane.height - light.height - magnetometer.height - rotation.height - 3 * rightPane.spacing
+ }
}
Loader {
diff --git a/tradeshow/iot-sensortag/resources/small/images/Accelometer/inner_ring.png b/tradeshow/iot-sensortag/resources/small/images/Accelometer/inner_ring.png
new file mode 100644
index 0000000..aeaa36a
--- /dev/null
+++ b/tradeshow/iot-sensortag/resources/small/images/Accelometer/inner_ring.png
Binary files differ
diff --git a/tradeshow/iot-sensortag/resources/small/images/Accelometer/outer_ring.png b/tradeshow/iot-sensortag/resources/small/images/Accelometer/outer_ring.png
new file mode 100644
index 0000000..80cd670
--- /dev/null
+++ b/tradeshow/iot-sensortag/resources/small/images/Accelometer/outer_ring.png
Binary files differ
diff --git a/tradeshow/iot-sensortag/resources/small/images/General/icon_sensor.png b/tradeshow/iot-sensortag/resources/small/images/General/icon_sensor.png
index e7aed60..a1286e8 100644
--- a/tradeshow/iot-sensortag/resources/small/images/General/icon_sensor.png
+++ b/tradeshow/iot-sensortag/resources/small/images/General/icon_sensor.png
Binary files differ
diff --git a/tradeshow/iot-sensortag/resources/small/images/Toolbar/topbar_all.png b/tradeshow/iot-sensortag/resources/small/images/Toolbar/topbar_all.png
index 85d85dc..992318b 100644
--- a/tradeshow/iot-sensortag/resources/small/images/Toolbar/topbar_all.png
+++ b/tradeshow/iot-sensortag/resources/small/images/Toolbar/topbar_all.png
Binary files differ
diff --git a/tradeshow/iot-sensortag/sensortagdataprovider.cpp b/tradeshow/iot-sensortag/sensortagdataprovider.cpp
index 157673d..c41cf19 100644
--- a/tradeshow/iot-sensortag/sensortagdataprovider.cpp
+++ b/tradeshow/iot-sensortag/sensortagdataprovider.cpp
@@ -81,7 +81,7 @@ SensorTagDataProvider::SensorTagDataProvider(QString id, QObject* parent)
rotation_x(0),
rotation_y(0),
rotation_z(0),
- m_tagType(AmbientTemperature | ObjectTemperature | Humidity | AirPressure | Light | Magnetometer | Rotation),
+ m_tagType(AmbientTemperature | ObjectTemperature | Humidity | AirPressure | Light | Magnetometer | Rotation | Accelometer),
m_id(id),
m_state(Disconnected)
{
diff --git a/tradeshow/iot-sensortag/sensortagdataprovider.h b/tradeshow/iot-sensortag/sensortagdataprovider.h
index 30e59e5..3880578 100644
--- a/tradeshow/iot-sensortag/sensortagdataprovider.h
+++ b/tradeshow/iot-sensortag/sensortagdataprovider.h
@@ -93,7 +93,8 @@ public:
AirPressure = 1 << 2,
Light = 1 << 3,
Magnetometer = 1 << 4,
- Rotation = 1 << 5};
+ Rotation = 1 << 5,
+ Accelometer = 1 << 6};
enum ProviderState {Disconnected = 0, Scanning, Connected, Error};
explicit SensorTagDataProvider(QObject *parent = 0);
diff --git a/tradeshow/iot-sensortag/uismall.qrc b/tradeshow/iot-sensortag/uismall.qrc
index 303fecd..2384261 100644
--- a/tradeshow/iot-sensortag/uismall.qrc
+++ b/tradeshow/iot-sensortag/uismall.qrc
@@ -16,5 +16,7 @@
<file>resources/small/images/Toolbar/icon_topbar_sensor.png</file>
<file>resources/small/images/Toolbar/topbar_all.png</file>
<file>resources/small/images/Toolbar/icon_topbar_cloud.png</file>
+ <file>resources/small/images/Accelometer/inner_ring.png</file>
+ <file>resources/small/images/Accelometer/outer_ring.png</file>
</qresource>
</RCC>