From 878f5d85f88abb585113bf5734e27b5c65635da9 Mon Sep 17 00:00:00 2001 From: byloveletter Date: Thu, 29 Jun 2017 14:53:11 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=80=EC=8A=A4=EC=8B=9D=20rpm=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/gui/oven_control/config.cpp | 34 +++++++-- app/gui/oven_control/config.h | 21 +++++- app/gui/oven_control/fileprocessdlg.cpp | 17 +++++ app/gui/oven_control/functiontestwindow.cpp | 109 ++++++++++++++++++++++++++++ app/gui/oven_control/functiontestwindow.h | 3 + app/gui/oven_control/functiontestwindow.ui | 52 ++++++++++++- app/gui/oven_control/usbcheckpopupdlg.cpp | 3 +- 7 files changed, 226 insertions(+), 13 deletions(-) diff --git a/app/gui/oven_control/config.cpp b/app/gui/oven_control/config.cpp index ffea9d4..fbd5cd2 100644 --- a/app/gui/oven_control/config.cpp +++ b/app/gui/oven_control/config.cpp @@ -119,6 +119,14 @@ void Config::initConfig(){ configlist.items.demo_mode.d32=0; configlist.items.enter_engineer_mode.d32=0; configlist.items.model.d32 = model_electric_20; + configlist.items.burner1_pwr1_normal_rpm.d32 = 4000; + configlist.items.burner1_pwr1_half_rpm.d32 = 4000; + configlist.items.burner1_pwr2_normal_rpm.d32 = 6000; + configlist.items.burner1_pwr2_half_rpm.d32 = 4500; + configlist.items.burner23_pwr1_normal_rpm.d32 = 2300; + configlist.items.burner23_pwr1_half_rpm.d32 = 2300; + configlist.items.burner23_pwr2_normal_rpm.d32 = 6500; + configlist.items.burner23_pwr2_half_rpm.d32 = 4500; qDebug() << "Init Config lists"; } @@ -149,13 +157,20 @@ bool Config::loadConfig(){ if(file.open(QIODevice::ReadOnly)){ readlen = file.read(buff,sizeof(config_lists)+1); file.close(); - if(buff[sizeof(config_lists)] ==0x9c && readlen == (sizeof(config_lists)+1) ){ + if(readlen != (sizeof(configlist)+1)){ + //File size is wrong. apply default config value & save default value; + qDebug() << "config file size wrone, apply defult setting!"; + saveConfig(); + return false; + } + if(buff[sizeof(config_lists)] ==0x9c){ memcpy(configlist.data,buff,sizeof(config_lists)); qDebug() << "loading config file success"; } else { qDebug()<<"loading config file fail"; - return true; + saveConfig(); + return false; } } else{ @@ -167,6 +182,7 @@ bool Config::loadConfig(){ void Config::applyConfig(){ watcher.setDelay(configlist.items.set_auto_darkness.d32); Backlight::set(configlist.items.backlight.d32); + UdpHandler* udp = UdpHandler::getInstance(); switch (configlist.items.model.d32) { @@ -180,13 +196,17 @@ void Config::applyConfig(){ case Define::model_gas_lpg_40: if (configlist.items.set_half_energy.d32) { - UdpHandler::getInstance()->set(TG_BURNER1_2_RPM, 4500); - UdpHandler::getInstance()->set(TG_BURNER23_2_RPM, 4500); + udp->set(TG_BURNER1_1_RPM, configlist.items.burner1_pwr1_half_rpm.d32); + udp->set(TG_BURNER1_2_RPM, configlist.items.burner1_pwr2_half_rpm.d32); + udp->set(TG_BURNER23_1_RPM, configlist.items.burner23_pwr1_half_rpm.d32); + udp->set(TG_BURNER23_2_RPM, configlist.items.burner23_pwr2_half_rpm.d32); } else - { - UdpHandler::getInstance()->set(TG_BURNER1_2_RPM, 6000); - UdpHandler::getInstance()->set(TG_BURNER23_2_RPM, 6500); + { + udp->set(TG_BURNER1_1_RPM, configlist.items.burner1_pwr1_normal_rpm.d32); + udp->set(TG_BURNER1_2_RPM, configlist.items.burner1_pwr2_normal_rpm.d32); + udp->set(TG_BURNER23_1_RPM, configlist.items.burner23_pwr1_normal_rpm.d32); + udp->set(TG_BURNER23_2_RPM, configlist.items.burner23_pwr2_normal_rpm.d32); } UdpHandler::getInstance()->set(TG_PRODUCT_TYPE, 1); break; diff --git a/app/gui/oven_control/config.h b/app/gui/oven_control/config.h index 4a2cb30..7fd63be 100644 --- a/app/gui/oven_control/config.h +++ b/app/gui/oven_control/config.h @@ -9,7 +9,7 @@ #define STRUCT_PACK __attribute__ ((packed)) -#define MAX_CONFIG_COUNT 46 +#define MAX_CONFIG_COUNT 54 #define MAX_SOFTWARE_INFO_CNT 7 #define MAX_HOTLINE_CHEF_CNT 3 #define MAX_HOTLINE_SERVICE_CNT 2 @@ -21,6 +21,7 @@ #define MODEL_INFO_FILE_NAME "/prime/config/model_info.csv" #define CHEF_INFO_FILE_NAME "/prime/config/chef_info.csv" #define SERVICE_INFO_FILE_NAME "/prime/config/service_info.csv" +#define RPM_INFO_FILE_NAME "/prime/config/rpm_info.csv" static const char rest_time_type_menu[2][16] = { @@ -160,6 +161,14 @@ namespace Define config_demo_mode, config_enter_engineer_mode, config_model, + config_burner1_pwr1_normal_rpm, + config_burner1_pwr2_normal_rpm, + config_burner23_pwr1_normal_rpm, + config_burner23_pwr2_normal_rpm, + config_burner1_pwr1_half_rpm, + config_burner1_pwr2_half_rpm, + config_burner23_pwr1_half_rpm, + config_burner23_pwr2_half_rpm, config_standard_info_upload, config_invalid = MAX_CONFIG_COUNT+1 }; @@ -227,7 +236,15 @@ namespace Define config_item steam_wash; config_item demo_mode; config_item enter_engineer_mode; - config_item model; + config_item model; //System Data, Do not copy after this item when config upload. + config_item burner1_pwr1_normal_rpm; + config_item burner1_pwr2_normal_rpm; + config_item burner23_pwr1_normal_rpm; + config_item burner23_pwr2_normal_rpm; + config_item burner1_pwr1_half_rpm; + config_item burner1_pwr2_half_rpm; + config_item burner23_pwr1_half_rpm; + config_item burner23_pwr2_half_rpm; }items; }STRUCT_PACK config_lists; diff --git a/app/gui/oven_control/fileprocessdlg.cpp b/app/gui/oven_control/fileprocessdlg.cpp index fa1524a..f457e96 100644 --- a/app/gui/oven_control/fileprocessdlg.cpp +++ b/app/gui/oven_control/fileprocessdlg.cpp @@ -690,11 +690,28 @@ void FileProcessDlg::configDownload(){ } void FileProcessDlg::configUpload(){ + char buff[sizeof(config_lists)+1]; + qint64 readlen; QString strUsbPath; QString strSrcPath; Config *cfg = Config::getInstance(); if(FileProcessor::detectUSB(strUsbPath)){ strSrcPath = QString("%1/%2").arg(strUsbPath).arg(CONFIG_FILE_NAME); + QFile srcFile(strSrcPath); + //Check Source File is valid this machine + readlen = srcFile.read(buff,sizeof(config_lists)+1); + if(readlen != (sizeof(config_lists)+1)) { + qDebug() << "SRC config.ini file size wrong"; + ui->ctrLbRemainTime->setText(tr("설정 업로드에 실패하였습니다.")); + QTimer::singleShot(1000,this,SLOT(close())); + return; + } + if(buff[sizeof(config_lists)] != 0x9C){ + qDebug() << "SRC config.ini file check fail"; + ui->ctrLbRemainTime->setText(tr("설정 업로드에 실패하였습니다.")); + QTimer::singleShot(1000,this,SLOT(close())); + return; + } QFile file(CONFIG_FILE_NAME); file.remove(); if(QFile::copy( strSrcPath , CONFIG_FILE_NAME)){ diff --git a/app/gui/oven_control/functiontestwindow.cpp b/app/gui/oven_control/functiontestwindow.cpp index c9b2a67..e10f2fa 100644 --- a/app/gui/oven_control/functiontestwindow.cpp +++ b/app/gui/oven_control/functiontestwindow.cpp @@ -10,6 +10,11 @@ #include "fantestwindow.h" #include "gastestwindow.h" #include "soundplayer.h" +#include "config.h" +#include "yesnopopupdlg.h" +#include "notipopupdlg.h" +#include "usbcheckpopupdlg.h" +#include "fileprocessor.h" FunctionTestWindow::FunctionTestWindow(QWidget *parent) : QMainWindow(parent), @@ -118,3 +123,107 @@ void FunctionTestWindow::onEncoderClicked(QWidget *clicked) if (b) b->click(); } + +bool FunctionTestWindow::readFromRpmFilea(QMap &rpm_map, const QString &filename){ + QFile file(filename); + QString label; + uint32_t value; + + if(file.open(QIODevice::ReadOnly | QIODevice::Text)){ + while(!file.atEnd()){ + QString line = QString::fromUtf8(file.readLine()); + rpm_map[line.section(',',0,0)] = line.section(',',1,1).toUInt(); + } + qDebug() << file.fileName() << "read OK!"; + qDebug() << "final size " << rpm_map.size(); + return true; + } + else { + qDebug() << file.fileName() + " file not found"; + } + return false; + +} + +void FunctionTestWindow::on_adjustBlowerFan_clicked() +{ + QString strUsbPath; + Config* cfg = Config::getInstance(); + Define::config_item item; + + YesNoPopupDlg* yesDlg = new YesNoPopupDlg(this,tr("RPM 설정을 바꾸시겠습니까?")); + yesDlg->exec(); + if(yesDlg->result()!=QDialog::Accepted){ + return; + } + + + QMap rpm_infos; + rpm_infos["config_burner1_pwr1_normal_rpm"] = 4000; + rpm_infos["config_burner1_pwr2_normal_rpm"] = 6000; + rpm_infos["config_burner23_pwr1_normal_rpm"] = 2300; + rpm_infos["config_burner23_pwr2_normal_rpm"] = 6500; + rpm_infos["config_burner1_pwr1_half_rpm"] = 4000; + rpm_infos["config_burner1_pwr2_half_rpm"] = 4500; + rpm_infos["config_burner23_pwr1_half_rpm"] = 2300; + rpm_infos["config_burner23_pwr2_half_rpm"] = 4500; + + if(!FileProcessor::detectUSB(strUsbPath)){ + UsbCheckPopupDlg* usbDlg = new UsbCheckPopupDlg(this); + usbDlg->exec(); + if(usbDlg->result() != QDialog::Accepted){ + NotiPopupDlg* notidlg= new NotiPopupDlg(this,tr("USB 메모리가 인식되지 않았습니다.")); + notidlg->exec(); + return; + } + } + + FileProcessor::detectUSB(strUsbPath); + + + + strUsbPath = QString("%1%2").arg(strUsbPath).arg(QString(RPM_INFO_FILE_NAME)); + + if(readFromRpmFilea(rpm_infos,strUsbPath)){ + + YesNoPopupDlg* dlg = new YesNoPopupDlg(this, tr("송풍기 교정을 하시겠습니까?")); + + item.d32 = rpm_infos["config_burner1_pwr1_normal_rpm"]; + cfg->setConfigValue(Define::config_burner1_pwr1_normal_rpm, item); + + item.d32 = rpm_infos["config_burner1_pwr2_normal_rpm"]; + cfg->setConfigValue(Define::config_burner1_pwr2_normal_rpm, item); + + item.d32 = rpm_infos["config_burner23_pwr1_normal_rpm"]; + cfg->setConfigValue(Define::config_burner23_pwr1_normal_rpm,item); + + item.d32 = rpm_infos["config_burner23_pwr2_normal_rpm"]; + cfg->setConfigValue(Define::config_burner23_pwr2_normal_rpm, item); + + item.d32 = rpm_infos["config_burner1_pwr1_half_rpm"]; + cfg->setConfigValue(Define::config_burner1_pwr1_half_rpm,item); + + item.d32 = rpm_infos["config_burner1_pwr2_half_rpm"]; + cfg->setConfigValue(Define::config_burner1_pwr2_half_rpm, item); + + item.d32 = rpm_infos["config_burner23_pwr1_half_rpm"]; + cfg->setConfigValue(Define::config_burner23_pwr1_half_rpm,item); + + item.d32 = rpm_infos["config_burner23_pwr2_half_rpm"]; + cfg->setConfigValue(Define::config_burner23_pwr2_half_rpm,item); + + cfg->saveConfig(); + cfg->applyConfig(); + + item = cfg->getConfigValue(Define::config_burner23_pwr2_half_rpm); + qDebug() << item.d32; + + NotiPopupDlg* notidlg = new NotiPopupDlg(this,tr("적용 되었습니다.")); + notidlg->exec(); + } + else{ + NotiPopupDlg* notidlg = new NotiPopupDlg(this,tr("설정 파일이 없습니다.")); + notidlg->exec(); + } + +} diff --git a/app/gui/oven_control/functiontestwindow.h b/app/gui/oven_control/functiontestwindow.h index eaf69d7..84bde0a 100644 --- a/app/gui/oven_control/functiontestwindow.h +++ b/app/gui/oven_control/functiontestwindow.h @@ -33,6 +33,8 @@ private slots: void on_gasTestButton_clicked(); + void on_adjustBlowerFan_clicked(); + private: Ui::FunctionTestWindow *ui; @@ -41,6 +43,7 @@ private: void onEncoderLeft(); void onEncoderRight(); void onEncoderClicked(QWidget *clicked); + bool readFromRpmFilea(QMap &rpm_map, const QString &filename); }; #endif // FUNCTIONTESTWINDOW_H diff --git a/app/gui/oven_control/functiontestwindow.ui b/app/gui/oven_control/functiontestwindow.ui index 8743e90..24a7aa0 100644 --- a/app/gui/oven_control/functiontestwindow.ui +++ b/app/gui/oven_control/functiontestwindow.ui @@ -500,10 +500,10 @@ QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/b - 100 + 79 580 - 1 - 542 + 41 + 631 @@ -575,6 +575,50 @@ QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/b Qt::Horizontal + + + + 100 + 1210 + 30 + 1 + + + + Qt::Horizontal + + + + + + 128 + 1175 + 379 + 70 + + + + + 0 + 0 + + + + + NanumGothic + 10 + 75 + true + + + + QPushButton { border-image: url(:/images/button/379.png); } +QPushButton:pressed, QPushButton:focus { border-image: url(:/images/button/379_ov.png); } + + + 송풍기 교정 + + line line_2 upperStack @@ -594,6 +638,8 @@ QPushButton:pressed, QPushButton:focus { border-image: url(:/images/bottom_bar/b line_5 line_6 line_7 + line_8 + adjustBlowerFan diff --git a/app/gui/oven_control/usbcheckpopupdlg.cpp b/app/gui/oven_control/usbcheckpopupdlg.cpp index 6e008be..8b4f8ad 100644 --- a/app/gui/oven_control/usbcheckpopupdlg.cpp +++ b/app/gui/oven_control/usbcheckpopupdlg.cpp @@ -28,7 +28,8 @@ UsbCheckPopupDlg::~UsbCheckPopupDlg() void UsbCheckPopupDlg::on_ctrBtnYes_clicked() { - accept(); + //accept(); + reject(); } void UsbCheckPopupDlg::usbCheckTimerFired(){ -- 2.1.4