hvac: switch to libqtappfw access for websocket data 89/23589/3 8.99.5 icefish/8.99.5 icefish_8.99.5
authorMatt Ranostay <matt.ranostay@konsulko.com>
Tue, 14 Jan 2020 06:33:31 +0000 (22:33 -0800)
committerMatt Ranostay <matt.ranostay@konsulko.com>
Fri, 17 Jan 2020 19:00:22 +0000 (11:00 -0800)
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 <matt.ranostay@konsulko.com>
app/HVAC.qml
app/api/Binding.qml [deleted file]
app/api/MessageId.js [deleted file]
app/app.pro
app/hvac.qrc
app/main.cpp

index 8867168..8aa88c1 100644 (file)
@@ -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 (file)
index d62bc6b..0000000
+++ /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 (file)
index 001ea93..0000000
+++ /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
index ef4de97..24ad110 100644 (file)
@@ -7,6 +7,9 @@ HEADERS += \
 SOURCES = main.cpp \
     translator.cpp
 
+CONFIG += link_pkgconfig
+PKGCONFIG += qtappfw
+
 RESOURCES += \
     hvac.qrc \
     images/images.qrc
index 6327049..03fbf7d 100644 (file)
@@ -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>
index 2fac9ae..38ccfe1 100644 (file)
@@ -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();