#include #include #include #include #include "config.h" #include "configdatetimedlg.h" #include "configlanguagedlg.h" #include "configtemptypedlg.h" #include "configbacklightdlg.h" #include "configtimeformatdlg.h" #include "configresttimeformatdlg.h" #include "configmastervolumedlg.h" #include "configsoundselelectdlg.h" #include "yesnopopupdlg.h" #include "usbcheckpopupdlg.h" #include "configipdlg.h" #include "configfileprocessdlg.h" #include "confighalfenergydlg.h" #include "config1digitsetdlg.h" #include "configdutywashdlg.h" 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(); loadFavorite(); // m_setFavorite.insert(2); // m_setFavorite.insert(3); // m_setFavorite.insert(1); // QSetIterator i = getConstBeginFavorite(); // while(i.hasNext()){ // temp = i.next(); // qDebug() << temp; // } // while(i.hasPrevious()){ // temp = i.previous(); // qDebug() << temp; // } } Config::~Config(){ } Config* Config::getInstance(QObject *parent){ if(instance ==NULL){ instance = new Config(parent); } return instance; } 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; } Define::config_item Config::getConfigValue(Define::ConfigType idx){ return configlist.values[idx]; } void Config::setConfigValue(Define::ConfigType idx, Define::config_item& itemdata){ configlist.values[idx] = itemdata; } QString Config::getValueString(Define::ConfigType idx){ QString qstrTemp=""; if( (config_data_type[(uint32_t)idx] & 0x80) ==0){ switch(config_data_type[(uint32_t)idx]){ case 0: qstrTemp.sprintf(config_format[(uint32_t)idx], configlist.values[(uint32_t)idx].d32); break; case 1: qstrTemp.sprintf(config_format[(uint32_t)idx], configlist.values[(uint32_t)idx].f32); break; case 2: qstrTemp = tr(config_format[(uint32_t)idx]); case 3: qstrTemp.sprintf(config_format[(uint32_t)idx], configlist.values[(uint32_t)idx].d32+1); break; case 0x7f: qstrTemp = ""; } return qstrTemp; } QDateTime qdt = QDateTime::currentDateTime(); switch(idx){ case config_language: if(configlist.items.language.d32 >=3) configlist.items.language.d32 = 0; qstrTemp = tr(language_menu[configlist.items.language.d32]); break; case config_datetime: qstrTemp = qdt.toString("yyyy.MM.dd hh:mm"); break; case config_temptype: if(configlist.items.temptype.d32 >=2 ) configlist.items.temptype.d32 = 0; qstrTemp = tr(temptype_menu[configlist.items.temptype.d32]); break; case config_best_dish_weight: if(configlist.items.best_dish_weight.d32 >=4) configlist.items.best_dish_weight.d32 = 0; qstrTemp = tr(best_dish_weight_menu[configlist.items.best_dish_weight.d32]); break; case config_party_dish_weight: if(configlist.items.party_dish_weight.d32 >=4) configlist.items.party_dish_weight.d32 = 0; qstrTemp = tr(best_dish_weight_menu[configlist.items.party_dish_weight.d32]); break; case config_time_type: if(configlist.items.time_type.d32 >=2) configlist.items.time_type.d32 = 0; qstrTemp = tr(time_type_menu[configlist.items.time_type.d32]); break; case config_resttime_format: if(configlist.items.resttime_format.d32 >=2) configlist.items.resttime_format.d32 = 0; qstrTemp = tr(rest_time_type_menu[configlist.items.resttime_format.d32]); break; case config_ip: qstrTemp.sprintf("%3d.%3d.%3d.%3d", configlist.items.ip.d8.d8_0,configlist.items.ip.d8.d8_1,configlist.items.ip.d8.d8_2,configlist.items.ip.d8.d8_3); case config_set_half_energy: if(configlist.items.set_half_energy.d32 >=2) configlist.items.set_half_energy.d32 = 0; qstrTemp = tr(on_off_menu[configlist.items.set_half_energy.d32]); break; case config_duty_wash: if(configlist.items.duty_wash.d32 >=2) configlist.items.duty_wash.d32 = 0; qDebug() << "duty wash is "< Config::getConstBeginFavorite(){ QSetIterator i(m_setFavorite); return i; } QList Config::getConstSortedFavorite(){ QList list = m_setFavorite.toList(); qSort(list); return list; } bool Config::loadFavorite(void){ bool rst; uint32_t itemp; QFile file(FAVORITE_FILE_NAME); if(file.open(QIODevice::ReadOnly | QIODevice::Text)){ m_setFavorite.clear(); while(!file.atEnd()){ QByteArray line = file.readLine(); QString strTemp = tr(line); itemp = strTemp.toInt(&rst,10); if(rst && itemp < (uint32_t)config_invalid) { m_setFavorite.insert(itemp); qDebug()<< "load favorite index " << itemp; } } file.close(); qDebug() << "loading Favorite Menu Success"; } else{ qDebug() << "Favorite File Not Found"; } return false; } bool Config::saveFavorite(void){ bool rst; uint32_t itemp; QFile file(FAVORITE_FILE_NAME); if(file.open(QIODevice::WriteOnly | QIODevice::Text)){ QTextStream out(&file); QSetIterator itr(m_setFavorite); while(itr.hasNext()){ itemp = itr.next(); out << itemp << "\n"; qDebug() << "save favorite index" << itemp; } file.close(); qDebug()<<"saving Favorite menu success"; return true; } else{ qDebug() << "saving favorite fail"; } return false; } void Config::insertFavorite(Define::ConfigType idx){ m_setFavorite.insert((uint32_t)idx); } void Config::removeFavorite(Define::ConfigType idx){ m_setFavorite.remove((uint32_t)idx); } QString Config::getDateTimeString(uint32_t sec){ Config* ins = getInstance(); QString strTemp=""; if(ins->configlist.items.temptype.d32==0){ } return strTemp; } QString Config::getTempString(int cel_temp){ Config* ins = getInstance(); QString strTemp=""; if(ins->configlist.items.temptype.d32==0){ } return strTemp; } void Config::execConfigWindow(QWidget *parent, Define::ConfigType idx){ QDialog *dlg; bool bUsbDetect = false; switch(idx){ case config_datetime: dlg = new ConfigDateTimeDlg(parent); break; case config_language: dlg = new ConfigLanguageDlg(parent); break; case config_temptype: dlg = new ConfigTempTypeDlg(parent); break; case config_backlight: dlg = new ConfigBackLightDlg(parent); break; case config_time_type: dlg = new ConfigTimeFormatDlg(parent); break; case config_resttime_format: dlg = new configResttimeFormatDlg(parent); break; case config_marster_vol: dlg = new ConfigMasterVolumeDlg(parent); break; case config_keypad_sound1: case config_keypad_sound2: case config_request_loadexec: case config_programstep_finish: case config_cooktime_finish: case config_stoperror_distinguish: dlg = new ConfigSoundSelelectDlg(parent,idx); break; case config_sound_factory_reset: dlg = new YesNoPopupDlg(parent, tr("모든 음향설정 값을 공장초기화\r하시겠습니까?")); break; case config_ip: dlg=new ConfigIpDlg(parent); break; case config_info_data_download: case config_service_data_download: case config_program_download: case config_set_download: if(!bUsbDetect){ dlg = new UsbCheckPopupDlg(parent); dlg->exec(); } dlg = new ConfigFileProcessDlg(parent,idx); dlg->exec(); return; case config_set_upload: case config_program_upload: if(!bUsbDetect){ dlg = new UsbCheckPopupDlg(parent); dlg->exec(); } dlg = new ConfigFileProcessDlg(parent,idx,false); dlg->exec(); return; case config_set_half_energy: dlg = new ConfigHalfEnergyDlg(parent); break; case config_set_auto_darkness: dlg = new Config1DigitSetDlg(parent,idx); break; case config_duty_wash: dlg = new ConfigDutyWashDlg(parent); break; default: dlg=NULL; } if(dlg == NULL) return; dlg->setWindowModality(Qt::WindowModal); dlg->exec(); if(dlg->result() == QDialog::Accepted){ qDebug()<<"Accepted"; if(idx == config_sound_factory_reset){ //Sound Fatory Reset qDebug() << "Process Sound Config Reset"; } } else{ qDebug() << "rejected"; } }