From dbfe7c9eac1ff7d061e49fa3bfb062c0f133f57d Mon Sep 17 00:00:00 2001 From: byloveletter Date: Thu, 18 May 2017 18:37:27 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=A0=80=EC=9E=A5=20?= =?UTF-8?q?=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 - 설정 저장 기능 추가 -> /prime/config/config.ini --- app/gui/oven_control/config.cpp | 95 ++++++++++++++++++++++++++++++++++- app/gui/oven_control/config.h | 2 +- app/gui/oven_control/configwindow.cpp | 11 ++++ app/gui/oven_control/servicedata.cpp | 2 - 4 files changed, 106 insertions(+), 4 deletions(-) diff --git a/app/gui/oven_control/config.cpp b/app/gui/oven_control/config.cpp index 9b47427..8b79997 100644 --- a/app/gui/oven_control/config.cpp +++ b/app/gui/oven_control/config.cpp @@ -1,5 +1,7 @@ #include #include +#include +#include #include "config.h" #include "configdatetimedlg.h" #include "configlanguagedlg.h" @@ -19,11 +21,15 @@ using namespace Define; +#define CONFIG_FILE_NAME "/prime/config/config.ini" +#define FAVORITE_FILE_NAME "/prime/config/favorite.ini" + Config* Config::instance = NULL; Config::Config(QObject *parent) : QObject(parent) { memcpy(config_format,config_format_kr,MAX_CONFIG_COUNT*64); + loadConfig(); // m_setFavorite.insert(2); // m_setFavorite.insert(3); // m_setFavorite.insert(1); @@ -49,11 +55,95 @@ Config* Config::getInstance(QObject *parent){ return instance; } -bool Config::saveConfig(){ +void Config::initConfig(){ + memset(configlist.data,0x00,MAX_CONFIG_COUNT * 4); + configlist.items.language.d32=0; + configlist.items.datetime.d32=0; + configlist.items.temptype.d32=0; + configlist.items.backlight.d32=7; + configlist.items.stop_delay.d32=10; + configlist.items.best_dish_weight.d32=0; + configlist.items.party_dish_weight.d32=0; + configlist.items.ilc_rack_number.d32=10; + configlist.items.ilc_rack_sequnece.d32=0x30201; + configlist.items.ilc_cook_wait_time.d32=30; + configlist.items.cooktime_format.d32=0; + configlist.items.time_type.d32=1; + configlist.items.resttime_format.d32=0; + configlist.items.marster_vol.d32=7; + configlist.items.keypad_sound1.d32=0; + configlist.items.keypad_sound2.d32=0; + configlist.items.request_loadexec.d32=6; + configlist.items.programstep_finish.d32=7; + configlist.items.cooktime_finish.d32=8; + configlist.items.stoperror_distinguish.d32=9; + configlist.items.sound_factory_reset.d32=0; + configlist.items.haccp_data_download.d32=0; + configlist.items.info_data_download.d32=0; + configlist.items.service_data_download.d32=0; + configlist.items.program_download.d32=0; + configlist.items.program_upload.d32=0; + configlist.items.program_initialize.d32=0; + configlist.items.ip.d32=0xC0A80002; + configlist.items.gateway.d32=0xC0A80001; + configlist.items.netmask.d32=0xffffff01; + configlist.items.set_download.d32=0; + configlist.items.set_upload.d32=0; + configlist.items.set_half_energy.d32=0; + configlist.items.set_auto_darkness.d32=5; + configlist.items.set_ilc_cook_temphumi_ready.d32=0; + configlist.items.set_load_ready.d32=5; + configlist.items.duty_wash.d32=0; + configlist.items.loading_door_monitoring.d32=0; + configlist.items.cooking_door_monitoring.d32=0; + configlist.items.software_info.d32=0; + configlist.items.hotline_chef.d32=0; + configlist.items.hotline_service.d32=0; + configlist.items.steam_wash.d32=0; + configlist.items.demo_mode.d32=0; + configlist.items.enter_engineer_mode.d32=0; + configlist.items.model.d32 = model_electric_20; + qDebug() << "Init Config lists"; +} + +bool Config::saveConfig(void){ + char buff[sizeof(config_lists)+1]; + qint64 writelen; + QFile file(CONFIG_FILE_NAME);+ + memcpy(buff, configlist.data, sizeof(config_lists)); + buff[sizeof(config_lists)] = 0x9C; + if(file.open(QIODevice::WriteOnly)){ + writelen = file.write(buff,sizeof(config_lists)+1); + file.close(); + if(writelen == (sizeof(config_lists)+1)){ + qDebug() << "config file saved"; + return true; + } + } + qDebug() << "saving config file is fail!"; return false; } bool Config::loadConfig(){ + char buff[sizeof(config_lists)+1]; + qint64 readlen; + QFile file(CONFIG_FILE_NAME); + initConfig(); + 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) ){ + memcpy(configlist.data,buff,sizeof(config_lists)); + qDebug() << "loading config file success"; + } + else { + qDebug()<<"loading config file fail"; + return true; + } + } + else{ + saveConfig(); + } return false; } @@ -163,6 +253,7 @@ QList Config::getConstSortedFavorite(){ } bool Config::loadFavorite(void){ + return false; } @@ -287,3 +378,5 @@ void Config::execConfigWindow(QWidget *parent, Define::ConfigType idx){ + + diff --git a/app/gui/oven_control/config.h b/app/gui/oven_control/config.h index c60486c..8ed0cc7 100644 --- a/app/gui/oven_control/config.h +++ b/app/gui/oven_control/config.h @@ -386,7 +386,7 @@ class Config : public QObject public: static Config *getInstance(QObject *parent=0); //static void init(); - bool initConfig(void); + void initConfig(void); bool loadConfig(void); bool saveConfig(void); Define::config_item getConfigValue(Define::ConfigType idx); diff --git a/app/gui/oven_control/configwindow.cpp b/app/gui/oven_control/configwindow.cpp index 9569a94..04c50d6 100644 --- a/app/gui/oven_control/configwindow.cpp +++ b/app/gui/oven_control/configwindow.cpp @@ -6,6 +6,7 @@ #include "engineermenuwindow.h" #include "config.h" #include "configinfodlg.h" +#include "yesnopopupdlg.h" @@ -53,6 +54,16 @@ void ConfigWindow::on_pushButton_clicked() void ConfigWindow::on_backButton_clicked() { + Config* cfg = Config::getInstance(); + QDialog* dlg = new YesNoPopupDlg(this,tr("현재 설정을 적용하시겠습니까?")); + dlg->setModal(true); + dlg->exec(); + if(dlg->result() == QDialog::Accepted){ + cfg->saveConfig(); + } + else{ + cfg->loadConfig(); + } close(); } diff --git a/app/gui/oven_control/servicedata.cpp b/app/gui/oven_control/servicedata.cpp index 418b383..96a83c9 100644 --- a/app/gui/oven_control/servicedata.cpp +++ b/app/gui/oven_control/servicedata.cpp @@ -109,5 +109,3 @@ bool ServiceData::saveServiceData(void){ } return true; } - - -- 2.1.4