Commit e1a76d3eb34d7fb1e935268f37bbc1168fac8d0d

Authored by 김태훈
1 parent c8d1c646f0
Exists in master and in 2 other branches fhd, fhd-demo

고객 요청 사항 반영

- 세척 상태 초기화 기능 추가
- 동파 방지 기능 추가 (설정 화면에서 실행하도록 연결해야 함)

- 세척 유지/관리 관련 값 변경
- 버너 시험 시 팬도 같이 동작하도록 변경
- 도어 스위치 ON/OFF 표시를 반대로 변경
- 연소 가스 동작 최대 시간 변경 (1분 -> 2분)

- 내부 세척 밸브 버튼이 현재 상태에 따라 변하지 않는 문제 수정
app/gui/oven_control/.gitignore
1 *.pro.user 1 *.pro.user
2 *.autosave 2 *.autosave
  3 +*.pro.user.*
app/gui/oven_control/adjustmentwindow.cpp
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 #include "soundplayer.h" 5 #include "soundplayer.h"
6 #include "notipopupdlg.h" 6 #include "notipopupdlg.h"
7 #include "touchtestwindow.h" 7 #include "touchtestwindow.h"
  8 +#include "dirtylevel.h"
8 9
9 AdjustmentWindow::AdjustmentWindow(QWidget *parent) : 10 AdjustmentWindow::AdjustmentWindow(QWidget *parent) :
10 QMainWindow(parent), 11 QMainWindow(parent),
@@ -145,3 +146,9 @@ void AdjustmentWindow::on_btnAdjust_LCD_clicked() @@ -145,3 +146,9 @@ void AdjustmentWindow::on_btnAdjust_LCD_clicked()
145 wnd->show(); 146 wnd->show();
146 wnd->raise(); 147 wnd->raise();
147 } 148 }
  149 +
  150 +void AdjustmentWindow::on_btnClearWashData_clicked()
  151 +{
  152 + DirtyLevel::setCookingTime(0);
  153 + DirtyLevel::setCookingCount(0);
  154 +}
app/gui/oven_control/adjustmentwindow.h
@@ -29,6 +29,8 @@ private slots: @@ -29,6 +29,8 @@ private slots:
29 29
30 void on_btnAdjust_LCD_clicked(); 30 void on_btnAdjust_LCD_clicked();
31 31
  32 + void on_btnClearWashData_clicked();
  33 +
