diff --git a/app/gui/oven_control/main.cpp b/app/gui/oven_control/main.cpp index 8553b37..b7d50fb 100644 --- a/app/gui/oven_control/main.cpp +++ b/app/gui/oven_control/main.cpp @@ -7,7 +7,7 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); - + a.primaryScreen(). MainWindow w; w.showFullScreen(); diff --git a/app/gui/oven_control/mainwindow.cpp b/app/gui/oven_control/mainwindow.cpp index 9bda649..0ddddc6 100644 --- a/app/gui/oven_control/mainwindow.cpp +++ b/app/gui/oven_control/mainwindow.cpp @@ -26,6 +26,7 @@ MainWindow::MainWindow(QWidget *parent) : interface->setUdpHandler(udp); ManualCookWindow *window = new ManualCookWindow(this, oven, udp); + window->setWindowModality(Qt::WindowModal); window->hide(); connect(ui->steamButton, SIGNAL(clicked()), this, SIGNAL(modeButtonClicked())); @@ -43,8 +44,6 @@ MainWindow::MainWindow(QWidget *parent) : connect(ui->combiButton, SIGNAL(clicked()), sm, SLOT(map())); connect(ui->dryheatButton, SIGNAL(clicked()), sm, SLOT(map())); connect(sm, SIGNAL(mapped(int)), this, SLOT(onModeButtonClicked(int))); - - } MainWindow::~MainWindow() @@ -54,7 +53,6 @@ MainWindow::~MainWindow() void MainWindow::onModeButtonClicked(int mode) { -// oven->setMode((Oven::Mode) mode); oven->setDefault((Oven::Mode) mode); } @@ -65,5 +63,6 @@ void MainWindow::on_configButton_clicked() // w->showFullScreen(); FunctionTestWindow *w = new FunctionTestWindow(this, udp); + w->setWindowModality(Qt::WindowModal); w->showFullScreen(); } diff --git a/app/gui/oven_control/manualcookwindow.cpp b/app/gui/oven_control/manualcookwindow.cpp index 2155bd1..3204207 100644 --- a/app/gui/oven_control/manualcookwindow.cpp +++ b/app/gui/oven_control/manualcookwindow.cpp @@ -156,7 +156,12 @@ void ManualCookWindow::updateLabels() else time = oven->time(); - ui->timeLabel->setText(buf.sprintf("%02d:%02d H/M", time / 3600, (time % 3600) / 60)); + if (time >= 3600) + ui->timeLabel->setText(buf.sprintf("%d시간 %02d분", time / 3600, (time % 3600) / 60)); + else if (time >= 60) + ui->timeLabel->setText(buf.sprintf("%d분 %02d초", time / 60, time % 60)); + else + ui->timeLabel->setText(buf.sprintf("%d초", time)); if (oven->interTempEnabled()) { @@ -268,7 +273,40 @@ QPushButton#interTempButton:pressed {\ ui->innerInterTempSlider->setValue(oven->interTemp()); ui->innerInterTempSlider->blockSignals(old); - ui->runStopButton->setChecked(oven->cooking()); + if (oven->cooking()) + ui->runStopButton->setStyleSheet( + "border-image: url(:/images/images/manual/012_play_btn_ov_stop.png)"); + else + ui->runStopButton->setStyleSheet( + "border-image: url(:/images/images/manual/012_play_btn.png)"); + + if (oven->preheating()) + ui->preheatButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_01_ov.png)"); + else + ui->preheatButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_01.png)"); + + if (oven->damper()) + ui->damperButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_02_ov.png)"); + else + ui->damperButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_02.png)"); + + if (oven->humidification()) + ui->humidificationButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_03_ov.png)"); + else + ui->humidificationButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_03.png)"); + + if (oven->cooldown()) + ui->cooldownButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_05_ov.png)"); + else + ui->cooldownButton->setStyleSheet( + "border-image: url(:/images/images/manual/013_sys_icon_05.png)"); switch (oven->fan()) { @@ -301,15 +339,15 @@ QPushButton#interTempButton:pressed {\ updateLabels(); } -void ManualCookWindow::on_runStopButton_toggled(bool checked) +void ManualCookWindow::on_runStopButton_clicked() { - if (checked) - oven->startCooking(); - else + if (oven->cooking()) { oven->stopCooking(); emit cookStopRequested(); } + else + oven->startCooking(); } void ManualCookWindow::on_fanButton_clicked() @@ -331,10 +369,7 @@ void ManualCookWindow::on_applyButton_clicked() ui->bodyStack->setCurrentIndex(0); oven->setInterTemp(ui->innerInterTempSlider->value()); -// bool old = oven->blockSignals(true); oven->setInterTempEnabled(true); -// oven->blockSignals(old); - } void ManualCookWindow::on_interTempButton_clicked() @@ -347,84 +382,47 @@ void ManualCookWindow::on_interTempButton_clicked() void ManualCookWindow::on_preheatButton_clicked() { - static bool sw = false; - udp->turnOn(TG_MANUAL_RELAY); - if (sw) - udp->turnOn(TG_DV); + if (oven->preheating()) + oven->stopPreheating(); else - udp->turnOff(TG_DV); - - sw = !sw; + oven->startPreheating(); } void ManualCookWindow::on_damperButton_clicked() { - static bool sw = false; - udp->turnOn(TG_MANUAL_RELAY); - if (sw) - udp->turnOn(TG_UNP); + if (oven->damper()) + oven->closeDamper(); else - udp->turnOff(TG_UNP); - - sw = !sw; + oven->openDamper(); } void ManualCookWindow::on_humidificationButton_clicked() { - static bool sw = false; - udp->turnOn(TG_MANUAL_RELAY); - if (sw) - udp->turnOn(TG_HDM); + if (oven->humidification()) + oven->stopHumidification(); else - udp->turnOff(TG_HDM); - - sw = !sw; + oven->startHumidification(); } void ManualCookWindow::on_repeatButton_clicked() { - static bool sw = false; - udp->turnOn(TG_MANUAL_RELAY); - if (sw) - udp->turnOn(TG_SSV); - else - udp->turnOff(TG_SSV); - sw = !sw; } void ManualCookWindow::on_cooldownButton_clicked() { - static bool sw = false; - udp->turnOn(TG_MANUAL_RELAY); - if (sw) - udp->turnOn(TG_SNV); + if (oven->cooldown()) + oven->stopCooldown(); else - udp->turnOff(TG_SNV); - - sw = !sw; + oven->startCooldown(); } void ManualCookWindow::on_reserveButton_clicked() { - static bool sw = false; - udp->turnOn(TG_MANUAL_RELAY); - if (sw) - udp->turnOn(TG_HL); - else - udp->turnOff(TG_HL); - sw = !sw; } void ManualCookWindow::on_favoritesButton_clicked() { - static bool sw = false; - udp->turnOn(TG_MANUAL_RELAY); - if (sw) - udp->turnOn(TG_DP); - else - udp->turnOff(TG_DP); - sw = !sw; } diff --git a/app/gui/oven_control/manualcookwindow.h b/app/gui/oven_control/manualcookwindow.h index be52767..02f1824 100644 --- a/app/gui/oven_control/manualcookwindow.h +++ b/app/gui/oven_control/manualcookwindow.h @@ -34,7 +34,7 @@ private slots: void showCurrentTemp(); void hideCurrentTemp(); - void on_runStopButton_toggled(bool checked); + void on_runStopButton_clicked(); void on_fanButton_clicked(); void on_goOuterButton_clicked(); void on_applyButton_clicked(); diff --git a/app/gui/oven_control/manualcookwindow.ui b/app/gui/oven_control/manualcookwindow.ui index d496c51..878c9c5 100644 --- a/app/gui/oven_control/manualcookwindow.ui +++ b/app/gui/oven_control/manualcookwindow.ui @@ -469,18 +469,11 @@ background-image: url(:/images/images/manual/010_gauge_bar_set.png); QPushButton { border-image: url(:/images/images/manual/012_play_btn.png); -} - -QPushButton:checked { - border-image: url(:/images/images/manual/012_play_btn_ov_stop.png); } - - true - diff --git a/app/gui/oven_control/oven.cpp b/app/gui/oven_control/oven.cpp index cdfc720..514dda4 100644 --- a/app/gui/oven_control/oven.cpp +++ b/app/gui/oven_control/oven.cpp @@ -10,6 +10,9 @@ Oven::Oven(QObject *parent) : QObject(parent) cookingTimer.setSingleShot(true); connect(&cookingTimer, SIGNAL(timeout()), this, SLOT(stopCooking())); + damperTimer.setSingleShot(true); + connect(&damperTimer, SIGNAL(timeout()), this, SLOT(closeDamper())); + humidificationTimer.setSingleShot(true); connect(&humidificationTimer, SIGNAL(timeout()), this, SLOT(stopHumidification())); } @@ -72,6 +75,7 @@ void Oven::setDefault(Mode mode) setTime(0); setInterTempEnabled_(false); + setInterTemp_(minInterTemp()); setFan_(4); cooking_ = false; @@ -202,7 +206,7 @@ bool Oven::setFan_(int speed) if (speed == fan_) return false; - int rpm; + int rpm = 0; switch (speed) { case 1: @@ -230,7 +234,7 @@ bool Oven::setFan_(int speed) bool Oven::cookingStartable() { - if (/*door() || */cooking()) + if (/*door() || */cooking() || time() <= 0) return false; return true; @@ -267,6 +271,9 @@ void Oven::stop() if (preheating()) stopPreheating(); + if (damper()) + closeDamper(); + if (cooldown()) stopCooldown(); @@ -405,12 +412,28 @@ void Oven::stopWashing() void Oven::openDamper() { + if (!damper()) + { + damper_ = true; + damperTimer.start(5 * 60 * 1000); + interface->openDamper(); + emit changed(this); + } } void Oven::closeDamper() { + if (damper()) + { + damper_ = false; + if (damperTimer.isActive()) + damperTimer.stop(); + + interface->closeDamper(); + emit changed(this); + } } diff --git a/app/gui/oven_control/oven.h b/app/gui/oven_control/oven.h index 49fef3d..9b0d7ff 100644 --- a/app/gui/oven_control/oven.h +++ b/app/gui/oven_control/oven.h @@ -9,6 +9,7 @@ class OvenInterface : public QObject Q_OBJECT public: + OvenInterface(QObject *parent = 0) : QObject(parent) {} virtual ~OvenInterface(){} virtual int currentTemp() = 0; virtual int currentHumidity() = 0; @@ -16,8 +17,8 @@ public: virtual bool door() = 0; signals: - virtual void doorOpened() = 0; - virtual void doorClosed() = 0; + void doorOpened(); + void doorClosed(); public slots: // virtual void setMode(Oven::Mode mode) = 0; @@ -70,6 +71,7 @@ private: bool paused_; QTimer cookingTimer; + QTimer damperTimer; QTimer humidificationTimer; QTimer interTempTimer; diff --git a/app/gui/oven_control/oven_control.pro b/app/gui/oven_control/oven_control.pro index c1a70ee..adb35c5 100644 --- a/app/gui/oven_control/oven_control.pro +++ b/app/gui/oven_control/oven_control.pro @@ -65,3 +65,6 @@ FORMS += mainwindow.ui \ RESOURCES += \ resources.qrc + +target.path = /root +INSTALLS += target diff --git a/app/gui/oven_control/ovencontroller.cpp b/app/gui/oven_control/ovencontroller.cpp index b5c490c..68b97e2 100644 --- a/app/gui/oven_control/ovencontroller.cpp +++ b/app/gui/oven_control/ovencontroller.cpp @@ -1,6 +1,6 @@ #include "ovencontroller.h" -OvenController::OvenController() +OvenController::OvenController(QObject *parent) : OvenInterface(parent) { } diff --git a/app/gui/oven_control/ovencontroller.h b/app/gui/oven_control/ovencontroller.h index d944531..7e8ce0f 100644 --- a/app/gui/oven_control/ovencontroller.h +++ b/app/gui/oven_control/ovencontroller.h @@ -14,7 +14,7 @@ class OvenController : public OvenInterface oven_state_t state; public: - OvenController(); + OvenController(QObject *parent = 0); void setUdpHandler(UdpHandler *udp); int currentTemp();