Commit 71bc74deb31b5686feae15cfaed5fbfba8a38c1e

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

스팀 통 세척 추가

app/gui/oven_control/config.cpp
... ... @@ -18,6 +18,7 @@
18 18 #include "confighalfenergydlg.h"
19 19 #include "config1digitsetdlg.h"
20 20 #include "configdutywashdlg.h"
  21 +#include "configsteamwashdlg.h"
21 22 #include "fileprocessor.h"
22 23 #include "backlight.h"
23 24 #include "udphandler.h"
... ... @@ -536,6 +537,9 @@ void Config::execConfigWindow(QWidget *parent, Define::ConfigType idx){
536 537 case config_demo_mode:
537 538 dlg = new ConfigDemoModeDlg(parent);
538 539 break;
  540 + case config_steam_wash:
  541 + dlg = new ConfigSteamWashDlg(parent);
  542 + break;
539 543 default:
540 544 dlg=NULL;
541 545 }
... ...
app/gui/oven_control/configsteamwashdlg.cpp
... ... @@ -0,0 +1,193 @@
  1 +#include "configsteamwashdlg.h"
  2 +#include "ui_configsteamwashdlg.h"
  3 +
  4 +#include "udphandler.h"
  5 +
  6 +ConfigSteamWashDlg::ConfigSteamWashDlg(QWidget *parent) :
  7 + QDialog(parent),
  8 + ui(new Ui::ConfigSteamWashDlg)
  9 +{
  10 + ui->setupUi(this);
  11 +
  12 + setWindowFlags(Qt::FramelessWindowHint);
  13 + setAttribute(Qt::WA_NoSystemBackground);
  14 + setAttribute(Qt::WA_TranslucentBackground);
  15 + setAttribute(Qt::WA_DeleteOnClose);
  16 + setFocus();
  17 +
  18 + qApp->setActiveWindow(this);
  19 +
  20 + UdpHandler *udp = UdpHandler::getInstance();
  21 + connect(udp, SIGNAL(changed()), SLOT(onChanged()));
  22 +
  23 + updateView();
  24 +}
  25 +
  26 +ConfigSteamWashDlg::~ConfigSteamWashDlg()
  27 +{
  28 + delete ui;
  29 +}
  30 +
  31 +void ConfigSteamWashDlg::updateView()
  32 +{
  33 + switch (phase) {
  34 + case Idle:
  35 + ui->ctrLbBody->setText(tr("시작하시겠습니까?"));
  36 + ui->ctrLbBody->show();
  37 + ui->ctrGauge->hide();
  38 + ui->ctrBtnOk->setGeometry(300, 350, 150, 100);
  39 + ui->ctrBtnOk->show();
  40 + ui->ctrBtnCancel->show();
  41 + break;
  42 + case Starting:
  43 + ui->ctrLbBody->hide();
  44 + ui->ctrGauge->hide();
  45 + ui->ctrBtnOk->hide();
  46 + ui->ctrBtnCancel->hide();
  47 + break;
  48 + case Started:
  49 + {
  50 + UdpHandler *udp = UdpHandler::getInstance();
  51 +
  52 + oven_control_t control;
  53 + udp->fillControl(control);
  54 +
  55 + switch (control.clean_step_type)
  56 + {
  57 + case 1:
  58 + ui->ctrLbBody->setText(tr("내부 헹굼 진행 중입니다."));
  59 + break;
  60 + case 2:
  61 + ui->ctrLbBody->setText(tr("스팀 급수 진행 중입니다."));
  62 + break;
  63 + case 3:
  64 + ui->ctrLbBody->setText(tr("내부 팬 세척 진행 중입니다."));
  65 + break;
  66 + case 4:
  67 + ui->ctrLbBody->setText(tr("내부 스팀 불림 진행 중입니다."));
  68 + break;
  69 + case 5:
  70 + ui->ctrLbBody->setText(tr("내부 강 세척 진행 중입니다."));
  71 + break;
  72 + case 6:
  73 + ui->ctrLbBody->setText(tr("내부 상부 세척 진행 중입니다."));
  74 + break;
  75 + case 7:
  76 + ui->ctrLbBody->setText(tr("내부 스팀 세척 진행 중입니다."));
  77 + break;
  78 + case 8:
  79 + ui->ctrLbBody->setText(tr("세척 종료 진행 중입니다."));
  80 + break;
  81 + case 9:
  82 + ui->ctrLbBody->setText(tr("세제 세척수 만들기 진행 중입니다."));
  83 + break;
  84 + case 10:
  85 + ui->ctrLbBody->setText(tr("세제 세척수 헹굼 진행 중입니다."));
  86 + break;
  87 + case 11:
  88 + ui->ctrLbBody->setText(tr("하부 탱크 세척수 만들기 진행 중입니다."));
  89 + break;
  90 + }
  91 + ui->ctrLbBody->show();
  92 +
  93 + ui->ctrGauge->setMaximum(control.clean_total);
  94 + ui->ctrGauge->setValue(control.clean_step);
  95 + ui->ctrGauge->show();
  96 +
  97 + ui->ctrBtnOk->hide();
  98 + ui->ctrBtnCancel->hide();
  99 + break;
  100 + }
  101 + case Finished:
  102 + ui->ctrLbBody->setText(tr("세척이 종료되었습니다"));
  103 + ui->ctrLbBody->show();
  104 + ui->ctrGauge->setMaximum(1);
  105 + ui->ctrGauge->setValue(1);
  106 + ui->ctrGauge->show();
  107 + ui->ctrBtnOk->setGeometry(300, 350, 300, 100);
  108 + ui->ctrBtnOk->show();
  109 + ui->ctrBtnCancel->hide();
  110 + }
  111 +}
  112 +
  113 +void ConfigSteamWashDlg::onChanged()
  114 +{
  115 + switch (phase) {
  116 + case Idle:
  117 + return;
  118 + case Starting:
  119 + if (isStarted())
  120 + phase = Started;
  121 + break;
  122 + case Started:
  123 + if (isFinished())
  124 + phase = Finished;
  125 + break;
  126 + case Finished:
  127 + return;
  128 + }
  129 +
  130 + updateView();
  131 +}
  132 +
  133 +void ConfigSteamWashDlg::start()
  134 +{
  135 + UdpHandler *udp = UdpHandler::getInstance();
  136 + udp->set(TG_OVEN_MODE, 2);
  137 + udp->set(TG_CLEAN_TYPE, 6);
  138 + udp->turnOn(TG_CLEANING);
  139 +
  140 + phase = Starting;
  141 +
  142 + updateView();
  143 +}
  144 +
  145 +bool ConfigSteamWashDlg::isStarted()
  146 +{
  147 + UdpHandler *udp = UdpHandler::getInstance();
  148 +
  149 + oven_control_t control;
  150 + oven_state_t state;
  151 + udp->fillControl(control);
  152 + udp->fillData(state);
  153 +
  154 + return state.cleaning_sate != 0
  155 + && control.clean_total != 0
  156 + && control.clean_step != 0
  157 + && control.clean_step_type != 0;
  158 +}
  159 +
  160 +bool ConfigSteamWashDlg::isFinished()
  161 +{
  162 + UdpHandler *udp = UdpHandler::getInstance();
  163 +
  164 + oven_state_t state;
  165 + udp->fillData(state);
  166 +
  167 + return state.cleaning_sate == 0;
  168 +}
  169 +
  170 +void ConfigSteamWashDlg::on_ctrBtnOk_clicked()
  171 +{
  172 + switch (phase) {
  173 + case Idle:
  174 + start();
  175 + break;
  176 + case Finished:
  177 + close();
  178 + break;
  179 + default:
  180 + return;
  181 + }
  182 +}
  183 +
  184 +void ConfigSteamWashDlg::on_ctrBtnCancel_clicked()
  185 +{
  186 + switch (phase) {
  187 + case Idle:
  188 + close();
  189 + break;
  190 + default:
  191 + return;
  192 + }
  193 +}
