diff options
-rw-r--r-- | app/HVAC.qml | 14 | ||||
-rw-r--r-- | app/api/Binding.qml | 93 | ||||
-rw-r--r-- | app/api/MessageId.js | 22 | ||||
-rw-r--r-- | app/app.pro | 3 | ||||
-rw-r--r-- | app/hvac.qrc | 2 | ||||
-rw-r--r-- | app/main.cpp | 12 |
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(); |