summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/HVAC.qml14
-rw-r--r--app/api/Binding.qml93
-rw-r--r--app/api/MessageId.js22
-rw-r--r--app/app.pro3
-rw-r--r--app/hvac.qrc2
-rw-r--r--app/main.cpp12
6 files changed, 21 insertions, 125 deletions
diff --git a/app/HVAC.qml b/app/HVAC.qml
index 8867168..8aa88c1 100644
--- a/app/HVAC.qml
+++ b/app/HVAC.qml
@@ -19,7 +19,6 @@ import QtQuick.Layouts 1.1
import QtQuick.Controls 2.0
import AGL.Demo.Controls 1.0
import Translator 1.0
-import 'api' as API
ApplicationWindow {
id: root
@@ -29,12 +28,11 @@ ApplicationWindow {
Translator {
id: translator
- language: binding.language
+ language: "en_US"
}
- API.Binding {
- id: binding
- url: bindingAddress
+ Connections {
+ target: hvac
onFanSpeedChanged: fanSpeedSlider.value = fanSpeed
onLanguageChanged: translator.language = language
}
@@ -67,7 +65,7 @@ ApplicationWindow {
to: 255.0
stepSize: 1.0
onValueChanged: {
- binding.fanSpeed = value
+ hvac.fanSpeed = value
}
}
Label {
@@ -93,7 +91,7 @@ ApplicationWindow {
HeatDegree {
onCurrentItemChanged: {
console.log("Left Temp changed",degree)
- binding.leftTemperature = degree
+ hvac.leftTemperature = degree
}
}
}
@@ -145,7 +143,7 @@ ApplicationWindow {
HeatDegree {
onCurrentItemChanged: {
console.log("Right Temp changed",degree)
- binding.rightTemperature = degree
+ hvac.rightTemperature = degree
}
}
}
diff --git a/app/api/Binding.qml b/app/api/Binding.qml
deleted file mode 100644
index d62bc6b..0000000
--- a/app/api/Binding.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2016 The Qt Company Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import QtQuick 2.6
-import QtWebSockets 1.0
-import 'MessageId.js' as MessageId
-
-WebSocket {
- id: root
- active: true
-
- property string statusString: "waiting..."
-
- property real fanSpeed: 0.0
- property real leftTemperature: 21.0
- property real rightTemperature: 21.0
- property string language: "en_US"
-
- property Connections c : Connections {
- target: root
- onFanSpeedChanged: {
- var json = [MessageId.call, '9999', 'hvac/set', {'FanSpeed': fanSpeed}]
- console.debug(JSON.stringify(json))
- sendTextMessage(JSON.stringify(json))
- }
- onLeftTemperatureChanged: {
- var json = [MessageId.call, '9999', 'hvac/set', {'LeftTemperature': leftTemperature}]
- console.debug(JSON.stringify(json))
- sendTextMessage(JSON.stringify(json))
-
- var json1 = [MessageId.call, '9999', 'hvac/temp_left_zone_led', {'LeftLed': leftTemperature}]
- console.debug(JSON.stringify(json1))
- sendTextMessage(JSON.stringify(json1))
- }
- onRightTemperatureChanged: {
- var json = [MessageId.call, '9999', 'hvac/set', {'RightTemperature': rightTemperature}]
- console.debug(JSON.stringify(json))
- sendTextMessage(JSON.stringify(json))
-
- var json1 = [MessageId.call, '9999', 'hvac/temp_right_zone_led', {'RightLed': rightTemperature}]
- console.debug(JSON.stringify(json1))
- sendTextMessage(JSON.stringify(json1))
- }
- onLanguageChanged: {
- var json = [MessageId.call, '9999', 'hvac/set', {'Language': language}]
- console.debug(JSON.stringify(json))
- sendTextMessage(JSON.stringify(json))
- }
- }
-
- onTextMessageReceived: {
- var json = JSON.parse(message)
- var request = json[2].request
- var response = json[2].response
- console.log("HVAC Binding Message: ",message)
- switch (json[0]) {
- case MessageId.call:
- break
- case MessageId.retok:
- root.statusString = request.status
- break
- case MessageId.reterr:
- root.statusString = "Bad return value, binding probably not installed"
- break
- case MessageId.event:
- if (json[1] === "hvac/language")
- console.log("HVAC event received: ",json[2])
- root.language = json[2].data
- root.statusString = "Language changed to "+language
- break
- }
- }
- onStatusChanged: {
- switch (status) {
- case WebSocket.Error:
- root.statusString = "WebSocket error: " + root.errorString
- break
- }
- }
-}
diff --git a/app/api/MessageId.js b/app/api/MessageId.js
deleted file mode 100644
index 001ea93..0000000
--- a/app/api/MessageId.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2016 The Qt Company Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-.pragma library
-
-var call = 2
-var retok = 3
-var reterr = 4
-var event = 5
diff --git a/app/app.pro b/app/app.pro
index ef4de97..24ad110 100644
--- a/app/app.pro
+++ b/app/app.pro
@@ -7,6 +7,9 @@ HEADERS += \
SOURCES = main.cpp \
translator.cpp
+CONFIG += link_pkgconfig
+PKGCONFIG += qtappfw
+
RESOURCES += \
hvac.qrc \
images/images.qrc
diff --git a/app/hvac.qrc b/app/hvac.qrc
index 6327049..03fbf7d 100644
--- a/app/hvac.qrc
+++ b/app/hvac.qrc
@@ -3,7 +3,5 @@
<file>HVAC.qml</file>
<file>SeatHeatButton.qml</file>
<file>HeatDegree.qml</file>
- <file>api/Binding.qml</file>
- <file>api/MessageId.js</file>
</qresource>
</RCC>
diff --git a/app/main.cpp b/app/main.cpp
index 2fac9ae..38ccfe1 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -16,6 +16,7 @@
#include <QtAGLExtras/AGLApplication>
#include <QtQml/QQmlApplicationEngine>
+#include <hvac.h>
#include "translator.h"
@@ -24,6 +25,17 @@ int main(int argc, char *argv[])
AGLApplication app(argc, argv);
app.setApplicationName("HVAC");
app.setupApplicationRole("hvac");
+
+ QQmlApplicationEngine *engine = app.getQmlApplicationEngine();
+ QQmlContext *context = engine->rootContext();
+ QVariant v = context->contextProperty(QStringLiteral("bindingAddress"));
+ if(v.canConvert(QMetaType::QUrl)) {
+ QUrl bindingAddress = v.toUrl();
+ context->setContextProperty("hvac", new HVAC(bindingAddress));
+ } else {
+ qCritical("Cannot find bindingAddress property in context, SignalComposer unavailable");
+ }
+
qmlRegisterType<Translator>("Translator", 1, 0, "Translator");
app.load(QUrl(QStringLiteral("qrc:/HVAC.qml")));
return app.exec();