... ...
app/gui/oven_control/configsteamwashdlg.h
... ... @@ -0,0 +1,41 @@
  1 +#ifndef CONFIGSTEAMWASHDLG_H
  2 +#define CONFIGSTEAMWASHDLG_H
  3 +
  4 +#include <QDialog>
  5 +#include <QTimer>
  6 +
  7 +namespace Ui {
  8 +class ConfigSteamWashDlg;
  9 +}
  10 +
  11 +class ConfigSteamWashDlg : public QDialog
  12 +{
  13 + Q_OBJECT
  14 +
  15 + enum Phase {
  16 + Idle, Starting, Started, Finished
  17 + };
  18 +
  19 +public:
  20 + explicit ConfigSteamWashDlg(QWidget *parent = 0);
  21 + ~ConfigSteamWashDlg();
  22 +
  23 +private slots:
  24 + void updateView();
  25 +
  26 + void onChanged();
  27 +
  28 + void start();
  29 + bool isStarted();
  30 + bool isFinished();
  31 +
  32 + void on_ctrBtnOk_clicked();
  33 + void on_ctrBtnCancel_clicked();
  34 +
  35 +private:
  36 + Ui::ConfigSteamWashDlg *ui;
  37 +
  38 + enum Phase phase = Idle;
  39 +};
  40 +
  41 +#endif // CONFIGSTEAMWASHDLG_H
