Commit 8d6b74605c6ec03508dd9e9fa130bb3aaaf85eaa
1 parent
4c8eff3826
Exists in
master
and in
2 other branches
세척 시작 전 온도 검사 후 쿨다운
Showing
5 changed files
with
97 additions
and
50 deletions
Show diff stats
app/gui/oven_control/cooldownpopup.cpp
... | ... | @@ -6,10 +6,9 @@ |
6 | 6 | #include "soundplayer.h" |
7 | 7 | #include "stringer.h" |
8 | 8 | |
9 | -CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : | |
9 | +CooldownPopup::CooldownPopup(QWidget *parent, int target) : | |
10 | 10 | QWidget(parent), |
11 | 11 | ui(new Ui::CooldownPopup), |
12 | - oven(oven), | |
13 | 12 | showingCurrentTemp(false), |
14 | 13 | needCookStarting(false) |
15 | 14 | { |
... | ... | @@ -17,6 +16,8 @@ CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : |
17 | 16 | |
18 | 17 | setAttribute(Qt::WA_DeleteOnClose); |
19 | 18 | |
19 | + oven = Oven::getInstance(); | |
20 | + | |
20 | 21 | lastDisplayedFanLevel = -1; |
21 | 22 | lastDisplayedHumidification = !oven->humidification(); |
22 | 23 | |
... | ... | @@ -33,6 +34,7 @@ CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : |
33 | 34 | |
34 | 35 | ui->tempSlider->setSubPixmap(":/images/slider/sub_red.png"); |
35 | 36 | ui->tempSlider->setRange(30, 300); |
37 | + ui->tempSlider->setValue(target); | |
36 | 38 | |
37 | 39 | cookingFanLevel = oven->fan(); |
38 | 40 | expectingFanLevel = oven->maxFan(); | ... | ... |
app/gui/oven_control/cooldownpopup.h
app/gui/oven_control/manualcookwindow.cpp
... | ... | @@ -988,7 +988,7 @@ void ManualCookWindow::on_cooldownButton_clicked() |
988 | 988 | { |
989 | 989 | startCookingTimer.stop(); |
990 | 990 | |
991 | - CooldownPopup *p = new CooldownPopup(this, oven); | |
991 | + CooldownPopup *p = new CooldownPopup(this, 30); | |
992 | 992 | p->setWindowModality(Qt::WindowModal); |
993 | 993 | p->showFullScreen(); |
994 | 994 | ... | ... |
app/gui/oven_control/washwindow.cpp
... | ... | @@ -9,6 +9,7 @@ |
9 | 9 | #include "configwindow.h" |
10 | 10 | #include "mainwindow.h" |
11 | 11 | #include "ovenstatics.h" |
12 | +#include "cooldownpopup.h" | |
12 | 13 | |
13 | 14 | WashWindow::WashWindow(QWidget *parent) : |
14 | 15 | QMainWindow(parent), |
... | ... | @@ -134,21 +135,48 @@ void WashWindow::start(int type) |
134 | 135 | if (type < 1 || type > 5) |
135 | 136 | return; |
136 | 137 | |
137 | - state = OpenDoor; | |
138 | - | |
139 | 138 | this->type = type; |
140 | 139 | |
141 | - returnToClockTimer.stop(); | |
140 | + if (udp->getData().curr_heat > 60) | |
141 | + { | |
142 | + state = CoolDown; | |
142 | 143 | |
143 | - ui->animation->clear(); | |
144 | - ui->animation->load(":/images/animation/pull_01.png"); | |
145 | - ui->animation->load(":/images/animation/pull_02.png"); | |
146 | - ui->animation->load(":/images/animation/pull_03.png"); | |
147 | - ui->animation->load(":/images/animation/pull_04.png"); | |
148 | - ui->animation->show(); | |
149 | - ui->animation->start(300); | |
144 | + CooldownPopup *p = new CooldownPopup(this, 60); | |
145 | + p->setWindowModality(Qt::WindowModal); | |
146 | + p->showFullScreen(); | |
147 | + | |
148 | + connect(p, SIGNAL(destroyed(QObject*)), SLOT(resume())); | |
149 | + } | |
150 | + else | |
151 | + { | |
152 | + state = OpenDoor; | |
150 | 153 | |
151 | - udp->set(TG_OVEN_MODE, 2); | |
154 | + returnToClockTimer.stop(); | |
155 | + | |
156 | + ui->animation->clear(); | |
157 | + ui->animation->load(":/images/animation/pull_01.png"); | |
158 | + ui->animation->load(":/images/animation/pull_02.png"); | |
159 | + ui->animation->load(":/images/animation/pull_03.png"); | |
160 | + ui->animation->load(":/images/animation/pull_04.png"); | |
161 | + ui->animation->show(); | |
162 | + ui->animation->start(300); | |
163 | + | |
164 | + udp->set(TG_OVEN_MODE, 2); | |
165 | + } | |
166 | +} | |
167 | + | |
168 | +void WashWindow::resume() | |
169 | +{ | |
170 | + if (udp->getData().door_state) | |
171 | + { | |
172 | + state = CloseDoor; | |
173 | + showCloseDoor(); | |
174 | + } | |
175 | + else | |
176 | + { | |
177 | + state = Request; | |
178 | + request(); | |
179 | + } | |
152 | 180 | } |
153 | 181 | |
154 | 182 | void WashWindow::stop() |
... | ... | @@ -220,6 +248,48 @@ void WashWindow::updateView() |
220 | 248 | } |
221 | 249 | } |
222 | 250 | |
251 | +void WashWindow::showCloseDoor() | |
252 | +{ | |
253 | + ui->animation->clear(); | |
254 | + ui->animation->load(":/images/animation/door_big_09.png"); | |
255 | + ui->animation->load(":/images/animation/door_big_08.png"); | |
256 | + ui->animation->load(":/images/animation/door_big_07.png"); | |
257 | + ui->animation->load(":/images/animation/door_big_06.png"); | |
258 | + ui->animation->load(":/images/animation/door_big_05.png"); | |
259 | + ui->animation->load(":/images/animation/door_big_04.png"); | |
260 | + ui->animation->load(":/images/animation/door_big_03.png"); | |
261 | + ui->animation->load(":/images/animation/door_big_02.png"); | |
262 | + ui->animation->load(":/images/animation/door_big_01.png"); | |
263 | + ui->animation->start(300); | |
264 | + ui->closeDoorArrow->show(); | |
265 | +} | |
266 | + | |
267 | +void WashWindow::request() | |
268 | +{ | |
269 | + udp->set(TG_CLEAN_TYPE, type); | |
270 | + udp->turnOn(TG_CLEANING); | |
271 | + | |
272 | + OvenStatistics::getInstance()->setWashState(true); | |
273 | + | |
274 | + SoundPlayer::playStart(); | |
275 | + | |
276 | + ui->closeDoorArrow->hide(); | |
277 | + ui->animation->clear(); | |
278 | + ui->animation->load(":/images/animation/wash_01.png"); | |
279 | + ui->animation->load(":/images/animation/wash_02.png"); | |
280 | + ui->animation->load(":/images/animation/wash_03.png"); | |
281 | + ui->animation->load(":/images/animation/wash_04.png"); | |
282 | + ui->animation->start(300); | |
283 | + | |
284 | + ui->washStepGauge->setValue(0); | |
285 | + ui->titleLabel->setText(tr("기기의 내부를 세척 중입니다")); | |
286 | + ui->descLabel->setText(tr("완료될 때까지 문을 열지 마세요.\n제품 내부의 자동 세척 기능을 실행 중입니다.")); | |
287 | + ui->washStepTypeLabel->setText(""); | |
288 | + ui->washStepCountLabel->setText(""); | |
289 | + | |
290 | + ui->upperStack->setCurrentIndex(1); | |
291 | +} | |
292 | + | |
223 | 293 | void WashWindow::onChanged() |
224 | 294 | { |
225 | 295 | if (state == Idle) |
... | ... | @@ -228,51 +298,20 @@ void WashWindow::onChanged() |
228 | 298 | switch (state) |
229 | 299 | { |
230 | 300 | case Idle: |
301 | + case CoolDown: | |
231 | 302 | return; |
232 | 303 | case OpenDoor: |
233 | 304 | if (udp->getData().door_state) |
234 | 305 | { |
235 | 306 | state = CloseDoor; |
236 | - | |
237 | - ui->animation->clear(); | |
238 | - ui->animation->load(":/images/animation/door_big_09.png"); | |
239 | - ui->animation->load(":/images/animation/door_big_08.png"); | |
240 | - ui->animation->load(":/images/animation/door_big_07.png"); | |
241 | - ui->animation->load(":/images/animation/door_big_06.png"); | |
242 | - ui->animation->load(":/images/animation/door_big_05.png"); | |
243 | - ui->animation->load(":/images/animation/door_big_04.png"); | |
244 | - ui->animation->load(":/images/animation/door_big_03.png"); | |
245 | - ui->animation->load(":/images/animation/door_big_02.png"); | |
246 | - ui->animation->load(":/images/animation/door_big_01.png"); | |
247 | - ui->closeDoorArrow->show(); | |
307 | + showCloseDoor(); | |
248 | 308 | } |
249 | 309 | break; |
250 | 310 | case CloseDoor: |
251 | 311 | if (!udp->getData().door_state) |
252 | 312 | { |
253 | 313 | state = Request; |
254 | - | |
255 | - SoundPlayer::playStart(); | |
256 | - | |
257 | - ui->closeDoorArrow->hide(); | |
258 | - ui->animation->clear(); | |
259 | - | |
260 | - ui->animation->load(":/images/animation/wash_01.png"); | |
261 | - ui->animation->load(":/images/animation/wash_02.png"); | |
262 | - ui->animation->load(":/images/animation/wash_03.png"); | |
263 | - ui->animation->load(":/images/animation/wash_04.png"); | |
264 | - ui->washStepGauge->setValue(0); | |
265 | - ui->titleLabel->setText(tr("기기의 내부를 세척 중입니다")); | |
266 | - ui->descLabel->setText(tr("완료될 때까지 문을 열지 마세요.\n제품 내부의 자동 세척 기능을 실행 중입니다.")); | |
267 | - ui->washStepTypeLabel->setText(""); | |
268 | - ui->washStepCountLabel->setText(""); | |
269 | - | |
270 | - ui->upperStack->setCurrentIndex(1); | |
271 | - | |
272 | - udp->set(TG_CLEAN_TYPE, type); | |
273 | - udp->turnOn(TG_CLEANING); | |
274 | - | |
275 | - OvenStatistics::getInstance()->setWashState(true); | |
314 | + request(); | |
276 | 315 | } |
277 | 316 | break; |
278 | 317 | case Request: |
... | ... | @@ -371,6 +410,7 @@ void WashWindow::on_backButton_clicked() |
371 | 410 | case Running: |
372 | 411 | stop(); |
373 | 412 | break; |
413 | + case CoolDown: | |
374 | 414 | case Stopping: |
375 | 415 | case RequestClean: |
376 | 416 | case RunningClean: |
... | ... | @@ -398,6 +438,7 @@ void WashWindow::on_configButton_clicked() |
398 | 438 | case Running: |
399 | 439 | stop(); |
400 | 440 | break; |
441 | + case CoolDown: | |
401 | 442 | case Stopping: |
402 | 443 | case RequestClean: |
403 | 444 | case RunningClean: | ... | ... |
app/gui/oven_control/washwindow.h
... | ... | @@ -24,11 +24,15 @@ protected: |
24 | 24 | |
25 | 25 | private slots: |
26 | 26 | void start(int type); |
27 | + void resume(); | |
27 | 28 | void stop(); |
28 | 29 | void returnToClock(); |
29 | 30 | void updateGauge(); |
30 | 31 | void updateView(); |
31 | 32 | |
33 | + void showCloseDoor(); | |
34 | + void request(); | |
35 | + | |
32 | 36 | void onChanged(); |
33 | 37 | |
34 | 38 | void on_backButton_clicked(); |
... | ... | @@ -40,7 +44,7 @@ private: |
40 | 44 | UdpHandler *udp; |
41 | 45 | |
42 | 46 | enum State { |
43 | - Idle, OpenDoor, CloseDoor, Request, Running, Stopping, | |
47 | + Idle, CoolDown, OpenDoor, CloseDoor, Request, Running, Stopping, | |
44 | 48 | RequestClean, RunningClean |
45 | 49 | } state = Idle; |
46 | 50 | ... | ... |