From bba7642118e223492bf5a82eb3fed04a59e34c2c Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Mon, 13 Jan 2020 22:33:31 -0800 Subject: hvac: switch to libqtappfw access for websocket data Remove QML processing of websocket data from appfw, and replace with new libqtappfw support. Bug-AGL: SPEC-2984 Change-Id: I0a0a422f25359da48798d3ec5e9948247a83d98e Signed-off-by: Matt Ranostay --- app/HVAC.qml | 14 ++++---- app/api/Binding.qml | 93 ---------------------------------------------------- app/api/MessageId.js | 22 ------------- app/app.pro | 3 ++ app/hvac.qrc | 2 -- app/main.cpp | 12 +++++++ 6 files changed, 21 insertions(+), 125 deletions(-) delete mode 100644 app/api/Binding.qml delete mode 100644 app/api/MessageId.js 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 @@ HVAC.qml SeatHeatButton.qml HeatDegree.qml - api/Binding.qml - api/MessageId.js 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 #include +#include #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", 1, 0, "Translator"); app.load(QUrl(QStringLiteral("qrc:/HVAC.qml"))); return app.exec(); -- cgit 1.2.3-korg