... ...
app/gui/oven_control/configsteamwashdlg.ui
... ... @@ -0,0 +1,186 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>ConfigSteamWashDlg</class>
  4 + <widget class="QDialog" name="ConfigSteamWashDlg">
  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>Dialog</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralWidget { background-image: url(:/images/background/popup/503.png);
  18 +}
  19 +</string>
  20 + </property>
  21 + <widget class="QWidget" name="centralWidget" native="true">
  22 + <property name="geometry">
  23 + <rect>
  24 + <x>0</x>
  25 + <y>430</y>
  26 + <width>900</width>
  27 + <height>503</height>
  28 + </rect>
  29 + </property>
  30 + <property name="styleSheet">
  31 + <string notr="true"/>
  32 + </property>
  33 + <widget class="QPushButton" name="ctrBtnOk">
  34 + <property name="geometry">
  35 + <rect>
  36 + <x>300</x>
  37 + <y>350</y>
  38 + <width>150</width>
  39 + <height>100</height>
  40 + </rect>
  41 + </property>
  42 + <property name="font">
  43 + <font>
  44 + <weight>75</weight>
  45 + <bold>true</bold>
  46 + <underline>true</underline>
  47 + </font>
  48 + </property>
  49 + <property name="styleSheet">
  50 + <string notr="true">QPushButton {
  51 +border: none;
  52 +color: white;
  53 +}
  54 +QPushButton:pressed, QPushButton:focus {
  55 +color: yellow;
  56 +}</string>
  57 + </property>
  58 + <property name="text">
  59 + <string>확인</string>
  60 + </property>
  61 + </widget>
  62 + <widget class="QLabel" name="ctrLbTitle">
  63 + <property name="geometry">
  64 + <rect>
  65 + <x>0</x>
  66 + <y>0</y>
  67 + <width>900</width>
  68 + <height>91</height>
  69 + </rect>
  70 + </property>
  71 + <property name="font">
  72 + <font>
  73 + <family>나눔고딕</family>
  74 + <pointsize>13</pointsize>
  75 + <weight>75</weight>
  76 + <bold>true</bold>
  77 + </font>
  78 + </property>
  79 + <property name="styleSheet">
  80 + <string notr="true">QLabel {
  81 + color : white;
  82 + border : none;
  83 +}</string>
  84 + </property>
  85 + <property name="text">
  86 + <string>증기 발생기 헹굼</string>
  87 + </property>
  88 + <property name="alignment">
  89 + <set>Qt::AlignCenter</set>
  90 + </property>
  91 + </widget>
  92 + <widget class="Line" name="line">
  93 + <property name="geometry">
  94 + <rect>
  95 + <x>0</x>
  96 + <y>93</y>
  97 + <width>900</width>
  98 + <height>3</height>
  99 + </rect>
  100 + </property>
  101 + <property name="orientation">
  102 + <enum>Qt::Horizontal</enum>
  103 + </property>
  104 + </widget>
  105 + <widget class="QLabel" name="ctrLbBody">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>0</x>
  109 + <y>100</y>
  110 + <width>900</width>
  111 + <height>91</height>
  112 + </rect>
  113 + </property>
  114 + <property name="font">
  115 + <font>
  116 + <family>나눔고딕</family>
  117 + <pointsize>13</pointsize>
  118 + <weight>75</weight>
  119 + <bold>true</bold>
  120 + </font>
  121 + </property>
  122 + <property name="styleSheet">
  123 + <string notr="true">QLabel {
  124 + color : white;
  125 + border : none;
  126 +}</string>
  127 + </property>
  128 + <property name="text">
  129 + <string>시작하시겠습니까?</string>
  130 + </property>
  131 + <property name="alignment">
  132 + <set>Qt::AlignCenter</set>
  133 + </property>
  134 + </widget>
  135 + <widget class="WashStepGauge" name="ctrGauge" native="true">
  136 + <property name="geometry">
  137 + <rect>
  138 + <x>184</x>
  139 + <y>210</y>
  140 + <width>532</width>
  141 + <height>58</height>
  142 + </rect>
  143 + </property>
  144 + </widget>
  145 + <widget class="QPushButton" name="ctrBtnCancel">
  146 + <property name="geometry">
  147 + <rect>
  148 + <x>450</x>
  149 + <y>350</y>
  150 + <width>150</width>
  151 + <height>100</height>
  152 + </rect>
  153 + </property>
  154 + <property name="font">
  155 + <font>
  156 + <weight>75</weight>
  157 + <bold>true</bold>
  158 + <underline>true</underline>
  159 + </font>
  160 + </property>
  161 + <property name="styleSheet">
  162 + <string notr="true">QPushButton {
  163 +border: none;
  164 +color: white;
  165 +}
  166 +QPushButton:pressed, QPushButton:focus {
  167 +color: yellow;
  168 +}</string>
  169 + </property>
  170 + <property name="text">
  171 + <string>취소</string>
  172 + </property>
  173 + </widget>
  174 + </widget>
  175 + </widget>
  176 + <customwidgets>
  177 + <customwidget>
  178 + <class>WashStepGauge</class>
  179 + <extends>QWidget</extends>
  180 + <header>washstepgauge.h</header>
  181 + <container>1</container>
  182 + </customwidget>
  183 + </customwidgets>
  184 + <resources/>
  185 + <connections/>
  186 +</ui>
