diff --git a/app/gui/oven_control/autocook.cpp b/app/gui/oven_control/autocook.cpp index 5e6f044..6459875 100644 --- a/app/gui/oven_control/autocook.cpp +++ b/app/gui/oven_control/autocook.cpp @@ -44,14 +44,9 @@ void AutoCook::startStep() oven->setTemp(currentStep.temp); oven->setFan(currentStep.fan); oven->setTime(remainingTime() + 300); - + oven->setInterTempEnabled(false); if (cook.isCoreTempValid()) - { oven->setInterTemp(cook.coreTemp()); - oven->setInterTempEnabled(true); - } - else - oven->setInterTempEnabled(false); if (currentStep.dehumidification) { @@ -80,8 +75,6 @@ void AutoCook::startStep() void AutoCook::nextStep() { - qDebug() << "Next Step Before" << remainingTime(); - Oven *oven = Oven::getInstance(); CookStep ¤tStep = cook.steps[currentStepIndex]; @@ -106,12 +99,7 @@ void AutoCook::nextStep() oven->setTime(remainingTime() + 300); if (cook.isCoreTempValid()) - { oven->setInterTemp(cook.coreTemp()); - oven->setInterTempEnabled(true); - } - else - oven->setInterTempEnabled(false); stepStartTime.start(); oven->startCooking(); @@ -235,6 +223,7 @@ void AutoCook::nextStep() oven->stopHumidification(); } + oven->setInterTempEnabled(false); oven->stopCooking(); isWaitingDoorOpened_ = true; } @@ -242,8 +231,6 @@ void AutoCook::nextStep() currentStepIndex++; advance(); - - qDebug() << "Next Step After" << remainingTime(); } bool AutoCook::advance() @@ -359,6 +346,11 @@ bool AutoCook::advance() lastCoreTempIncreasedTime.start(); } + if (cook.coreTemp() != oven->interTemp()) + oven->setInterTemp(cook.coreTemp()); + + if (!oven->interTempEnabled()) + oven->setInterTempEnabled(true); int currentCoreTemp = oven->currentInterTemp(); if (currentCoreTemp >= cook.coreTemp()) @@ -413,13 +405,6 @@ bool AutoCook::advance() CookStep &lastStep = cook.steps[cook.steps.size() - 1]; int expectedRemainingTime = (cook.coreTemp() - currentCoreTemp) * lastCoreTempChangedTime.elapsed() / (currentCoreTemp - lastCoreTemp); - - qDebug() << "cook.coreTemp()" << cook.coreTemp(); - qDebug() << "currentCoreTemp" << currentCoreTemp; - qDebug() << "lastCoreTemp" << lastCoreTemp; - qDebug() << "lastCoreTempChangedTime.elapsed()" << lastCoreTempChangedTime.elapsed(); - qDebug() << "expectedRemainingTime" << expectedRemainingTime; - if (expectedRemainingTime > 30000) { lastStep.time = expectedRemainingTime; @@ -428,10 +413,6 @@ bool AutoCook::advance() else { int currentRemainingTime = lastStep.time - lastCoreTempIncreasedTime.elapsed(); - - qDebug() << "lastCoreTempIncreasedTime" << lastCoreTempIncreasedTime; - qDebug() << "currentRemainingTime" << currentRemainingTime; - if (currentRemainingTime > 30000) { lastStep.time = 30000; @@ -449,42 +430,10 @@ bool AutoCook::advance() lastCoreTemp = currentCoreTemp; lastCoreTempChangedTime.start(); } - - -// int currentCoreTemp = oven->currentInterTemp(); -// if (currentCoreTemp != lastCoreTemp) -// { -// int remainingStepsTime = 0; -// for (int idx = currentStepIndex + 1; idx < cook.steps.size(); idx++) -// remainingStepsTime += cook.steps[idx].time; - -// int currentRemainingTime = currentStep.time - lastCoreTempTime.elapsed() + remainingStepsTime; -// int expectedTime = (cook.coreTemp() - currentCoreTemp) * qAbs(lastCoreTempTime.elapsed() / (currentCoreTemp - lastCoreTemp)); -// int expectedCurrentStepTime = expectedTime - remainingStepsTime; - -// for (int idx = currentStepIndex; idx < cook.steps.size(); idx++) -// { -// CookStep &step = cook.steps[idx]; -// if (expectedCurrentStepTime > 0) -// { -// step.time = expectedCurrentStepTime; -// break; -// } -// else -// { -// expectedCurrentStepTime += step.time; -// step.time = 0; -// } -// } - -// lastCoreTemp = oven->currentInterTemp(); -// lastCoreTempTime.start(); -// stepStartTime.start(); - -// advance(); - -// return true; -// } + } + else if (oven->interTempEnabled()) + { + oven->setInterTempEnabled(false); } } case Define::InvalidClass: diff --git a/app/gui/oven_control/mainwindow.ui b/app/gui/oven_control/mainwindow.ui index 6201834..d55e026 100644 --- a/app/gui/oven_control/mainwindow.ui +++ b/app/gui/oven_control/mainwindow.ui @@ -666,7 +666,7 @@ QPushButton:pressed, QPushButton:focus { background-image: url(:/images/cook_typ - V0.1.12 + V0.2.0 Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing diff --git a/app/gui/oven_control/system.cpp b/app/gui/oven_control/system.cpp index 9beadc8..f26d535 100644 --- a/app/gui/oven_control/system.cpp +++ b/app/gui/oven_control/system.cpp @@ -4,8 +4,17 @@ #include #include +namespace { +System::IPData setting; +} + void System::setIP(System::IPData &data) { + if (setting == data) + return; + + setting = data; + QString ifconfig = QString("ifconfig eth0 %1 netmask %2 up").arg(data.address, data.netmask); QString route = QString("route del default; route add default gw %1").arg(data.gateway); diff --git a/app/gui/oven_control/system.h b/app/gui/oven_control/system.h index 260d348..f4f872f 100644 --- a/app/gui/oven_control/system.h +++ b/app/gui/oven_control/system.h @@ -11,6 +11,11 @@ struct IPData QString address; QString netmask; QString gateway; + + bool operator==(const IPData &other) + { + return address == other.address && netmask == other.netmask && gateway == other.gateway; + } }; void setIP(IPData &data);