A/C blinks i2c LED
[apps/hvac.git] / app / HVAC.qml
1 /*
2  * Copyright (C) 2016 The Qt Company Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 import QtQuick 2.6
18 import QtQuick.Layouts 1.1
19 import QtQuick.Controls 2.0
20 import AGL.Demo.Controls 1.0
21 import 'api' as API
22
23 ApplicationWindow {
24     id: root
25
26     API.Binding {
27         id: binding
28         url: bindingAddress
29         onFanSpeedChanged: fanSpeedSlider.value = fanSpeed
30     }
31
32     ColumnLayout {
33         anchors.fill: parent
34         anchors.topMargin: width / 10
35         anchors.bottomMargin: width / 10
36         RowLayout {
37             Layout.fillHeight: true
38             Layout.alignment: Qt.AlignHCenter
39             Image {
40                 source: './images/HMI_HVAC_Fan_Icon.svg'
41             }
42             Item {
43                 width: root.width * 0.8
44                 Slider {
45                     id: fanSpeedSlider
46                     anchors.left: parent.left
47                     anchors.right: parent.right
48                     anchors.verticalCenter: parent.verticalCenter
49                     from: 0.0
50                     to: 255.0
51                     stepSize: 1.0
52                     onValueChanged: {
53                         binding.fanSpeed = value
54                     }
55                 }
56                 Label {
57                     anchors.left: fanSpeedSlider.left
58                     anchors.top: fanSpeedSlider.bottom
59                     font.pixelSize: 32
60                     text: 'FAN SPEED'
61                 }
62             }
63         }
64         RowLayout {
65             Layout.fillHeight: true
66             Layout.fillWidth: true
67             Layout.alignment: Layout.Center
68             spacing: 20
69             ColumnLayout {
70                 Layout.fillWidth: true
71                 spacing: 20
72                 SeatHeatButton {
73                     id: leftSeat
74                     side: 'Left'
75                 }
76                 HeatDegree {
77                     onCurrentItemChanged: {
78                         console.log("Left Temp changed",degree)
79                         binding.leftTemperature = degree
80                     }
81                 }
82             }
83             ColumnLayout {
84                 Layout.fillWidth: true
85                 spacing: 20
86                 ToggleButton {
87                     onImage: './images/HMI_HVAC_Active.svg'
88                     offImage: './images/HMI_HVAC_Inactive.svg'
89                     Label {
90                         anchors.centerIn: parent
91                         color: parent.checked ? '#66FF99' : '#848286'
92                         text: 'A/C'
93                         font.pixelSize: parent.height / 3
94                     }
95                     onCheckedChanged: {
96                         console.debug('A/C', checked)
97                         console.debug('acbinding:', binding.acEnabled)
98                         if (checked) {
99                             binding.acEnabled=255
100                         } else {
101                             binding.acEnabled=0
102                         }
103                         console.debug('acbinding:', binding.acEnabled)
104                     }
105                 }
106                 ToggleButton {
107                     onImage: './images/HMI_HVAC_Active.svg'
108                     offImage: './images/HMI_HVAC_Inactive.svg'
109                     Label {
110                         anchors.centerIn: parent
111                         color: parent.checked ? '#66FF99' : '#848286'
112                         text: 'AUTO'
113                         font.pixelSize: parent.height / 3
114                     }
115                     onCheckedChanged: {
116                         console.debug('AUTO', checked)
117                     }
118                 }
119                 ToggleButton {
120                     onImage: './images/HMI_HVAC_Circulation_Active.svg'
121                     offImage: './images/HMI_HVAC_Circulation_Inactive.svg'
122                     onCheckedChanged: {
123                         console.debug('Circulation', checked)
124                     }
125                 }
126             }
127
128             ColumnLayout {
129                 Layout.fillWidth: true
130                 spacing: 20
131                 SeatHeatButton {
132                     id: rightSeat
133                     side: 'Right'
134                 }
135                 HeatDegree {
136                     onCurrentItemChanged: {
137                         console.log("Right Temp changed",degree)
138                         binding.rightTemperature = degree
139                     }
140                 }
141             }
142         }
143
144         RowLayout {
145             Layout.fillHeight: true
146             Layout.alignment: Qt.AlignHCenter
147             spacing: root.width / 20
148             Repeater {
149                 model: ['AirDown', 'AirUp', 'AirRight', 'Rear', 'Front']
150                 ToggleButton {
151                     onImage: './images/HMI_HVAC_%1_Active.svg'.arg(model.modelData)
152                     offImage: './images/HMI_HVAC_%1_Inactive.svg'.arg(model.modelData)
153                     onCheckedChanged: {
154                         console.debug(model.modelData, checked)
155                     }
156                 }
157             }
158         }
159     }
160 }