import QtQuick.Controls 2.0
import AGL.Demo.Controls 1.0
import Translator 1.0
-import 'api' as API
ApplicationWindow {
id: root
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
}
to: 255.0
stepSize: 1.0
onValueChanged: {
- binding.fanSpeed = value
+ hvac.fanSpeed = value
}
}
Label {
HeatDegree {
onCurrentItemChanged: {
console.log("Left Temp changed",degree)
- binding.leftTemperature = degree
+ hvac.leftTemperature = degree
}
}
}
HeatDegree {
onCurrentItemChanged: {
console.log("Right Temp changed",degree)
- binding.rightTemperature = degree
+ hvac.rightTemperature = degree
}
}
}
+++ /dev/null
-/*
- * 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
- }
- }
-}
+++ /dev/null
-/*
- * 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
#include <QtAGLExtras/AGLApplication>
#include <QtQml/QQmlApplicationEngine>
+#include <hvac.h>
#include "translator.h"
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();