diff --git a/app/gui/oven_control/adjustmentwindow.cpp b/app/gui/oven_control/adjustmentwindow.cpp index c856e52..46b15a7 100644 --- a/app/gui/oven_control/adjustmentwindow.cpp +++ b/app/gui/oven_control/adjustmentwindow.cpp @@ -3,6 +3,7 @@ #include "ui_adjustmentwindow.h" #include "yesnopopupdlg.h" #include "soundplayer.h" +#include "notipopupdlg.h" AdjustmentWindow::AdjustmentWindow(QWidget *parent) : QMainWindow(parent), @@ -15,6 +16,10 @@ AdjustmentWindow::AdjustmentWindow(QWidget *parent) : foreach (QPushButton *button, findChildren()) connect(button, &QPushButton::pressed, SoundPlayer::playClick); + m_nCurStep = 0; + m_bAdjustStarted = false; + m_tmrOneSec = new QTimer(this); + connect(m_tmrOneSec, SIGNAL(timeout()), this, SLOT(testTimerFired())); } AdjustmentWindow::~AdjustmentWindow() @@ -26,20 +31,79 @@ void AdjustmentWindow::on_btnAdjust_clicked() { YesNoPopupDlg* w = new YesNoPopupDlg(this,tr("모든 설정 값을 공장(출고)초기화\n값으로 변경 하시겠습니까?")); //w->raise(); - int dlgrst = w->exec(); - dlgrst = w->result(); - if(dlgrst == QDialog::Accepted) { - //Process Init Value; - qDebug() << "Accepted"; + if(m_bAdjustStarted == false){ + UdpHandler* udp = UdpHandler::getInstance(); + int dlgrst = w->exec(); + dlgrst = w->result(); + if(dlgrst == QDialog::Accepted) { + //Process Init Value; + qDebug() << "Accepted"; + m_nCurStep = 0; + m_bAdjustStarted = true; + m_nSecCnt = 0; + udp->turnOn(TG_MANUAL_BURNER1); + udp->turnOn(TG_MANUAL_BURNER2); + udp->turnOn(TG_MANUAL_BURNER3); + udp->turnOn(TG_MANUAL_FAN1); + udp->turnOn(TG_MANUAL_FAN2); + udp->turnOn(TG_MANUAL_RELAY); + udp->turnOn(m_arrTestItems[m_nCurStep]); + m_tmrOneSec->start(1000); + } + else qDebug() <<"Rejected"; + } + else{ + } - else qDebug() <<"Rejected"; } void AdjustmentWindow::on_backButton_clicked() { + UdpHandler* udp = UdpHandler::getInstance(); + if(m_bAdjustStarted){ + m_tmrOneSec->stop(); + udp->turnOff(TG_MANUAL_BURNER1); + udp->turnOff(TG_MANUAL_BURNER2); + udp->turnOff(TG_MANUAL_BURNER3); + udp->turnOff(TG_MANUAL_FAN1); + udp->turnOff(TG_MANUAL_FAN2); + udp->turnOff(TG_MANUAL_RELAY); + m_bAdjustStarted = false; + } close(); } +void AdjustmentWindow::testTimerFired() +{ + int nRestTime = ADJUST_TIME_SEC * MAX_ADJUST_TEST_CNT; + QString strTemp; + m_nSecCnt++; + if((m_nSecCnt%ADJUST_TIME_SEC)==0){ + UdpHandler* udp = UdpHandler::getInstance(); + udp->turnOff(m_arrTestItems[m_nCurStep]); + m_nCurStep++; + if(m_nCurStep < MAX_ADJUST_TEST_CNT){ + udp->turnOn(m_nCurStep); + } + else{ + //Test Finished + m_tmrOneSec->stop(); + udp->turnOff(TG_MANUAL_BURNER1); + udp->turnOff(TG_MANUAL_BURNER2); + udp->turnOff(TG_MANUAL_BURNER3); + udp->turnOff(TG_MANUAL_FAN1); + udp->turnOff(TG_MANUAL_FAN2); + udp->turnOff(TG_MANUAL_RELAY); + m_bAdjustStarted = false; + QDialog* dlg = new NotiPopupDlg(this,tr("테스트를 완료하였습니다.")); + dlg->exec(); + } + } + nRestTime = nRestTime - m_nSecCnt; + strTemp = QString("%1/ %2:%3").arg(m_nCurStep).arg((nRestTime/60),2,10,QLatin1Char('0')).arg((nRestTime%60),2,10,QLatin1Char('0')); + ui->btnAdjust->setText(strTemp); +} + void AdjustmentWindow::keyPressEvent(QKeyEvent *event){ switch (event->key()) diff --git a/app/gui/oven_control/adjustmentwindow.h b/app/gui/oven_control/adjustmentwindow.h index d416eae..e7155bf 100644 --- a/app/gui/oven_control/adjustmentwindow.h +++ b/app/gui/oven_control/adjustmentwindow.h @@ -3,6 +3,10 @@ #include #include +#include "udphandler.h" + +#define MAX_ADJUST_TEST_CNT 20 +#define ADJUST_TIME_SEC 60 namespace Ui { class AdjustmentWindow; @@ -21,12 +25,40 @@ private slots: void on_backButton_clicked(); + void testTimerFired(void); + protected: void keyReleaseEvent(QKeyEvent* event); void keyPressEvent(QKeyEvent* event); private: Ui::AdjustmentWindow *ui; + bool m_bAdjustStarted; + int m_nCurStep; + int m_nSecCnt; + QTimer* m_tmrOneSec; + const target_onoff_t m_arrTestItems[MAX_ADJUST_TEST_CNT] = { + TG_BUNNER1_MANUAL, + TG_BUNNER2_MANUAL, + TG_BUNNER3_MANUAL, + TG_BUNNER1_FAN, + TG_BUNNER2_FAN, + TG_BUNNER3_FAN, + TG_FAN1_MANUAL, + TG_FAN2_MANUAL, + TG_DV, + TG_CFAN, + TG_WSV, + TG_QNV, + TG_SSV, + TG_SNV, + TG_HL, + TG_DP, + TG_SSP, + TG_UNP, + TG_HDM, + TG_SGNV + }; }; #endif // ADJUSTMENTWINDOW_H diff --git a/app/gui/oven_control/notipopupdlg.cpp b/app/gui/oven_control/notipopupdlg.cpp new file mode 100644 index 0000000..40c8b5c --- /dev/null +++ b/app/gui/oven_control/notipopupdlg.cpp @@ -0,0 +1,55 @@ +#include +#include "notipopupdlg.h" +#include "ui_notipopupdlg.h" + +#include "soundplayer.h" + + +NotiPopupDlg::NotiPopupDlg(QWidget *parent, QString strDesc) : + QDialog(parent), + ui(new Ui::NotiPopupDlg) +{ + ui->setupUi(this); + this->setAttribute( Qt::WA_DeleteOnClose); + setWindowFlags(Qt::FramelessWindowHint); + setAttribute(Qt::WA_NoSystemBackground,false); + setAttribute(Qt::WA_TranslucentBackground); + qApp->setActiveWindow(this); + this->setFocus(); + + ui->ctrLbDesc->setText(strDesc); + + foreach (QPushButton *button, findChildren()) + connect(button, &QPushButton::pressed, SoundPlayer::playClick); + + ui->ctrBtnOk->setFocus(); +} + +NotiPopupDlg::~NotiPopupDlg() +{ + delete ui; +} + +void NotiPopupDlg::on_ctrBtnOk_clicked() +{ + accept(); +} + + +void NotiPopupDlg::keyPressEvent(QKeyEvent *event){ + +} + +void NotiPopupDlg::keyReleaseEvent(QKeyEvent *event){ + switch (event->key()) + { + case 0x01000031: // Push + { + QPushButton *btn = qobject_cast(focusWidget()); + if(btn != NULL){ + btn->click(); + } + break; + } + } +} diff --git a/app/gui/oven_control/notipopupdlg.h b/app/gui/oven_control/notipopupdlg.h new file mode 100644 index 0000000..4acb9f2 --- /dev/null +++ b/app/gui/oven_control/notipopupdlg.h @@ -0,0 +1,29 @@ +#ifndef NOTIPOPUPDLG_H +#define NOTIPOPUPDLG_H + +#include + +namespace Ui { +class NotiPopupDlg; +} + +class NotiPopupDlg : public QDialog +{ + Q_OBJECT + +public: + explicit NotiPopupDlg(QWidget *parent = 0,QString strDesc=""); + ~NotiPopupDlg(); + +private slots: + void on_ctrBtnOk_clicked(); + +protected: + void keyPressEvent(QKeyEvent* event); + void keyReleaseEvent(QKeyEvent* event); + +private: + Ui::NotiPopupDlg *ui; +}; + +#endif // NOTIPOPUPDLG_H diff --git a/app/gui/oven_control/notipopupdlg.ui b/app/gui/oven_control/notipopupdlg.ui new file mode 100644 index 0000000..35c63d1 --- /dev/null +++ b/app/gui/oven_control/notipopupdlg.ui @@ -0,0 +1,113 @@ + + + NotiPopupDlg + + + + 0 + 0 + 900 + 1600 + + + + 1.000000000000000 + + + #centralWidget { background-image: url(:/images/background/popup/503.png); +} + + + + true + + + + + 0 + 420 + 900 + 503 + + + + + + + + + 572 + 362 + 128 + 70 + + + + + 75 + true + true + + + + QPushButton{ +border : none; +color : white; +} +QPushButton::pressed, QPushButton::focus{color : yellow} + + + 확인 + + + + + + 415 + 99 + 61 + 51 + + + + + + + :/images/symbol/warning.png + + + + + + 0 + 150 + 900 + 201 + + + + + 나눔고딕 + 14 + + + + QLabel { + color : white; + border : none; +} + + + TextLabel + + + Qt::AlignCenter + + + + + + + + + diff --git a/app/gui/oven_control/oven_control.pro b/app/gui/oven_control/oven_control.pro index 274c6a5..dba1e3a 100644 --- a/app/gui/oven_control/oven_control.pro +++ b/app/gui/oven_control/oven_control.pro @@ -125,7 +125,8 @@ SOURCES += main.cpp\ programmedcookpanelbutton.cpp \ configdemomodedlg.cpp \ demoicon.cpp \ - halfenergyicon.cpp + halfenergyicon.cpp \ + notipopupdlg.cpp HEADERS += mainwindow.h \ @@ -241,7 +242,8 @@ HEADERS += mainwindow.h \ programmedcookpanelbutton.h \ configdemomodedlg.h \ demoicon.h \ - halfenergyicon.h + halfenergyicon.h \ + notipopupdlg.h FORMS += mainwindow.ui \ manualcookwindow.ui \ @@ -320,7 +322,8 @@ FORMS += mainwindow.ui \ autocookcheckwindow.ui \ autocookcheckconfigwindow.ui \ programmedcookpanelbutton.ui \ - configdemomodedlg.ui + configdemomodedlg.ui \ + notipopupdlg.ui RESOURCES += \ resources.qrc