... ...
app/gui/oven_control/oven_control.pro
... ... @@ -126,7 +126,8 @@ SOURCES += main.cpp\
126 126 configdemomodedlg.cpp \
127 127 demoicon.cpp \
128 128 halfenergyicon.cpp \
129   - notipopupdlg.cpp
  129 + notipopupdlg.cpp \
  130 + configsteamwashdlg.cpp
130 131  
131 132  
132 133 HEADERS += mainwindow.h \
... ... @@ -243,7 +244,8 @@ HEADERS += mainwindow.h \
243 244 configdemomodedlg.h \
244 245 demoicon.h \
245 246 halfenergyicon.h \
246   - notipopupdlg.h
  247 + notipopupdlg.h \
  248 + configsteamwashdlg.h
247 249  
248 250 FORMS += mainwindow.ui \
249 251 manualcookwindow.ui \
... ... @@ -323,7 +325,8 @@ FORMS += mainwindow.ui \
323 325 autocookcheckconfigwindow.ui \
324 326 programmedcookpanelbutton.ui \
325 327 configdemomodedlg.ui \
326   - notipopupdlg.ui
  328 + notipopupdlg.ui \
  329 + configsteamwashdlg.ui
327 330  
328 331 RESOURCES += \
329 332 resources.qrc
... ...