32 protected: 34 protected:
33 void keyReleaseEvent(QKeyEvent* event); 35 void keyReleaseEvent(QKeyEvent* event);
34 void keyPressEvent(QKeyEvent* event); 36 void keyPressEvent(QKeyEvent* event);
app/gui/oven_control/adjustmentwindow.ui
@@ -266,14 +266,14 @@ QPushButton { @@ -266,14 +266,14 @@ QPushButton {
266 <x>100</x> 266 <x>100</x>
267 <y>606</y> 267 <y>606</y>
268 <width>28</width> 268 <width>28</width>
269 - <height>151</height> 269 + <height>228</height>
270 </rect> 270 </rect>
271 </property> 271 </property>
272 <property name="text"> 272 <property name="text">
273 <string/> 273 <string/>
274 </property> 274 </property>
275 <property name="pixmap"> 275 <property name="pixmap">
276 - <pixmap resource="resources.qrc">:/images/config/service/realtime_menu_line.png</pixmap> 276 + <pixmap resource="resources.qrc">:/images/config/service/oprationtime_menu_line.png</pixmap>
277 </property> 277 </property>
278 </widget> 278 </widget>
279 <widget class="QPushButton" name="btnAdjust_LCD"> 279 <widget class="QPushButton" name="btnAdjust_LCD">
@@ -318,6 +318,48 @@ QPushButton { @@ -318,6 +318,48 @@ QPushButton {
318 </size> 318 </size>
319 </property> 319 </property>
320 </widget> 320 </widget>
  321 + <widget class="QPushButton" name="btnClearWashData">
  322 + <property name="geometry">
  323 + <rect>
  324 + <x>124</x>
  325 + <y>806</y>
  326 + <width>379</width>
  327 + <height>70</height>
  328 + </rect>
  329 + </property>
  330 + <property name="sizePolicy">
  331 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  332 + <horstretch>0</horstretch>
  333 + <verstretch>0</verstretch>
  334 + </sizepolicy>
  335 + </property>
  336 + <property name="font">
  337 + <font>
  338 + <family>Roboto</family>
  339 + <pointsize>10</pointsize>
  340 + <weight>75</weight>
  341 + <bold>true</bold>
  342 + <underline>false</underline>
  343 + </font>
  344 + </property>
  345 + <property name="styleSheet">
  346 + <string notr="true">QPushButton { border-image: url(:/images/config/service/089_set_window_all.png); }
  347 +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/config/service/089_set_window_all_ov.png); }
  348 +QPushButton {
  349 + text-align: right;
  350 + padding-right : 20px;
  351 +}</string>
  352 + </property>
  353 + <property name="text">
  354 + <string notr="true">세척 초기화</string>
  355 + </property>
  356 + <property name="iconSize">
  357 + <size>
  358 + <width>32</width>
  359 + <height>32</height>
  360 + </size>
  361 + </property>
  362 + </widget>
321 <zorder>label</zorder> 363 <zorder>label</zorder>
322 <zorder>upperStack</zorder> 364 <zorder>upperStack</zorder>
323 <zorder>label_15</zorder> 365 <zorder>label_15</zorder>
@@ -325,6 +367,7 @@ QPushButton { @@ -325,6 +367,7 @@ QPushButton {
325 <zorder>gridLayoutWidget</zorder> 367 <zorder>gridLayoutWidget</zorder>
326 <zorder>btnAdjust</zorder> 368 <zorder>btnAdjust</zorder>
327 <zorder>btnAdjust_LCD</zorder> 369 <zorder>btnAdjust_LCD</zorder>
  370 + <zorder>btnClearWashData</zorder>
328 </widget> 371 </widget>
329 </widget> 372 </widget>
330 <customwidgets> 373 <customwidgets>
app/gui/oven_control/burnertestwindow.cpp
@@ -180,6 +180,9 @@ void BurnerTestWindow::on_backButton_clicked() @@ -180,6 +180,9 @@ void BurnerTestWindow::on_backButton_clicked()
180 udp->turnOff(TG_BUNNER1_MANUAL); 180 udp->turnOff(TG_BUNNER1_MANUAL);
181 udp->turnOff(TG_BUNNER2_MANUAL); 181 udp->turnOff(TG_BUNNER2_MANUAL);
182 udp->turnOff(TG_BUNNER3_MANUAL); 182 udp->turnOff(TG_BUNNER3_MANUAL);
  183 + udp->turnOff(TG_BUNNER1_FAN);
  184 + udp->turnOff(TG_BUNNER2_FAN);
  185 + udp->turnOff(TG_BUNNER3_FAN);
183 udp->turnOff(TG_MANUAL_BURNER1); 186 udp->turnOff(TG_MANUAL_BURNER1);
184 udp->turnOff(TG_MANUAL_BURNER2); 187 udp->turnOff(TG_MANUAL_BURNER2);
185 udp->turnOff(TG_MANUAL_BURNER3); 188 udp->turnOff(TG_MANUAL_BURNER3);
@@ -207,29 +210,39 @@ void BurnerTestWindow::onEncoderClicked(QWidget *clicked) @@ -207,29 +210,39 @@ void BurnerTestWindow::onEncoderClicked(QWidget *clicked)
207 void BurnerTestWindow::steamOn() 210 void BurnerTestWindow::steamOn()
208 { 211 {
209 udp->turnOn(TG_BUNNER3_MANUAL); 212 udp->turnOn(TG_BUNNER3_MANUAL);
  213 + udp->turnOn(TG_BUNNER3_FAN);
210 } 214 }
211 215
212 void BurnerTestWindow::steamOff() 216 void BurnerTestWindow::steamOff()
213 { 217 {
214 udp->turnOff(TG_BUNNER3_MANUAL); 218 udp->turnOff(TG_BUNNER3_MANUAL);
  219 + udp->turnOff(TG_BUNNER3_FAN);
215 } 220 }
216 221
217 void BurnerTestWindow::upperOn() 222 void BurnerTestWindow::upperOn()
218 { 223 {
219 udp->turnOn(TG_BUNNER1_MANUAL); 224 udp->turnOn(TG_BUNNER1_MANUAL);
  225 + udp->turnOn(TG_BUNNER1_FAN);
  226 + udp->turnOn(TG_BUNNER2_FAN);
220 } 227 }
221 228
222 void BurnerTestWindow::upperOff() 229 void BurnerTestWindow::upperOff()
223 { 230 {
224 udp->turnOff(TG_BUNNER1_MANUAL); 231 udp->turnOff(TG_BUNNER1_MANUAL);
  232 + udp->turnOff(TG_BUNNER1_FAN);
  233 + udp->turnOff(TG_BUNNER2_FAN);
225 } 234 }
226 235
227 void BurnerTestWindow::lowerOn() 236 void BurnerTestWindow::lowerOn()
228 { 237 {
229 udp->turnOn(TG_BUNNER2_MANUAL); 238 udp->turnOn(TG_BUNNER2_MANUAL);
  239 + udp->turnOn(TG_BUNNER1_FAN);
  240 + udp->turnOn(TG_BUNNER2_FAN);
230 } 241 }
231 242
232 void BurnerTestWindow::lowerOff() 243 void BurnerTestWindow::lowerOff()
233 { 244 {
234 udp->turnOff(TG_BUNNER2_MANUAL); 245 udp->turnOff(TG_BUNNER2_MANUAL);
  246 + udp->turnOff(TG_BUNNER1_FAN);
  247 + udp->turnOff(TG_BUNNER2_FAN);
235 } 248 }
app/gui/oven_control/dirtylevel.cpp
@@ -90,24 +90,24 @@ void DirtyLevel::wash(int type) @@ -90,24 +90,24 @@ void DirtyLevel::wash(int type)
90 switch (type) 90 switch (type)
91 { 91 {
92 case 1: 92 case 1:
93 - cookingTime = qMax(cookingTime - 2 * 3600, (qint64) 0);  
94 - decountState(1); 93 + cookingTime = qMax(cookingTime - 4 * 3600, (qint64) 0);
  94 + decountState(2);
95 break; 95 break;
96 case 2: 96 case 2:
97 - cookingTime = qMax(cookingTime - 3 * 3600, (qint64) 0);  
98 - decountState(1); 97 + cookingTime = qMax(cookingTime - 6 * 3600, (qint64) 0);
  98 + decountState(2);
99 break; 99 break;
100 case 3: 100 case 3:
101 - cookingTime = qMax(cookingTime - 4 * 3600, (qint64) 0);  
102 - decountState(2); 101 + cookingTime = qMax(cookingTime - 8 * 3600, (qint64) 0);
  102 + decountState(3);
103 break; 103 break;
104 case 4: 104 case 4:
105 - cookingTime = qMax(cookingTime - 10 * 3600, (qint64) 0);  
106 - decountState(2); 105 + cookingTime = qMax(cookingTime - 20 * 3600, (qint64) 0);
  106 + decountState(3);
107 break; 107 break;
108 case 5: 108 case 5:
109 - cookingTime = qMax(cookingTime - 2 * 3600, (qint64) 0);  
110 - decountState(1); 109 + cookingTime = qMax(cookingTime - 4 * 3600, (qint64) 0);
  110 + decountState(2);
111 break; 111 break;
112 } 112 }
113 ::setCookingTime(cookingTime); 113 ::setCookingTime(cookingTime);
@@ -119,13 +119,13 @@ int DirtyLevel::dirty() @@ -119,13 +119,13 @@ int DirtyLevel::dirty()
119 return 0; 119 return 0;
120 120
121 qint64 cookingTime = ::getCookingTime(); 121 qint64 cookingTime = ::getCookingTime();
122 - if (cookingTime < 1 * 3600) 122 + if (cookingTime < 2 * 3600)
123 return 1; 123 return 1;
124 - if (cookingTime < 3 * 3600) 124 + if (cookingTime < 6 * 3600)
125 return 2; 125 return 2;
126 - if (cookingTime < 5 * 3600) 126 + if (cookingTime < 15 * 3600)
127 return 3; 127 return 3;
128 - if (cookingTime < 7 * 3600) 128 + if (cookingTime < 30 * 3600)
129 return 4; 129 return 4;
130 return 5; 130 return 5;
131 } 131 }
app/gui/oven_control/flushwaterwindow.cpp
@@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
  1 +#include "flushwaterwindow.h"
  2 +#include "ui_flushwaterwindow.h"
  3 +
  4 +#include "udphandler.h"
  5 +#include "notipopupdlg.h"
  6 +
  7 +FlushWaterWindow::FlushWaterWindow(QWidget *parent) :
  8 + QMainWindow(parent),
  9 + ui(new Ui::FlushWaterWindow)
  10 +{
  11 + ui->setupUi(this);
  12 +
  13 + ui->animation->load(":/images/animation/wash_01.png");
  14 + ui->animation->load(":/images/animation/wash_02.png");
  15 + ui->animation->load(":/images/animation/wash_03.png");
  16 + ui->animation->load(":/images/animation/wash_04.png");
  17 + ui->animation->show();
  18 + ui->animation->start(300);
  19 +
  20 +
  21 + UdpHandler *udp = UdpHandler::getInstance();
  22 + udp->set(TG_OVEN_MODE, 4);
  23 + udp->turnOn(TG_MANUAL_RELAY);
  24 + udp->turnOn(TG_DV);
  25 + udp->turnOn(TG_DP);
  26 + udp->turnOn(TG_INV);
  27 + udp->turnOff(TG_SSV);
  28 +
  29 + terminator = new QTimer(this);
  30 + connect(terminator, SIGNAL(timeout()), SLOT(waitUser()));
  31 + terminator->start(60 * 1000);
  32 +
  33 + QTimer *updater = new QTimer(this);
  34 + connect(updater, SIGNAL(timeout()), SLOT(updateGauge()));
  35 + updater->start(300);
  36 +
  37 + ui->progressGauge->setMaximum(terminator->interval());
  38 + ui->progressGauge->setValue(0);
  39 +}
  40 +
  41 +FlushWaterWindow::~FlushWaterWindow()
  42 +{
  43 + delete ui;
  44 +}
  45 +
  46 +void FlushWaterWindow::updateGauge()
  47 +{
  48 + ui->progressGauge->setValue(terminator->interval() - terminator->remainingTime());
  49 +}
  50 +
  51 +void FlushWaterWindow::waitUser()
  52 +{
  53 + UdpHandler *udp = UdpHandler::getInstance();
  54 + udp->turnOff(TG_DP);
  55 + udp->turnOff(TG_INV);
  56 +
  57 + NotiPopupDlg* notidlg = new NotiPopupDlg(this, tr("동파 방지 실행이 완료되었습니다. 전원을 OFF 해주십시오"), tr("취소"));
  58 + notidlg->exec();
  59 +
  60 + deleteLater();
  61 +
  62 + udp->turnOff(TG_MANUAL_RELAY);
  63 +}
app/gui/oven_control/flushwaterwindow.h
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
  1 +#ifndef FLUSHWATERWINDOW_H
  2 +#define FLUSHWATERWINDOW_H
  3 +
  4 +#include <QMainWindow>
  5 +#include <QTimer>
  6 +
  7 +namespace Ui {
  8 +class FlushWaterWindow;
  9 +}
  10 +
  11 +class FlushWaterWindow : public QMainWindow
  12 +{
  13 + Q_OBJECT
  14 +
  15 +public:
  16 + explicit FlushWaterWindow(QWidget *parent = nullptr);
  17 + ~FlushWaterWindow();
  18 +
  19 +private:
  20 + Ui::FlushWaterWindow *ui;
  21 + QTimer *terminator;
  22 +
  23 +private slots:
  24 + void updateGauge();
  25 + void waitUser();
  26 +};
  27 +
  28 +#endif // FLUSHWATERWINDOW_H
app/gui/oven_control/flushwaterwindow.ui
@@ -0,0 +1,321 @@ @@ -0,0 +1,321 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>FlushWaterWindow</class>
  4 + <widget class="QMainWindow" name="FlushWaterWindow">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/original.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }
  19 +
  20 +QSlider::groove {
  21 +background-image: url(:/images/slider/groove.png);
  22 +background-repeat: no-repeat;
  23 +background-position: center;
  24 +}
  25 +
  26 +QSlider::sub-page {
  27 +background-repeat: no-repeat;
  28 +background-position: left center;
  29 +margin: 0px 5px;
  30 +}
  31 +
  32 +QSlider[sliderColor=&quot;blue&quot;]::sub-page {
  33 +background-image: url(:/images/slider/sub_blue.png);
  34 +}
  35 +
  36 +QSlider::handle {
  37 +background-image: url(:/images/slider/handle_big.png);
  38 +background-repeat: no-repeat;
  39 +background-position: center;
  40 +width: 23px;
  41 +height: 33px;
  42 +}
  43 +
  44 +QPushButton[style=&quot;type&quot;] {
  45 +background-repeat: no-repeat;
  46 +background-position: center;
  47 +background-clip: border;
  48 +background-origin: border;
  49 +margin-bottom: 50px;
  50 +
  51 +border-top: 140px;
  52 +border-bottom: -50px;
  53 +border-style: hidden;
  54 +color: white;
  55 +font-size: 25px;
  56 +}
  57 +
  58 +QPushButton[style=&quot;icon&quot;] {
  59 +background-image: url(:/images/slider_icon/background.png);
  60 +border: none;
  61 +}</string>
  62 + </property>
  63 + <widget class="QWidget" name="centralwidget">
  64 + <widget class="AnimatedImageBox" name="animation">
  65 + <property name="geometry">
  66 + <rect>
  67 + <x>340</x>
  68 + <y>460</y>
  69 + <width>255</width>
  70 + <height>427</height>
  71 + </rect>
  72 + </property>
  73 + <property name="text">
  74 + <string/>
  75 + </property>
  76 + </widget>
  77 + <widget class="QWidget" name="upperContainer" native="true">
  78 + <property name="geometry">
  79 + <rect>
  80 + <x>0</x>
  81 + <y>0</y>
  82 + <width>900</width>
  83 + <height>426</height>
  84 + </rect>
  85 + </property>
  86 + <property name="styleSheet">
  87 + <string notr="true">#upperContainer { background-image: url(:/images/clock/background.png); }</string>
  88 + </property>
  89 + <widget class="WashStepGauge" name="progressGauge" native="true">
  90 + <property name="geometry">
  91 + <rect>
  92 + <x>249</x>
  93 + <y>300</y>
  94 + <width>532</width>
  95 + <height>58</height>
  96 + </rect>
  97 + </property>
  98 + </widget>
  99 + <widget class="QLabel" name="titleLabel">
  100 + <property name="enabled">
  101 + <bool>true</bool>
  102 + </property>
  103 + <property name="geometry">
  104 + <rect>
  105 + <x>0</x>
  106 + <y>0</y>
  107 + <width>900</width>
  108 + <height>88</height>
  109 + </rect>
  110 + </property>
  111 + <property name="palette">
  112 + <palette>
  113 + <active>
  114 + <colorrole role="WindowText">
  115 + <brush brushstyle="SolidPattern">
  116 + <color alpha="255">
  117 + <red>255</red>
  118 + <green>255</green>
  119 + <blue>255</blue>
  120 + </color>
  121 + </brush>
  122 + </colorrole>
  123 + </active>
  124 + <inactive>
  125 + <colorrole role="WindowText">
  126 + <brush brushstyle="SolidPattern">
  127 + <color alpha="255">
  128 + <red>255</red>
  129 + <green>255</green>
  130 + <blue>255</blue>
  131 + </color>
  132 + </brush>
  133 + </colorrole>
  134 + </inactive>
  135 + <disabled>
  136 + <colorrole role="WindowText">
  137 + <brush brushstyle="SolidPattern">
  138 + <color alpha="255">
  139 + <red>123</red>
  140 + <green>123</green>
  141 + <blue>123</blue>
  142 + </color>
  143 + </brush>
  144 + </colorrole>
  145 + </disabled>
  146 + </palette>
  147 + </property>
  148 + <property name="font">
  149 + <font>
  150 + <family>Roboto</family>
  151 + <pointsize>13</pointsize>
  152 + <weight>75</weight>
  153 + <bold>true</bold>
  154 + </font>
  155 + </property>
  156 + <property name="text">
  157 + <string>동파 방지 실행 중입니다</string>
  158 + </property>
  159 + <property name="alignment">
  160 + <set>Qt::AlignCenter</set>
  161 + </property>
  162 + </widget>
  163 + <widget class="QLabel" name="descLabel">
  164 + <property name="enabled">
  165 + <bool>true</bool>
  166 + </property>
  167 + <property name="geometry">
  168 + <rect>
  169 + <x>0</x>
  170 + <y>88</y>
  171 + <width>900</width>
  172 + <height>88</height>
  173 + </rect>
  174 + </property>
  175 + <property name="palette">
  176 + <palette>
  177 + <active>
  178 + <colorrole role="WindowText">
  179 + <brush brushstyle="SolidPattern">
  180 + <color alpha="255">
  181 + <red>255</red>
  182 + <green>255</green>
  183 + <blue>255</blue>
  184 + </color>
  185 + </brush>
  186 + </colorrole>
  187 + </active>
  188 + <inactive>
  189 + <colorrole role="WindowText">
  190 + <brush brushstyle="SolidPattern">
  191 + <color alpha="255">
  192 + <red>255</red>
  193 + <green>255</green>
  194 + <blue>255</blue>
  195 + </color>
  196 + </brush>
  197 + </colorrole>
  198 + </inactive>
  199 + <disabled>
  200 + <colorrole role="WindowText">
  201 + <brush brushstyle="SolidPattern">
  202 + <color alpha="255">
  203 + <red>123</red>
  204 + <green>123</green>
  205 + <blue>123</blue>
  206 + </color>
  207 + </brush>
  208 + </colorrole>
  209 + </disabled>
  210 + </palette>
  211 + </property>
  212 + <property name="font">
  213 + <font>
  214 + <family>Roboto</family>
  215 + <pointsize>13</pointsize>
  216 + </font>
  217 + </property>
  218 + <property name="text">
  219 + <string>완료될 때까지 문을 열지 마세요.
  220 +동파 방지 기능을 실행 중입니다.</string>
  221 + </property>
  222 + <property name="alignment">
  223 + <set>Qt::AlignCenter</set>
  224 + </property>
  225 + </widget>
  226 + <widget class="Line" name="line">
  227 + <property name="geometry">
  228 + <rect>
  229 + <x>0</x>
  230 + <y>88</y>
  231 + <width>900</width>
  232 + <height>1</height>
  233 + </rect>
  234 + </property>
  235 + <property name="orientation">
  236 + <enum>Qt::Horizontal</enum>
  237 + </property>
  238 + </widget>
  239 + <widget class="QLabel" name="progressLabel">
  240 + <property name="enabled">
  241 + <bool>true</bool>
  242 + </property>
  243 + <property name="geometry">
  244 + <rect>
  245 + <x>119</x>
  246 + <y>300</y>
  247 + <width>130</width>
  248 + <height>58</height>
  249 + </rect>
  250 + </property>
  251 + <property name="palette">
  252 + <palette>
  253 + <active>
  254 + <colorrole role="WindowText">
  255 + <brush brushstyle="SolidPattern">
  256 + <color alpha="255">
  257 + <red>255</red>
  258 + <green>255</green>
  259 + <blue>255</blue>
  260 + </color>
  261 + </brush>
  262 + </colorrole>
  263 + </active>
  264 + <inactive>
  265 + <colorrole role="WindowText">
  266 + <brush brushstyle="SolidPattern">
  267 + <color alpha="255">
  268 + <red>255</red>
  269 + <green>255</green>
  270 + <blue>255</blue>
  271 + </color>
  272 + </brush>
  273 + </colorrole>
  274 + </inactive>
  275 + <disabled>
  276 + <colorrole role="WindowText">
  277 + <brush brushstyle="SolidPattern">
  278 + <color alpha="255">
  279 + <red>123</red>
  280 + <green>123</green>
  281 + <blue>123</blue>
  282 + </color>
  283 + </brush>
  284 + </colorrole>
  285 + </disabled>
  286 + </palette>
  287 + </property>
  288 + <property name="font">
  289 + <font>
  290 + <family>Roboto</family>
  291 + <pointsize>13</pointsize>
  292 + <weight>75</weight>
  293 + <bold>true</bold>
  294 + </font>
  295 + </property>
  296 + <property name="text">
  297 + <string>실행 중</string>
  298 + </property>
  299 + <property name="alignment">
  300 + <set>Qt::AlignCenter</set>
  301 + </property>
  302 + </widget>
  303 + </widget>
  304 + </widget>
  305 + </widget>
  306 + <customwidgets>
  307 + <customwidget>
  308 + <class>WashStepGauge</class>
  309 + <extends>QWidget</extends>
  310 + <header>washstepgauge.h</header>
  311 + <container>1</container>
  312 + </customwidget>
  313 + <customwidget>
  314 + <class>AnimatedImageBox</class>
  315 + <extends>QLabel</extends>
  316 + <header>animatedimagebox.h</header>
  317 + </customwidget>
  318 + </customwidgets>
  319 + <resources/>
  320 + <connections/>
  321 +</ui>
app/gui/oven_control/gastestwindow.cpp
@@ -33,7 +33,7 @@ GasTestWindow::GasTestWindow(Target target, QWidget *parent) : @@ -33,7 +33,7 @@ GasTestWindow::GasTestWindow(Target target, QWidget *parent) :
33 udp->set(TG_OVEN_MODE, 4); 33 udp->set(TG_OVEN_MODE, 4);
34 connect(udp, SIGNAL(changed()), this, SLOT(onDataChanged())); 34 connect(udp, SIGNAL(changed()), this, SLOT(onDataChanged()));
35 35
36 - stopTimer.setInterval(60 * 1000); 36 + stopTimer.setInterval(120 * 1000);
37 connect(&stopTimer, SIGNAL(timeout()), SLOT(stop())); 37 connect(&stopTimer, SIGNAL(timeout()), SLOT(stop()));
38 38
39 foreach (QPushButton *button, findChildren<QPushButton *>()) 39 foreach (QPushButton *button, findChildren<QPushButton *>())
app/gui/oven_control/notipopupdlg.cpp
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 #include "soundplayer.h" 5 #include "soundplayer.h"
6 6
7 7
8 -NotiPopupDlg::NotiPopupDlg(QWidget *parent, QString strDesc) : 8 +NotiPopupDlg::NotiPopupDlg(QWidget *parent, QString strDesc, QString strBtn) :
9 QDialog(parent), 9 QDialog(parent),
10 ui(new Ui::NotiPopupDlg) 10 ui(new Ui::NotiPopupDlg)
11 { 11 {
@@ -18,6 +18,7 @@ NotiPopupDlg::NotiPopupDlg(QWidget *parent, QString strDesc) : @@ -18,6 +18,7 @@ NotiPopupDlg::NotiPopupDlg(QWidget *parent, QString strDesc) :
18 this->setFocus(); 18 this->setFocus();
19 19
20 ui->ctrLbDesc->setText(strDesc); 20 ui->ctrLbDesc->setText(strDesc);
  21 + ui->ctrBtnOk->setText(strBtn);
21 22
22 foreach (QPushButton *button, findChildren<QPushButton *>()) 23 foreach (QPushButton *button, findChildren<QPushButton *>())
23 connect(button, &QPushButton::pressed, SoundPlayer::playClick); 24 connect(button, &QPushButton::pressed, SoundPlayer::playClick);
app/gui/oven_control/notipopupdlg.h
@@ -12,7 +12,7 @@ class NotiPopupDlg : public QDialog @@ -12,7 +12,7 @@ class NotiPopupDlg : public QDialog
12 Q_OBJECT 12 Q_OBJECT
13 13
14 public: 14 public:
15 - explicit NotiPopupDlg(QWidget *parent = 0,QString strDesc=""); 15 + explicit NotiPopupDlg(QWidget *parent = 0,QString strDesc="",QString strBtn=tr("확인"));
16 ~NotiPopupDlg(); 16 ~NotiPopupDlg();
17 17
18 private slots: 18 private slots:
app/gui/oven_control/oven_control.pro
@@ -145,7 +145,8 @@ SOURCES += main.cpp\ @@ -145,7 +145,8 @@ SOURCES += main.cpp\
145 haccp.cpp \ 145 haccp.cpp \
146 canvas.cpp \ 146 canvas.cpp \
147 touchtestwindow.cpp \ 147 touchtestwindow.cpp \
148 - haccpdownloaddlg.cpp 148 + haccpdownloaddlg.cpp \
  149 + flushwaterwindow.cpp
149 150
150 151
151 HEADERS += mainwindow.h \ 152 HEADERS += mainwindow.h \
@@ -281,7 +282,8 @@ HEADERS += mainwindow.h \ @@ -281,7 +282,8 @@ HEADERS += mainwindow.h \
281 haccp.h \ 282 haccp.h \
282 canvas.h \ 283 canvas.h \
283 touchtestwindow.h \ 284 touchtestwindow.h \
284 - haccpdownloaddlg.h 285 + haccpdownloaddlg.h \
  286 + flushwaterwindow.h
285 287
286 FORMS += mainwindow.ui \ 288 FORMS += mainwindow.ui \
287 manualcookwindow.ui \ 289 manualcookwindow.ui \
@@ -367,7 +369,8 @@ FORMS += mainwindow.ui \ @@ -367,7 +369,8 @@ FORMS += mainwindow.ui \
367 multicookmanualwindow.ui \ 369 multicookmanualwindow.ui \
368 multicookautowindow.ui \ 370 multicookautowindow.ui \
369 touchtestwindow.ui \ 371 touchtestwindow.ui \
370 - haccpdownloaddlg.ui 372 + haccpdownloaddlg.ui \
  373 + flushwaterwindow.ui
371 374
372 RESOURCES += \ 375 RESOURCES += \
373 resources.qrc 376 resources.qrc
app/gui/oven_control/realtimepartswindow.cpp
@@ -107,8 +107,8 @@ void RealtimePartsWindow::reloadUi(void){ @@ -107,8 +107,8 @@ void RealtimePartsWindow::reloadUi(void){
107 if(realdata.b.wsv_open) ui->m_ctrlLbListState_1_7->setText(tr("ON")); 107 if(realdata.b.wsv_open) ui->m_ctrlLbListState_1_7->setText(tr("ON"));
108 else ui->m_ctrlLbListState_1_7->setText(tr("OFF")); 108 else ui->m_ctrlLbListState_1_7->setText(tr("OFF"));
109 109
110 - if(realdata.b.door_open) ui->m_ctrlLbListState_1_8->setText(tr("ON"));  
111 - else ui->m_ctrlLbListState_1_8->setText(tr("OFF")); 110 + if(realdata.b.door_open) ui->m_ctrlLbListState_1_8->setText(tr("OFF"));
  111 + else ui->m_ctrlLbListState_1_8->setText(tr("ON"));
112 112
113 113
114 114
app/gui/oven_control/valvetestwindow.cpp
@@ -78,6 +78,11 @@ void ValveTestWindow::onDataChanged() @@ -78,6 +78,11 @@ void ValveTestWindow::onDataChanged()
78 else 78 else
79 ui->steamPumpButton->setText("START"); 79 ui->steamPumpButton->setText("START");
80 80
  81 + if (udp->inv())
  82 + ui->innerCleanValveButton->setText("STOP");
  83 + else
  84 + ui->innerCleanValveButton->setText("START");
  85 +
81 if (udp->qnv()) 86 if (udp->qnv())
82 ui->quenchingValveButton->setText("STOP"); 87 ui->quenchingValveButton->setText("STOP");
83 else 88 else