Commit b52cba705c4d721283ea3225b1bfee17faf05e8a
Exists in
master
and in
2 other branches
Merge branch 'master' of 192.168.10.12:falinux/1611_0007_prime_oven
Showing
18 changed files
Show diff stats
app/gui/oven_control/config.cpp
... | ... | @@ -153,12 +153,12 @@ bool Config::saveConfig(void){ |
153 | 153 | } |
154 | 154 | |
155 | 155 | bool Config::loadConfig(){ |
156 | - char buff[sizeof(config_lists)+1]; | |
156 | + uint8_t buff[sizeof(config_lists)+1]; | |
157 | 157 | qint64 readlen; |
158 | 158 | QFile file(CONFIG_FILE_NAME); |
159 | 159 | initConfig(); |
160 | 160 | if(file.open(QIODevice::ReadOnly)){ |
161 | - readlen = file.read(buff,sizeof(config_lists)+1); | |
161 | + readlen = file.read((char *) buff,sizeof(config_lists)+1); | |
162 | 162 | file.close(); |
163 | 163 | if(readlen != (sizeof(configlist)+1)){ |
164 | 164 | //File size is wrong. apply default config value & save default value; |
... | ... | @@ -166,7 +166,7 @@ bool Config::loadConfig(){ |
166 | 166 | saveConfig(); |
167 | 167 | return false; |
168 | 168 | } |
169 | - if(buff[sizeof(config_lists)] ==0x9c){ | |
169 | + if (buff[sizeof(config_lists)] ==0x9c){ | |
170 | 170 | memcpy(configlist.data,buff,sizeof(config_lists)); |
171 | 171 | qDebug() << "loading config file success"; |
172 | 172 | } | ... | ... |
app/gui/oven_control/configmastervolumedlg.cpp
1 | + | |
1 | 2 | #include "configmastervolumedlg.h" |
2 | 3 | #include "ui_configmastervolumedlg.h" |
3 | 4 | |
... | ... | @@ -19,8 +20,9 @@ ConfigVolumeDlg::ConfigVolumeDlg(QWidget *parent, ConfigType type) : |
19 | 20 | qApp->setActiveWindow(this); |
20 | 21 | this->setFocus(); |
21 | 22 | |
22 | - foreach (QPushButton *button, findChildren<QPushButton *>()) | |
23 | - connect(button, &QPushButton::pressed, SoundPlayer::playClick); | |
23 | + | |
24 | + connect(ui->ctrBtnOk, &QPushButton::pressed, SoundPlayer::playClick); | |
25 | + connect(ui->ctrBtnCancel, &QPushButton::pressed, SoundPlayer::playClick); | |
24 | 26 | |
25 | 27 | |
26 | 28 | if(type == config_keypad_sound2){ | ... | ... |
app/gui/oven_control/configwindow.cpp
... | ... | @@ -283,17 +283,18 @@ void ConfigWindow::reloadUi(void){ |
283 | 283 | |
284 | 284 | Config* cfg = Config::getInstance(); |
285 | 285 | QString strtemp=""; |
286 | + | |
286 | 287 | for(i = 0; i < m_vectorMenuList.count();i++){ |
287 | 288 | pw = pws[i]; |
288 | 289 | ui->scrollAreaMenuLayout->removeWidget(pw); |
289 | - delete pw; | |
290 | + pw->deleteLater(); | |
290 | 291 | } |
291 | 292 | m_vectorMenuList.clear(); |
292 | 293 | |
293 | 294 | for(i=0;i<m_vectorFavorMenuList.count();i++){ |
294 | 295 | fpw = fpws[i]; |
295 | 296 | ui->scrollAreaMenuLayout->removeWidget(fpw); |
296 | - delete fpw; | |
297 | + fpw->deleteLater(); | |
297 | 298 | } |
298 | 299 | m_vectorFavorMenuList.clear(); |
299 | 300 | ... | ... |
app/gui/oven_control/cooldownpopup.cpp
... | ... | @@ -6,10 +6,9 @@ |
6 | 6 | #include "soundplayer.h" |
7 | 7 | #include "stringer.h" |
8 | 8 | |
9 | -CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : | |
9 | +CooldownPopup::CooldownPopup(QWidget *parent, int target) : | |
10 | 10 | QWidget(parent), |
11 | 11 | ui(new Ui::CooldownPopup), |
12 | - oven(oven), | |
13 | 12 | showingCurrentTemp(false), |
14 | 13 | needCookStarting(false) |
15 | 14 | { |
... | ... | @@ -17,6 +16,8 @@ CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : |
17 | 16 | |
18 | 17 | setAttribute(Qt::WA_DeleteOnClose); |
19 | 18 | |
19 | + oven = Oven::getInstance(); | |
20 | + | |
20 | 21 | lastDisplayedFanLevel = -1; |
21 | 22 | lastDisplayedHumidification = !oven->humidification(); |
22 | 23 | |
... | ... | @@ -33,6 +34,7 @@ CooldownPopup::CooldownPopup(QWidget *parent, Oven *oven) : |
33 | 34 | |
34 | 35 | ui->tempSlider->setSubPixmap(":/images/slider/sub_red.png"); |
35 | 36 | ui->tempSlider->setRange(30, 300); |
37 | + ui->tempSlider->setValue(target); | |
36 | 38 | |
37 | 39 | cookingFanLevel = oven->fan(); |
38 | 40 | expectingFanLevel = oven->maxFan(); | ... | ... |
app/gui/oven_control/cooldownpopup.h
app/gui/oven_control/define.h
app/gui/oven_control/errorpopupdlg.cpp
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | #include "soundplayer.h" |
6 | 6 | #include "udphandler.h" |
7 | 7 | |
8 | -ErrorPopupDlg::ErrorPopupDlg(QWidget *parent, const QString &MsgDesc, const QString &MsgTitle, bool sendClrCmd,int erridx) : | |
8 | +ErrorPopupDlg::ErrorPopupDlg(QWidget *parent, const QString &MsgDesc, const QString &MsgTitle, bool sendClrCmd,int erridx, int errsound) : | |
9 | 9 | QDialog(parent), |
10 | 10 | ui(new Ui::ErrorPopupDlg) |
11 | 11 | { |
... | ... | @@ -15,14 +15,36 @@ ErrorPopupDlg::ErrorPopupDlg(QWidget *parent, const QString &MsgDesc, const QStr |
15 | 15 | this->setWindowFlags(Qt::FramelessWindowHint); |
16 | 16 | |
17 | 17 | //ui->centralwidget->setWindowFlags(Qt::FramelessWindowHint); |
18 | + | |
19 | + //if(MsgDesc.length()> ) | |
20 | + | |
21 | + qDebug() << "msgdesc length is " << MsgDesc.length(); | |
22 | + | |
23 | + | |
24 | + | |
25 | + if(MsgDesc.size()>100){ | |
26 | + QFont font = ui->ctrlWarnDescription->font(); | |
27 | + font.setPointSize(font.pointSize() - 1); | |
28 | + ui->ctrlWarnDescription->setFont(font); | |
29 | + } | |
30 | + | |
31 | + | |
32 | + | |
18 | 33 | ui->ctrlWarnDescription->setText(MsgDesc); |
19 | 34 | ui->ctrlWarnTitle->setText(MsgTitle); |
20 | 35 | m_pParent = parent; |
21 | 36 | |
22 | - foreach (QPushButton *button, findChildren<QPushButton *>()) | |
23 | - connect(button, &QPushButton::pressed, SoundPlayer::playClick); | |
37 | +// foreach (QPushButton *button, findChildren<QPushButton *>()) | |
38 | +// connect(button, &QPushButton::pressed, SoundPlayer::playClick); | |
24 | 39 | m_bClrCmd = sendClrCmd; |
25 | 40 | m_nErrIdx = erridx; |
41 | + | |
42 | + if(errsound == 1){ | |
43 | + SoundPlayer::repeatError1(); | |
44 | + } | |
45 | + else if(errsound ==2){ | |
46 | + SoundPlayer::repeatError2(); | |
47 | + } | |
26 | 48 | } |
27 | 49 | |
28 | 50 | ErrorPopupDlg::~ErrorPopupDlg() |
... | ... | @@ -32,6 +54,7 @@ ErrorPopupDlg::~ErrorPopupDlg() |
32 | 54 | |
33 | 55 | void ErrorPopupDlg::on_ctrlOkBtn_clicked() |
34 | 56 | { |
57 | + SoundPlayer::stop(); | |
35 | 58 | emit closedErrorPopup(m_nErrIdx); |
36 | 59 | qApp->setActiveWindow(m_pParent); |
37 | 60 | this->hide(); | ... | ... |
app/gui/oven_control/errorpopupdlg.h
... | ... | @@ -12,7 +12,7 @@ class ErrorPopupDlg : public QDialog |
12 | 12 | Q_OBJECT |
13 | 13 | |
14 | 14 | public: |
15 | - explicit ErrorPopupDlg(QWidget *parent = 0, const QString &MsgDesc=0, const QString &MsgTitle=0, bool sendClrCmd = false, int erridx = -1); | |
15 | + explicit ErrorPopupDlg(QWidget *parent = 0, const QString &MsgDesc=0, const QString &MsgTitle=0, bool sendClrCmd = false, int erridx = -1, int errsound=0); | |
16 | 16 | ~ErrorPopupDlg(); |
17 | 17 | |
18 | 18 | signals: | ... | ... |
app/gui/oven_control/fileprocessdlg.cpp
... | ... | @@ -658,7 +658,7 @@ void FileProcessDlg::configDownload(){ |
658 | 658 | } |
659 | 659 | |
660 | 660 | void FileProcessDlg::configUpload(){ |
661 | - char buff[sizeof(config_lists)+1]; | |
661 | + uint8_t buff[sizeof(config_lists)+1]; | |
662 | 662 | qint64 readlen; |
663 | 663 | QString strUsbPath; |
664 | 664 | QString strSrcPath; |
... | ... | @@ -668,7 +668,7 @@ void FileProcessDlg::configUpload(){ |
668 | 668 | QFile srcFile(strSrcPath); |
669 | 669 | //Check Source File is valid this machine |
670 | 670 | if(srcFile.open(QIODevice::ReadOnly)){ |
671 | - readlen = srcFile.read(buff,sizeof(config_lists)+1); | |
671 | + readlen = srcFile.read((char *) buff,sizeof(config_lists)+1); | |
672 | 672 | srcFile.close(); |
673 | 673 | if(readlen != (sizeof(config_lists)+1)) { |
674 | 674 | qDebug() << "SRC config.ini file size wrong"; |
... | ... | @@ -682,7 +682,7 @@ void FileProcessDlg::configUpload(){ |
682 | 682 | QTimer::singleShot(1000,this,SLOT(close())); |
683 | 683 | return; |
684 | 684 | } |
685 | - cfg->copyConfigArea(buff); | |
685 | + cfg->copyConfigArea((char *) buff); | |
686 | 686 | cfg->saveConfig(); |
687 | 687 | cfg->applyConfig(); |
688 | 688 | } | ... | ... |
app/gui/oven_control/keepwarmpopup.cpp
app/gui/oven_control/manualcookwindow.cpp
... | ... | @@ -988,7 +988,7 @@ void ManualCookWindow::on_cooldownButton_clicked() |
988 | 988 | { |
989 | 989 | startCookingTimer.stop(); |
990 | 990 | |
991 | - CooldownPopup *p = new CooldownPopup(this, oven); | |
991 | + CooldownPopup *p = new CooldownPopup(this, 30); | |
992 | 992 | p->setWindowModality(Qt::WindowModal); |
993 | 993 | p->showFullScreen(); |
994 | 994 | ... | ... |
app/gui/oven_control/ovenstatics.cpp
... | ... | @@ -74,6 +74,7 @@ void OvenStatistics::onDataChanged() |
74 | 74 | time(<ime); |
75 | 75 | |
76 | 76 | if((control.cooking || oven->cooking() || oven->preheating() || oven->cooldown())) cookingstate = 1; |
77 | + else if(state.cleaning_sate != 0 ) cookingstate = 2; | |
77 | 78 | |
78 | 79 | if(oven->cooking() && control.system){ |
79 | 80 | if(state.door_state ==1 && curdoorstate==0){ |
... | ... | @@ -93,11 +94,11 @@ void OvenStatistics::onDataChanged() |
93 | 94 | } |
94 | 95 | curSysErrorState = state.system_error; |
95 | 96 | |
96 | - errstatetemp = state.communication_error; | |
97 | - if(errstatetemp!=0 && errstatetemp != curCommErrorState ){ | |
98 | - processCommError( (errstatetemp & comm_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime ); | |
99 | - } | |
100 | - curCommErrorState = errstatetemp; | |
97 | +// errstatetemp = state.communication_error; | |
98 | +// if(errstatetemp!=0 && errstatetemp != curCommErrorState ){ | |
99 | +// processCommError( (errstatetemp & comm_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime ); | |
100 | +// } | |
101 | +// curCommErrorState = errstatetemp; | |
101 | 102 | |
102 | 103 | errstatetemp = state.sensor_error; |
103 | 104 | if(errstatetemp!=0 && errstatetemp != curSensorErrorState ){ |
... | ... | @@ -105,11 +106,11 @@ void OvenStatistics::onDataChanged() |
105 | 106 | } |
106 | 107 | curSensorErrorState = errstatetemp; |
107 | 108 | |
108 | - errstatetemp = state.controller_error; | |
109 | - if(errstatetemp != 0 && errstatetemp != curControlErrorState){ | |
110 | - processStateError((errstatetemp&state_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime); | |
111 | - } | |
112 | - curControlErrorState = errstatetemp; | |
109 | +// errstatetemp = state.controller_error; | |
110 | +// if(errstatetemp != 0 && errstatetemp != curControlErrorState){ | |
111 | +// processStateError((errstatetemp&state_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime); | |
112 | +// } | |
113 | +// curControlErrorState = errstatetemp; | |
113 | 114 | |
114 | 115 | } |
115 | 116 | |
... | ... | @@ -121,71 +122,72 @@ void OvenStatistics::processSensorError(uint16_t errflag, time_t ltime){ |
121 | 122 | if( control.system==0 && !bCookingState ) state = SYS_OFF_COOK_OFF; |
122 | 123 | else if(control.system != 0 && !bCookingState) state = SYS_ON_COOK_OFF; |
123 | 124 | else if(control.system !=0 && bCookingState) state = SYS_ON_COOK_ON; |
125 | + else if(control.system !=0 && this->state.cleaning_sate !=0 ) state = SYS_ON_WASH; | |
124 | 126 | else state = SYS_ON_COOK_OFF; |
125 | 127 | |
126 | 128 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_1)){ |
127 | 129 | item = &(srvdata->err_log.items.inner_temp_fail); |
128 | - strTitle = tr("내부 온도 이상 발생"); | |
129 | - strMsg = tr("내부 온도 센서에 이상이 발생하였습니다."); | |
130 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_1],strMsg,strTitle, ltime); | |
130 | + strTitle = tr("내부 온도 센서 이상"); | |
131 | + strMsg = tr("조리실 내부 온도센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
132 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_1],strMsg,strTitle, ltime, sensor_err_sound_def[SENSOR_ERR_SENSOR_1]); | |
131 | 133 | } |
132 | 134 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_2)){ |
133 | 135 | item = &(srvdata->err_log.items.qunching_temp_fail); |
134 | - strTitle = tr("퀀칭 온도 이상 발생"); | |
135 | - strMsg = tr("퀀칭 온도에 이상이 발생하였습니다."); | |
136 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_2],strMsg,strTitle, ltime); | |
136 | + strTitle = tr("배수 탱크 온도 센서 이상"); | |
137 | + strMsg = tr("배수 탱크 온도센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
138 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_2],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_2]); | |
137 | 139 | } |
138 | 140 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_3)){ |
139 | 141 | //Reserved allerrornoe 설정 |
140 | 142 | item = &(srvdata->err_log.items.qunching_temp_fail); |
141 | - strTitle = tr("퀀칭 온도 이상 발생"); | |
142 | - strMsg = tr("퀀칭 온도 센서에 이상이 발생하였습니다."); | |
143 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_3],strMsg,strTitle, ltime); | |
143 | + strTitle = tr("퀀칭 온도 센서 발생"); | |
144 | + strMsg = tr("퀀칭 온도센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
145 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_3],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_3]); | |
144 | 146 | } |
145 | 147 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_4)){ |
146 | 148 | item = &(srvdata->err_log.items.wall_temp1_fail); |
147 | - strTitle = tr("벽면 온도 이상 발생"); | |
148 | - strMsg = tr("벽면 온도 센서에 이상이 발생하였습니다."); | |
149 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_4],strMsg,strTitle, ltime); | |
149 | + strTitle = tr("벽면 온도 센서 이상"); | |
150 | + strMsg = tr("조리실 벽면 센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
151 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_4],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_4]); | |
150 | 152 | } |
151 | 153 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_5)){ |
152 | 154 | item = &(srvdata->err_log.items.steam_gen_temp_fail); |
153 | - strTitle = tr("스팀제네레이터 온도 이상 발생"); | |
154 | - strMsg = tr("스팀제네레이터 온도 센서에 이상이 발생하였습니다."); | |
155 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_5],strMsg,strTitle, ltime); | |
155 | + strTitle = tr("스팀발생기 온도 센서 이상"); | |
156 | + strMsg = tr("스팀발생기 내부 센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
157 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_5],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_5]); | |
156 | 158 | } |
157 | 159 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_6)){ |
158 | 160 | item = &(srvdata->err_log.items.meatprove_temp1_fail); |
159 | - strTitle = tr("미트프로브 온도 이상 발생"); | |
160 | - strMsg = tr("미트프로브 온도 센서에 이상이 발생하였습니다."); | |
161 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_6],strMsg,strTitle, ltime); | |
161 | + strTitle = tr("중심온도 센서 이상"); | |
162 | + strMsg = tr("중심온도계 센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
163 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_6],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_6]); | |
162 | 164 | } |
163 | 165 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_7)){ |
164 | 166 | //Reseved |
165 | 167 | item = &(srvdata->err_log.items.meatprove_temp2_fail); |
166 | - strTitle = tr("미트프로브2 온도 이상 발생"); | |
167 | - strMsg = tr("미트프로브2 온도 센서에 이상이 발생하였습니다."); | |
168 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_7],strMsg , strTitle, ltime); | |
168 | + strTitle = tr("중심온도 센서 이상"); | |
169 | + strMsg = tr("중심온도계 센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
170 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_7],strMsg , strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_7]); | |
169 | 171 | } |
170 | 172 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_8)){ |
171 | 173 | //Reserved |
172 | 174 | item = &(srvdata->err_log.items.meatprove_temp3_fail); |
173 | - strMsg = tr("미트프로브3 온도 센서에 이상이 발생하였습니다."); | |
174 | - strTitle = tr("미트프로브3 온도 이상 발생"); | |
175 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_8],strMsg,strTitle, ltime); | |
175 | + strTitle = tr("중심온도 센서 이상"); | |
176 | + strMsg = tr("중심온도계 센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
177 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_8],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_8]); | |
176 | 178 | } |
177 | 179 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_9)){ |
178 | 180 | //Reserved |
179 | 181 | item = &(srvdata->err_log.items.meatprove_temp4_fail); |
180 | - strMsg = tr("미트프로브4 온도 센서에 이상이 발생하였습니다."); | |
181 | - strTitle = tr("미트프로브4 온도 이상 발생"); | |
182 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_9],strMsg,strTitle, ltime); | |
182 | + strTitle = tr("중심온도 센서 이상"); | |
183 | + strMsg = tr("중심온도계 센서 오류가 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
184 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_9],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_9]); | |
183 | 185 | } |
184 | 186 | if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_10)){ |
185 | 187 | item = &(srvdata->err_log.items.pcb_temp_fail); |
186 | - strMsg = tr("PCB 온도 센서에 이상이 발생하였습니다."); | |
187 | - strTitle = tr("PCB 온도 이상 발생"); | |
188 | - processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_10],strMsg,strTitle, ltime); | |
188 | + strTitle = tr("PCB온도 과열 이상"); | |
189 | + strMsg = tr("PCB 과열 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 뒤, 즉시 서비스센터에 연락하여 주십시오."); | |
190 | + processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_10],strMsg,strTitle, ltime,sensor_err_sound_def[SENSOR_ERR_SENSOR_10]); | |
189 | 191 | } |
190 | 192 | } |
191 | 193 | |
... | ... | @@ -197,37 +199,38 @@ void OvenStatistics::processCommError(uint16_t errflag, time_t ltime){ |
197 | 199 | if( control.system==0 && !bCookingState ) state = SYS_OFF_COOK_OFF; |
198 | 200 | else if(control.system != 0 && !bCookingState) state = SYS_ON_COOK_OFF; |
199 | 201 | else if(control.system !=0 && bCookingState) state = SYS_ON_COOK_ON; |
202 | + else if(control.system !=0 && this->state.cleaning_sate !=0 ) state = SYS_ON_WASH; | |
200 | 203 | else state = SYS_ON_COOK_OFF; |
201 | 204 | |
202 | 205 | if(errflag & MAKE_MASK(COMM_ERR_BUNNER1)){ |
203 | 206 | item = &(srvdata->err_log.items.upper_pan_fail); |
204 | - strMsg = tr("상부 송풍기 통신 이상 발생"); | |
205 | - strTitle = tr("상부 송풍기 이상 발생"); | |
206 | - processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER1],strMsg,strTitle, ltime); | |
207 | + strTitle = tr("상부 버너 컨트롤러 통신 이상"); | |
208 | + strMsg = tr("상부 버너 컨트롤러 PCB 통신 불량이 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
209 | + processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER1],strMsg,strTitle, ltime, comm_err_sound_def[COMM_ERR_BUNNER1]); | |
207 | 210 | } |
208 | 211 | if(errflag & MAKE_MASK(COMM_ERR_BUNNER2)){ |
209 | 212 | item = &(srvdata->err_log.items.lower_pan_fail); |
210 | - strMsg = tr("하부 송풍기 통신 이상 발생"); | |
211 | - strTitle = tr("하부 송풍기 이상 발생"); | |
212 | - processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime); | |
213 | + strTitle = tr("하부 버너 컨트롤러 통신 이상"); | |
214 | + strMsg = tr("하 버너 컨트롤러 PCB 통신 불량이 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
215 | + processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime, comm_err_sound_def[COMM_ERR_BUNNER2]); | |
213 | 216 | } |
214 | 217 | if(errflag & MAKE_MASK(COMM_ERR_BUNNER3)){ |
215 | 218 | item = &(srvdata->err_log.items.steam_pan_fail); |
216 | - strMsg = tr("스팀 송풍기 통신 이상 발생"); | |
217 | - strTitle = tr("스팀 송풍기 이상 발생"); | |
218 | - processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER3],strMsg,strTitle, ltime); | |
219 | + strTitle = tr("스팀 버너 컨트롤러 통신 이상"); | |
220 | + strMsg = tr("스팀발생기 버너 컨트롤러 PCB 통신 불량이 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
221 | + processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER3],strMsg,strTitle, ltime, comm_err_sound_def[COMM_ERR_BUNNER3]); | |
219 | 222 | } |
220 | 223 | if(errflag & MAKE_MASK(COMM_ERR_LOWERFAN)){ |
221 | 224 | item = &(srvdata->err_log.items.lower_motor_fail); |
222 | - strMsg = tr("하부 FAN 컨트롤러 통신 이상 발생"); | |
223 | - strTitle = tr("하부 FAN 컨트롤러 이상 발생"); | |
224 | - processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime); | |
225 | + strTitle = tr("하부 FAN 모터 컨트롤러 이상"); | |
226 | + strMsg = tr("하부 Fan 모터 컨트롤러 이상 상황이 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
227 | + processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime, comm_err_sound_def[COMM_ERR_LOWERFAN]); | |
225 | 228 | } |
226 | 229 | if(errflag & MAKE_MASK(COMM_ERR_UPPERFAN)){ |
227 | 230 | item = &(srvdata->err_log.items.upper_motor_fail); |
228 | - strMsg = tr("상부 FAN 컨트롤러 통신 이상 발생"); | |
229 | - strTitle = tr("상부 FAN 컨트롤러 이상 발생"); | |
230 | - processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime); | |
231 | + strTitle = tr("상부 FAN 모터 컨트롤러 이상"); | |
232 | + strMsg = tr("상부 Fan 모터 컨트롤러 이상 상황이 발생하였습니다.\n제품의 전원을 OFF한 후 다시 ON해 주십시오.\n이 후에도 문제가 해결되지 않을 경우, 서비스센터로 연락하여 주십시오."); | |
233 | + processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime, comm_err_sound_def[COMM_ERR_UPPERFAN]); | |
231 | 234 | } |
232 | 235 | } |
233 | 236 | |
... | ... | @@ -239,37 +242,38 @@ void OvenStatistics::processStateError(uint16_t errflag, time_t ltime){ |
239 | 242 | if( control.system==0 && !bCookingState ) state = SYS_OFF_COOK_OFF; |
240 | 243 | else if(control.system != 0 && !bCookingState) state = SYS_ON_COOK_OFF; |
241 | 244 | else if(control.system !=0 && bCookingState) state = SYS_ON_COOK_ON; |
245 | + else if(control.system !=0 && this->state.cleaning_sate !=0 ) state = SYS_ON_WASH; | |
242 | 246 | else state = SYS_ON_COOK_OFF; |
243 | 247 | |
244 | 248 | if(errflag & MAKE_MASK(STATE_ERR_BUNNER1)){ |
245 | 249 | item = &(srvdata->err_log.items.upper_pan_fail); |
246 | 250 | strMsg = tr("버너컨트롤러 1 이상 발생하였습니다."); |
247 | 251 | strTitle = tr("버너컨트롤러 1 이상 발생"); |
248 | - processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER1],strMsg,strTitle, ltime); | |
252 | + processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER1],strMsg,strTitle, ltime, state_err_sound_def[STATE_ERR_BUNNER1]); | |
249 | 253 | } |
250 | 254 | if(errflag & MAKE_MASK(STATE_ERR_BUNNER2)){ |
251 | 255 | item = &(srvdata->err_log.items.lower_pan_fail); |
252 | 256 | strMsg = tr("버너컨트롤러 2 이상 발생하였습니다."); |
253 | 257 | strTitle = tr("버너컨트롤러 2 이상 발생"); |
254 | - processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER2],strMsg,strTitle, ltime); | |
258 | + processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER2],strMsg,strTitle, ltime, state_err_sound_def[STATE_ERR_BUNNER2]); | |
255 | 259 | } |
256 | 260 | if(errflag & MAKE_MASK(STATE_ERR_BUNNER3)){ |
257 | 261 | item = &(srvdata->err_log.items.steam_pan_fail); |
258 | 262 | strMsg = tr("버너컨트롤러 3 이상 발생하였습니다."); |
259 | 263 | strTitle = tr("버너컨트롤러 3 이상 발생"); |
260 | - processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER3],strMsg,strTitle, ltime); | |
264 | + processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER3],strMsg,strTitle, ltime, state_err_sound_def[STATE_ERR_BUNNER3]); | |
261 | 265 | } |
262 | 266 | if(errflag & MAKE_MASK(STATE_ERR_LOWERFAN)){ |
263 | 267 | item = &(srvdata->err_log.items.lower_motor_fail); |
264 | 268 | strMsg = tr("하부 FAN 컨트롤러 이상 발생하였습니다."); |
265 | 269 | strTitle = tr("하부 FAN 컨트롤러 이상 발생"); |
266 | - processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER2],strMsg,strTitle, ltime); | |
270 | + processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER2],strMsg,strTitle, ltime, state_err_sound_def[STATE_ERR_LOWERFAN]); | |
267 | 271 | } |
268 | 272 | if(errflag & MAKE_MASK(STATE_ERR_UPPERFAN)){ |
269 | 273 | item = &(srvdata->err_log.items.upper_motor_fail); |
270 | 274 | strMsg = tr("상부 FAN 컨트롤러 이상 발생하였습니다."); |
271 | 275 | strTitle = tr("상부 FAN 컨트롤러 이상 발생"); |
272 | - processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER2],strMsg,strTitle, ltime); | |
276 | + processErrorItems(item,state_err_type_def[state][STATE_ERR_BUNNER2],strMsg,strTitle, ltime, state_err_sound_def[STATE_ERR_UPPERFAN]); | |
273 | 277 | } |
274 | 278 | } |
275 | 279 | |
... | ... | @@ -281,73 +285,74 @@ void OvenStatistics::processSystemError(uint16_t errflag,time_t ltime){ |
281 | 285 | if( control.system==0 && !bCookingState ) state = SYS_OFF_COOK_OFF; |
282 | 286 | else if(control.system != 0 && !bCookingState) state = SYS_ON_COOK_OFF; |
283 | 287 | else if(control.system !=0 && bCookingState) state = SYS_ON_COOK_ON; |
288 | + else if(control.system !=0 && this->state.cleaning_sate !=0 ) state = SYS_ON_WASH; | |
284 | 289 | else state = SYS_ON_COOK_OFF; |
285 | 290 | |
286 | 291 | if( errflag & MAKE_MASK(SYS_ERR_FIRE_TRIGGER1)){ |
287 | 292 | //버너 컨트롤러 1 착화 이상 |
288 | 293 | item = &(srvdata->err_log.items.upper_fire_fail); |
289 | - strMsg = tr("상부 버너 착화가 되지 않습니다."); | |
290 | - strTitle = tr("상부 버너 착화 이상 발생"); | |
291 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER1],strMsg,strTitle,ltime); | |
294 | + strTitle = tr("상부 버너 착화 이상"); | |
295 | + strMsg = tr("상부 버너 착화 이상 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 후 가스 밸브가 잠겨있는지 확인 해 주십시오.\n가스 밸브가 열려 있는데도 에러 발생 시, 즉시 서비스센터에 연락하여 주십시오."); | |
296 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER1],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_FIRE_TRIGGER1]); | |
292 | 297 | } |
293 | 298 | if(errflag & MAKE_MASK(SYS_ERR_FIRE_TRIGGER2)){ |
294 | 299 | //버너 컨트롤러 2 착화 이상 |
295 | 300 | item = &(srvdata->err_log.items.lower_fire_fail); |
296 | - strMsg = tr("하부 버너 착화가 되지 않습니다."); | |
297 | - strTitle = tr("하부 버너 착화 이상 발생"); | |
298 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER2],strMsg,strTitle,ltime); | |
301 | + strTitle = tr("하부 버너 착화 이상"); | |
302 | + strMsg = tr("하부 버너 착화 이상 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 후 가스 밸브가 잠겨있는지 확인 해 주십시오.\n가스 밸브가 열려 있는데도 에러 발생 시, 즉시 서비스센터에 연락하여 주십시오."); | |
303 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER2],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_FIRE_TRIGGER1]); | |
299 | 304 | } |
300 | 305 | if(errflag & MAKE_MASK(SYS_ERR_FIRE_TRIGGER3)){ |
301 | 306 | item = &(srvdata->err_log.items.steam_fire_fail); |
302 | - strMsg = tr("스팀 버너 착화가 되지 않습니다."); | |
303 | - strTitle = tr("스팀 버너 착화 이상 발생"); | |
304 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER3],strMsg,strTitle,ltime); | |
307 | + strTitle = tr("스팀 버너 착화 이상"); | |
308 | + strMsg = tr("스팀발생기 버너 착화 이상 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 후 가스 밸브가 잠겨있는지 확인 해 주십시오.\n가스 밸브가 열려 있는데도 에러 발생 시, 즉시 서비스센터에 연락하여 주십시오."); | |
309 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER3],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_FIRE_TRIGGER3]); | |
305 | 310 | } |
306 | 311 | if(errflag & MAKE_MASK(SYS_ERR_OVNE_TEMP_ALARM)){ |
307 | 312 | item = &(srvdata->err_log.items.inner_temp_high_alarm); |
308 | - strMsg = tr("내부 온도가 과열되었습니다."); | |
309 | - strTitle = tr("내부 온도 과열 발생"); | |
310 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_OVNE_TEMP_ALARM],strMsg,strTitle,ltime); | |
313 | + strTitle = tr("내부 온도 과열 이상"); | |
314 | + strMsg = tr("조리실 내부 과열 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 뒤, 즉시 서비스센터에 연락하여 주십시오."); | |
315 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_OVNE_TEMP_ALARM],strMsg,strTitle,ltime,sys_err_sound_def[SYS_ERR_OVNE_TEMP_ALARM]); | |
311 | 316 | } |
312 | 317 | if(errflag & MAKE_MASK(SYS_ERR_QUN_TEMP_ALARM)){ |
313 | 318 | //퀀칭 온도 센서 과열 |
314 | 319 | item = &(srvdata->err_log.items.qunching_temp_high_alarm); |
315 | - strTitle = tr("퀀칭 온도 센서 이상 발생"); | |
316 | - strMsg = tr("퀀칭 온도 센서가 과열되었습니다"); | |
317 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_QUN_TEMP_ALARM],strMsg,strTitle,ltime); | |
320 | + strTitle = tr("배수 탱크 온도 과열 이상"); | |
321 | + strMsg = tr("배수 탱크 과열 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 뒤, 즉시 서비스센터에 연락하여 주십시오."); | |
322 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_QUN_TEMP_ALARM],strMsg,strTitle,ltime,sys_err_sound_def[SYS_ERR_QUN_TEMP_ALARM]); | |
318 | 323 | } |
319 | 324 | if(errflag & MAKE_MASK(SYS_ERR_CENTER_TEMP_ALARM)){ |
320 | 325 | //중심 온도 과열 |
321 | 326 | item = &(srvdata->err_log.items.meatprove_temp1_high_alarm); |
322 | - strTitle = tr("미트프로브 온도 센서 이상 발생."); | |
323 | - strMsg = tr("미트프로브 온도 센서 과열되었습니다."); | |
324 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_CENTER_TEMP_ALARM],strMsg,strTitle,ltime); | |
327 | + strTitle = tr("중심 온도 과열 이상"); | |
328 | + strMsg = tr("중심온도계 과열 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 뒤, 즉시 서비스센터에 연락하여 주십시오."); | |
329 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_CENTER_TEMP_ALARM],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_CENTER_TEMP_ALARM]); | |
325 | 330 | } |
326 | 331 | if(errflag & MAKE_MASK(SYS_ERR_WALL_TEMP_ALARM)){ |
327 | 332 | item = &(srvdata->err_log.items.wall_temp1_high_alarm); |
328 | - strTitle = tr("벽면 온도 센서 이상 발생."); | |
329 | - strMsg = tr("벽면 온도 센서가 과열 되었습니다."); | |
330 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_WALL_TEMP_ALARM],strMsg,strTitle,ltime); | |
333 | + strTitle = tr("벽면 온도 과열 이상"); | |
334 | + strMsg = tr("조리실 벽면 과열 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 뒤, 즉시 서비스센터에 연락하여 주십시오."); | |
335 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_WALL_TEMP_ALARM],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_WALL_TEMP_ALARM]); | |
331 | 336 | } |
332 | 337 | if(errflag & MAKE_MASK(SYS_ERR_STAM_TEMP_ALARM)){ |
333 | 338 | item = &(srvdata->err_log.items.steam_gen_temp_high_alram); |
334 | - strTitle = tr("스팀제네레이터 온도 이상 발생."); | |
335 | - strMsg = tr("스팀제네레이터 온도 센서가 과열 되었습니다."); | |
336 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_STAM_TEMP_ALARM],strMsg,strTitle,ltime); | |
339 | + strTitle = tr("스팀 온도 과열 이상"); | |
340 | + strMsg = tr("스팀통 내부 과열 안전장치가 작동하였습니다.\n제품의 전원을 OFF한 뒤, 즉시 서비스센터에 연락하여 주십시오."); | |
341 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_STAM_TEMP_ALARM],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_STAM_TEMP_ALARM]); | |
337 | 342 | } |
338 | 343 | if(errflag & MAKE_MASK(SYS_ERR_WATER_SPLY_FAIL)){ |
339 | 344 | //급수 이상 -> 유량 센서 이상 |
340 | 345 | item = &(srvdata->err_log.items.water_level_sensor_fail); |
341 | - strTitle = tr("급수 이상 발생"); | |
342 | - strMsg = tr("급수가 되지 않습니다."); | |
343 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_WATER_SPLY_FAIL],strMsg,strTitle,ltime); | |
346 | + strTitle = tr("급수 이상"); | |
347 | + strMsg = tr("제품 급수이상 안전장치가 작동하였습니다.\n제품에 들어가는 물 공급을 확인하십시오.\n물 공급이 정상적으로 들어갈 시 즉시 서비스센터에 연락하여 주십시오.\n단수 유무는 샤워건을 사용하십시오."); | |
348 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_WATER_SPLY_FAIL],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_WATER_SPLY_FAIL]); | |
344 | 349 | } |
345 | 350 | if(errflag & MAKE_MASK(SYS_ERR_WATER_LEVEL_FAIL)){ |
346 | 351 | //급수 이상 -> 수위 센서 이상 |
347 | 352 | item = &(srvdata->err_log.items.water_level_sensor_fail); |
348 | - strTitle = tr("급수 이상 발생"); | |
349 | - strMsg = tr("급수가 되지 않습니다."); | |
350 | - processErrorItems(item, sys_err_type_def[state][SYS_ERR_WATER_LEVEL_FAIL],strMsg,strTitle,ltime); | |
353 | + strTitle = tr("수위 센서 이상"); | |
354 | + strMsg = tr("스팀통 수위 감지 안전장치가 작동하였습니다.\n제품에 들어가는 물 공급을 확인하십시오.\n물 공급이 정상적으로 들어갈 시 즉시 서비스센터에 연락하여 주십시오.\n단수 유무는 샤워건을 사용하십시오."); | |
355 | + processErrorItems(item, sys_err_type_def[state][SYS_ERR_WATER_LEVEL_FAIL],strMsg,strTitle,ltime, sys_err_sound_def[SYS_ERR_WATER_LEVEL_FAIL]); | |
351 | 356 | } |
352 | 357 | } |
353 | 358 | |
... | ... | @@ -367,6 +372,15 @@ void OvenStatistics::oneSecTimerFired(void){ |
367 | 372 | static int nOneSecCnt=1; |
368 | 373 | time_t ltime; |
369 | 374 | |
375 | + static int nStateErrValStableCnt = 0; | |
376 | + static int nCommErrValStableCnt = 0; | |
377 | + static uint16_t nCommErrVal = 0; | |
378 | + static uint16_t nStateErrVal = 0; | |
379 | + uint16_t errstatetemp=0; | |
380 | + int cookingstate=0; | |
381 | + if((control.cooking || oven->cooking() || oven->preheating() || oven->cooldown())) cookingstate =1; | |
382 | + else if(state.cleaning_sate !=0) cookingstate = 2; | |
383 | + | |
370 | 384 | ltime = time(NULL); |
371 | 385 | |
372 | 386 | nOneSecCnt++; |
... | ... | @@ -374,11 +388,55 @@ void OvenStatistics::oneSecTimerFired(void){ |
374 | 388 | srvdata->saveServiceData(); |
375 | 389 | } |
376 | 390 | |
391 | + | |
377 | 392 | if(bDataRefreshed) bDataRefreshed= false; |
378 | 393 | else{ |
379 | 394 | udp->fillControl(control); |
380 | 395 | udp->fillData(state); |
381 | 396 | } |
397 | + | |
398 | + if(nCommErrVal != state.communication_error){ | |
399 | + nCommErrVal = state.communication_error; | |
400 | + if(nCommErrVal ==0) { | |
401 | + curCommErrorState = nCommErrVal; | |
402 | + nCommErrValStableCnt = DELAY_ERROR_TIME; | |
403 | + } | |
404 | + else { | |
405 | + nCommErrValStableCnt=0; | |
406 | + } | |
407 | + } | |
408 | + else{ | |
409 | + if(nCommErrValStableCnt >=DELAY_ERROR_TIME){ | |
410 | + errstatetemp = state.communication_error; | |
411 | + if(errstatetemp!=0 && errstatetemp != curCommErrorState ){ | |
412 | + processCommError( (errstatetemp & comm_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime ); | |
413 | + } | |
414 | + curCommErrorState = errstatetemp; | |
415 | + } | |
416 | + else nCommErrValStableCnt++; | |
417 | + } | |
418 | + | |
419 | + if(nStateErrVal != state.controller_error){ | |
420 | + nStateErrVal = state.controller_error; | |
421 | + if(nStateErrVal == 0 ) { | |
422 | + curControlErrorState = nStateErrVal; | |
423 | + nStateErrValStableCnt=DELAY_ERROR_TIME; | |
424 | + } | |
425 | + else{ | |
426 | + nStateErrValStableCnt=0; | |
427 | + } | |
428 | + } | |
429 | + else{ | |
430 | + if(nStateErrValStableCnt>=DELAY_ERROR_TIME){ | |
431 | + errstatetemp = state.controller_error; | |
432 | + if(errstatetemp != 0 && errstatetemp != curControlErrorState){ | |
433 | + processStateError((errstatetemp&state_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime); | |
434 | + } | |
435 | + curControlErrorState = errstatetemp; | |
436 | + } | |
437 | + else nStateErrValStableCnt++; | |
438 | + } | |
439 | + | |
382 | 440 | //가열부 시간 측정 |
383 | 441 | if( (state.onoff_state1 & LOAD_STATE1_STEAM_BUNNER) !=0){ |
384 | 442 | srvdata->use_log.items.steam_heat +=1; |
... | ... | @@ -552,7 +610,7 @@ void OvenStatistics::oneSecTimerFired(void){ |
552 | 610 | |
553 | 611 | } |
554 | 612 | |
555 | -void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc, const QString &MsgTitle, time_t ltime){ | |
613 | +void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc, const QString &MsgTitle, time_t ltime, error_sound_type sndtype){ | |
556 | 614 | QWidget* pParent; |
557 | 615 | uint32_t erridx = (uint32_t) (item - &(srvdata->err_log.values[0])); |
558 | 616 | |
... | ... | @@ -594,7 +652,7 @@ void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype, |
594 | 652 | case error_type_popclrstopcmd: |
595 | 653 | { |
596 | 654 | if(m_mapPopupList.find(erridx) == m_mapPopupList.end()){ |
597 | - ErrorPopupDlg *dlg = new ErrorPopupDlg(pParent,MsgDesc,MsgTitle , (errtype > error_type_clrsplit), erridx); | |
655 | + ErrorPopupDlg *dlg = new ErrorPopupDlg(pParent,MsgDesc,MsgTitle , (errtype > error_type_clrsplit), erridx, sndtype); | |
598 | 656 | connect(dlg,SIGNAL(closedErrorPopup(int)), this, SLOT(onErrorPopupClosed(int))); |
599 | 657 | m_mapPopupList.insert(erridx,dlg); |
600 | 658 | qApp->setActiveWindow(dlg); |
... | ... | @@ -610,7 +668,7 @@ void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype, |
610 | 668 | //EngineerMenuWindow *w = new EngineerMenuWindow(0); |
611 | 669 | //w->showFullScreen(); |
612 | 670 | if(m_mapPopupList.find(erridx)==m_mapPopupList.end()){ |
613 | - ErrorPopupDlg *dlg = new ErrorPopupDlg(pParent,MsgDesc,MsgTitle, false,erridx); | |
671 | + ErrorPopupDlg *dlg = new ErrorPopupDlg(pParent,MsgDesc,MsgTitle, false,erridx,sndtype); | |
614 | 672 | connect(dlg,SIGNAL(closedErrorPopup(int)),this,SLOT(onErrorPopupClosed(int))); |
615 | 673 | m_mapPopupList.insert(erridx,dlg); |
616 | 674 | dlg->showFullScreen(); | ... | ... |
app/gui/oven_control/ovenstatics.h
... | ... | @@ -12,8 +12,8 @@ |
12 | 12 | |
13 | 13 | |
14 | 14 | #define MAX_MODEL_COUNT 12 |
15 | -#define SYS_STATE_MAX 4 | |
16 | - | |
15 | +#define SYS_STATE_MAX 5 | |
16 | +#define DELAY_ERROR_TIME 10 //Secs | |
17 | 17 | |
18 | 18 | #define SYS_ERR_MAX 10 |
19 | 19 | |
... | ... | @@ -93,7 +93,8 @@ enum sys_state_type{ |
93 | 93 | SYS_OFF_COOK_OFF=0, |
94 | 94 | SYS_ON_COOK_OFF=1, |
95 | 95 | SYS_ON_COOK_ON=2, |
96 | - SYS_OFF_COOK_ON=3 //unnormal state | |
96 | + SYS_ON_WASH=3, | |
97 | + SYS_OFF_COOK_ON=4 //unnormal state | |
97 | 98 | }; |
98 | 99 | |
99 | 100 | enum sys_error_id{ |
... | ... | @@ -155,6 +156,12 @@ enum error_exe_type{ |
155 | 156 | error_type_engclrstopcmd, |
156 | 157 | }; |
157 | 158 | |
159 | +enum error_sound_type{ | |
160 | + error_sound_none=0, | |
161 | + error_sound1, | |
162 | + error_sound2 | |
163 | +}; | |
164 | + | |
158 | 165 | |
159 | 166 | enum wash_mode_type{ |
160 | 167 | wash_mode_nocleanser=1, |
... | ... | @@ -211,35 +218,48 @@ public: |
211 | 218 | |
212 | 219 | private: |
213 | 220 | |
214 | - const uint32_t sys_err_mask[2][MAX_MODEL_COUNT] = { | |
215 | - {0x00f8, //ele_10 | |
216 | - 0x00f8, //ele_20 | |
217 | - 0x00f8, //ele_24 | |
218 | - 0x00f8, //ele_40 | |
219 | - 0x00f8, //lpg_10 | |
220 | - 0x00f8, //lpg_20 | |
221 | - 0x00f8, //lpg_24 | |
222 | - 0x00f8, //lpg_40 | |
223 | - 0x00f8, //lng_10 | |
224 | - 0x00f8, //lng_20 | |
225 | - 0x00f8, //lng_24 | |
226 | - 0x00f8 //lng_40 | |
227 | - },// end of noncooking state | |
228 | - {0x03fd, //ele_10 | |
229 | - 0x03ff, //ele_20 | |
230 | - 0x03fd, //ele_24 | |
231 | - 0x03ff, //ele_40 | |
232 | - 0x03fd, //lpg_10 | |
233 | - 0x03ff, //lpg_20 | |
234 | - 0x03fd, //lpg_24 | |
235 | - 0x03ff, //lpg_40 | |
236 | - 0x03fd, //lng_10 | |
237 | - 0x03ff, //lng_20 | |
238 | - 0x03fd, //lng_24 | |
239 | - 0x03ff //lng_40 | |
240 | - }, | |
221 | + const uint32_t sys_err_mask[3][MAX_MODEL_COUNT] = { | |
222 | + {0x00b8, //ele_10 | |
223 | + 0x00b8, //ele_20 | |
224 | + 0x00b8, //ele_24 | |
225 | + 0x00b8, //ele_40 | |
226 | + 0x00b8, //lpg_10 | |
227 | + 0x00b8, //lpg_20 | |
228 | + 0x00b8, //lpg_24 | |
229 | + 0x00b8, //lpg_40 | |
230 | + 0x00b8, //lng_10 | |
231 | + 0x00b8, //lng_20 | |
232 | + 0x00b8, //lng_24 | |
233 | + 0x00b8 //lng_40 | |
234 | + },// noncooking state | |
235 | + {0x03bd, //ele_10 | |
236 | + 0x03bf, //ele_20 | |
237 | + 0x03bd, //ele_24 | |
238 | + 0x03bf, //ele_40 | |
239 | + 0x03bd, //lpg_10 | |
240 | + 0x03bf, //lpg_20 | |
241 | + 0x03bd, //lpg_24 | |
242 | + 0x03bf, //lpg_40 | |
243 | + 0x03bd, //lng_10 | |
244 | + 0x03bf, //lng_20 | |
245 | + 0x03bd, //lng_24 | |
246 | + 0x03bf //lng_40 | |
247 | + },//cooking state | |
248 | + {0x03bd, //ele_10 | |
249 | + 0x03bf, //ele_20 | |
250 | + 0x03bd, //ele_24 | |
251 | + 0x03bf, //ele_40 | |
252 | + 0x03bd, //lpg_10 | |
253 | + 0x03bf, //lpg_20 | |
254 | + 0x03bd, //lpg_24 | |
255 | + 0x03bf, //lpg_40 | |
256 | + 0x03bd, //lng_10 | |
257 | + 0x03bf, //lng_20 | |
258 | + 0x03bd, //lng_24 | |
259 | + 0x03bf //lng_40 | |
260 | + } //washing state | |
241 | 261 | }; |
242 | - const uint32_t comm_err_mask[2][MAX_MODEL_COUNT] = { | |
262 | + const uint32_t comm_err_mask[3][MAX_MODEL_COUNT] = { | |
243 | 263 | {0x000d, //ele_10 |
244 | 264 | 0x001f, //ele_20 |
245 | 265 | 0x000d, //ele_24 |
... | ... | @@ -252,7 +272,20 @@ private: |
252 | 272 | 0x001f, //lng_20 |
253 | 273 | 0x000d, //lng_24 |
254 | 274 | 0x001f //lng_40 |
255 | - }, // end of noncooking state | |
275 | + }, // noncooking state | |
276 | + {0x000d, //ele_10 | |
277 | + 0x001f, //ele_20 | |
278 | + 0x000d, //ele_24 | |
279 | + 0x001f, //ele_40 | |
280 | + 0x000d, //lpg_10 | |
281 | + 0x001f, //lpg_20 | |
282 | + 0x000d, //lpg_24 | |
283 | + 0x001f, //lpg_40 | |
284 | + 0x000d, //lng_10 | |
285 | + 0x001f, //lng_20 | |
286 | + 0x000d, //lng_24 | |
287 | + 0x001f //lng_40 | |
288 | + }, //cooking state | |
256 | 289 | {0x000d, //ele_10 |
257 | 290 | 0x001f, //ele_20 |
258 | 291 | 0x000d, //ele_24 |
... | ... | @@ -265,7 +298,8 @@ private: |
265 | 298 | 0x001f, //lng_20 |
266 | 299 | 0x000d, //lng_24 |
267 | 300 | 0x001f //lng_40 |
268 | - }}; | |
301 | + } // washing state | |
302 | + }; | |
269 | 303 | // const uint32_t sensor_err_mask[MAX_MODEL_COUNT] = {0x0213, //ele10 |
270 | 304 | // 0x0213, //ele 20 |
271 | 305 | // 0x0213, //ele 24 |
... | ... | @@ -280,60 +314,89 @@ private: |
280 | 314 | // 0x0213 //lng40 |
281 | 315 | // }; |
282 | 316 | |
283 | - const uint32_t sensor_err_mask[2][MAX_MODEL_COUNT] = { | |
284 | - {0x0213, //ele10 | |
285 | - 0x0213, //ele 20 | |
286 | - 0x0213, //ele 24 | |
287 | - 0x0213, //ele 40 | |
288 | - 0x0213, //lpg 10 | |
289 | - 0x0213, //lpg 20 | |
290 | - 0x0213, //lpg 24 | |
291 | - 0x0213, //lpg 40 | |
292 | - 0x0213, //lng 10 | |
293 | - 0x0213, //lng 20 | |
294 | - 0x0213, //lng 24 | |
295 | - 0x0213 //lng40 | |
317 | + const uint32_t sensor_err_mask[3][MAX_MODEL_COUNT] = { | |
318 | + {0x03f3, //ele10 | |
319 | + 0x03f3, //ele 20 | |
320 | + 0x03f3, //ele 24 | |
321 | + 0x03f3, //ele 40 | |
322 | + 0x03f3, //lpg 10 | |
323 | + 0x03f3, //lpg 20 | |
324 | + 0x03f3, //lpg 24 | |
325 | + 0x03f3, //lpg 40 | |
326 | + 0x03f3, //lng 10 | |
327 | + 0x03f3, //lng 20 | |
328 | + 0x03f3, //lng 24 | |
329 | + 0x03f3 //lng40 | |
296 | 330 | }, // end of noncooking state |
297 | - {0x0213, //ele10 | |
298 | - 0x0213, //ele 20 | |
299 | - 0x0213, //ele 24 | |
300 | - 0x0213, //ele 40 | |
301 | - 0x0213, //lpg 10 | |
302 | - 0x0213, //lpg 20 | |
303 | - 0x0213, //lpg 24 | |
304 | - 0x0213, //lpg 40 | |
305 | - 0x0213, //lng 10 | |
306 | - 0x0213, //lng 20 | |
307 | - 0x0213, //lng 24 | |
308 | - 0x0213 //lng40 | |
309 | - }}; | |
310 | - const uint32_t state_err_mask[2][MAX_MODEL_COUNT] = { | |
311 | - {0x0008, //ele 10 | |
312 | - 0x0018, //ele 20 | |
313 | - 0x0008, //ele 24 | |
314 | - 0x0018, //ele 40 | |
315 | - 0x0008, //lpg 10 | |
316 | - 0x0018, //lpg 20 | |
317 | - 0x0008, //lpg 24 | |
318 | - 0x0018, //lpg 40 | |
319 | - 0x0008, //lng 10 | |
320 | - 0x0018, //lng 20 | |
321 | - 0x0008, //lng 24 | |
322 | - 0x0018 //lng 40 | |
331 | + {0x03f3, //ele10 | |
332 | + 0x03f3, //ele 20 | |
333 | + 0x03f3, //ele 24 | |
334 | + 0x03f3, //ele 40 | |
335 | + 0x03f3, //lpg 10 | |
336 | + 0x03f3, //lpg 20 | |
337 | + 0x03f3, //lpg 24 | |
338 | + 0x03f3, //lpg 40 | |
339 | + 0x03f3, //lng 10 | |
340 | + 0x03f3, //lng 20 | |
341 | + 0x03f3, //lng 24 | |
342 | + 0x03f3 //lng40 | |
343 | + }, //cooking state | |
344 | + {0x03f3, //ele10 | |
345 | + 0x03f3, //ele 20 | |
346 | + 0x03f3, //ele 24 | |
347 | + 0x03f3, //ele 40 | |
348 | + 0x03f3, //lpg 10 | |
349 | + 0x03f3, //lpg 20 | |
350 | + 0x03f3, //lpg 24 | |
351 | + 0x03f3, //lpg 40 | |
352 | + 0x03f3, //lng 10 | |
353 | + 0x03f3, //lng 20 | |
354 | + 0x03f3, //lng 24 | |
355 | + 0x03f3 //lng40 | |
356 | + } // washing state | |
357 | + }; | |
358 | + | |
359 | + const uint32_t state_err_mask[3][MAX_MODEL_COUNT] = { | |
360 | + {0x0000, //ele 10 | |
361 | + 0x0000, //ele 20 | |
362 | + 0x0000, //ele 24 | |
363 | + 0x0000, //ele 40 | |
364 | + 0x0000, //lpg 10 | |
365 | + 0x0000, //lpg 20 | |
366 | + 0x0000, //lpg 24 | |
367 | + 0x0000, //lpg 40 | |
368 | + 0x0000, //lng 10 | |
369 | + 0x0000, //lng 20 | |
370 | + 0x0000, //lng 24 | |
371 | + 0x0000 //lng 40 | |
323 | 372 | }, //end of noncooking state |
324 | - {0x0008, //ele 10 | |
325 | - 0x0018, //ele 20 | |
326 | - 0x0008, //ele 24 | |
327 | - 0x0018, //ele 40 | |
328 | - 0x0008, //lpg 10 | |
329 | - 0x0018, //lpg 20 | |
330 | - 0x0008, //lpg 24 | |
331 | - 0x0018, //lpg 40 | |
332 | - 0x0008, //lng 10 | |
333 | - 0x0018, //lng 20 | |
334 | - 0x0008, //lng 24 | |
335 | - 0x0018 //lng 40 | |
336 | - }}; | |
373 | + {0x0000, //ele 10 | |
374 | + 0x0000, //ele 20 | |
375 | + 0x0000, //ele 24 | |
376 | + 0x0000, //ele 40 | |
377 | + 0x0000, //lpg 10 | |
378 | + 0x0000, //lpg 20 | |
379 | + 0x0000, //lpg 24 | |
380 | + 0x0000, //lpg 40 | |
381 | + 0x0000, //lng 10 | |
382 | + 0x0000, //lng 20 | |
383 | + 0x0000, //lng 24 | |
384 | + 0x0000 //lng 40 | |
385 | + }, | |
386 | + {0x0000, //ele 10 | |
387 | + 0x0000, //ele 20 | |
388 | + 0x0000, //ele 24 | |
389 | + 0x0000, //ele 40 | |
390 | + 0x0000, //lpg 10 | |
391 | + 0x0000, //lpg 20 | |
392 | + 0x0000, //lpg 24 | |
393 | + 0x0000, //lpg 40 | |
394 | + 0x0000, //lng 10 | |
395 | + 0x0000, //lng 20 | |
396 | + 0x0000, //lng 24 | |
397 | + 0x0000 //lng 40 | |
398 | + }//washing state | |
399 | + }; | |
337 | 400 | |
338 | 401 | |
339 | 402 | const error_exe_type sys_err_type_def[SYS_STATE_MAX][SYS_ERR_MAX]={ //30047 |
... | ... | @@ -344,6 +407,8 @@ private: |
344 | 407 | {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd, |
345 | 408 | error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, // SYS_ON_COOK_ON state |
346 | 409 | {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr, |
410 | + error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_WASH state | |
411 | + {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr, | |
347 | 412 | error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_OFF_COOK_ON state |
348 | 413 | }; |
349 | 414 | |
... | ... | @@ -351,6 +416,7 @@ private: |
351 | 416 | {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_OFF |
352 | 417 | {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_OFF |
353 | 418 | {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_ON |
419 | + {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_ON_WASH | |
354 | 420 | {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_ON |
355 | 421 | }; |
356 | 422 | |
... | ... | @@ -358,20 +424,38 @@ private: |
358 | 424 | {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_OFF |
359 | 425 | {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_OFF |
360 | 426 | {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_ON |
427 | + {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_WASH | |
361 | 428 | {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_ON |
362 | 429 | }; |
363 | 430 | |
364 | 431 | const error_exe_type sensor_err_type_def[SYS_STATE_MAX][SENSOR_ERR_MAX]={ //30049 |
365 | - {error_type_engnonclr,error_type_popnonclr,error_type_allnone,error_type_popnonclr,error_type_onlychk, | |
366 | - error_type_popnonclr,error_type_allnone,error_type_allnone,error_type_allnone,error_type_popnonclr}, // SYS_OFF_COOK_OFF state | |
432 | + {error_type_popclr,error_type_popclr,error_type_allnone,error_type_popclr,error_type_popclr, | |
433 | + error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_OFF_COOK_OFF state | |
367 | 434 | {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_allnone,error_type_popclrstopcmd,error_type_popclrstopcmd, |
368 | 435 | error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, // SYS_ON_COOK_OFF state |
369 | 436 | {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_allnone,error_type_popclrstopcmd,error_type_popclrstopcmd, |
370 | 437 | error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, // SYS_ON_COOK_ON state |
438 | + {error_type_popclr,error_type_popclr,error_type_allnone,error_type_allnone,error_type_popclr, | |
439 | + error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_WASH | |
371 | 440 | {error_type_engnonclr,error_type_popnonclr,error_type_allnone,error_type_popnonclr,error_type_onlychk, |
372 | 441 | error_type_popnonclr,error_type_allnone,error_type_allnone,error_type_allnone,error_type_popnonclr}, // SYS_OFF_COOK_ON state same with SYS_OFF_COOK_OFF |
373 | 442 | }; |
374 | 443 | |
444 | + | |
445 | + const error_sound_type sys_err_sound_def[SYS_ERR_MAX]={ //30047 | |
446 | + error_sound2,error_sound2,error_sound2,error_sound2,error_sound2, | |
447 | + error_sound2,error_sound2,error_sound2,error_sound2,error_sound2}; | |
448 | + | |
449 | + const error_sound_type comm_err_sound_def[COMM_ERR_MAX] ={ //30048 | |
450 | + error_sound1,error_sound1,error_sound1,error_sound1,error_sound1}; | |
451 | + | |
452 | + const error_sound_type state_err_sound_def[STATE_ERR_MAX] ={ //30057 | |
453 | + error_sound1,error_sound1,error_sound1,error_sound1,error_sound1}; | |
454 | + | |
455 | + const error_sound_type sensor_err_sound_def[SENSOR_ERR_MAX]={ //30049 | |
456 | + error_sound1,error_sound1,error_sound1,error_sound1,error_sound1, | |
457 | + error_sound1,error_sound1,error_sound1,error_sound1,error_sound2}; | |
458 | + | |
375 | 459 | const uint8_t sensorTypeInfo[MAX_LOG_SENSOR] = { |
376 | 460 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
377 | 461 | 1, 1, 2, 0, 1, 1 |
... | ... | @@ -409,7 +493,7 @@ private: |
409 | 493 | void processCommError(uint16_t errflag,time_t ltime); |
410 | 494 | void processSensorError(uint16_t errflag, time_t ltime); |
411 | 495 | void processStateError(uint16_t errflat, time_t ltime); |
412 | - void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc,const QString &MsgTitle, time_t ltime); | |
496 | + void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc,const QString &MsgTitle, time_t ltime, error_sound_type errsnd=error_sound1); | |
413 | 497 | |
414 | 498 | public: |
415 | 499 | bool loadWashState(void){return srvdata->loadWashState();} | ... | ... |
app/gui/oven_control/realtimesensorwindow.h
app/gui/oven_control/servicedata.cpp
... | ... | @@ -79,7 +79,7 @@ bool ServiceData::loadServiceData(void){ |
79 | 79 | if(fd>0){ |
80 | 80 | memset(buffs,0x00,FRAM_SIZE); |
81 | 81 | read(fd,buffs,FRAM_SIZE); |
82 | - if(buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log) + sizeof(qint64) + sizeof(int)] != 0x9C){ | |
82 | + if(buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log)] != 0x9C){ | |
83 | 83 | qDebug() << "service data read incorrected!"; |
84 | 84 | close(fd); |
85 | 85 | return saveServiceData(); | ... | ... |
app/gui/oven_control/servicepassinputdlg.cpp
... | ... | @@ -19,8 +19,10 @@ ServicePassInputDlg::ServicePassInputDlg(QWidget *parent, service_pass_type mode |
19 | 19 | ui->ctrProgressBar->setFocus(); |
20 | 20 | |
21 | 21 | this->setResult(QDialog::Accepted); |
22 | - foreach (QPushButton *button, findChildren<QPushButton *>()) | |
23 | - connect(button, &QPushButton::pressed, SoundPlayer::playClick); | |
22 | +// foreach (QPushButton *button, findChildren<QPushButton *>()) | |
23 | +// connect(button, &QPushButton::pressed, SoundPlayer::playClick); | |
24 | + connect(ui->ctrBtnOk, &QPushButton::pressed, SoundPlayer::playClick); | |
25 | + connect(ui->ctrBtnCancel, &QPushButton::pressed, SoundPlayer::playClick); | |
24 | 26 | ui->ctrProgressBar->setMaxProgress(0,MAX_PASSWORD); |
25 | 27 | m_nCurInputCount = 0; |
26 | 28 | memset(m_strInputPass, 0x00, MAX_PASSWORD+1); | ... | ... |
app/gui/oven_control/washwindow.cpp
... | ... | @@ -9,6 +9,7 @@ |
9 | 9 | #include "configwindow.h" |
10 | 10 | #include "mainwindow.h" |
11 | 11 | #include "ovenstatics.h" |
12 | +#include "cooldownpopup.h" | |
12 | 13 | |
13 | 14 | WashWindow::WashWindow(QWidget *parent) : |
14 | 15 | QMainWindow(parent), |
... | ... | @@ -73,9 +74,11 @@ WashWindow::WashWindow(QWidget *parent) : |
73 | 74 | ui->animation->load(":/images/animation/wash_02.png"); |
74 | 75 | ui->animation->load(":/images/animation/wash_03.png"); |
75 | 76 | ui->animation->load(":/images/animation/wash_04.png"); |
77 | + ui->animation->show(); | |
78 | + ui->animation->start(300); | |
76 | 79 | ui->washStepGauge->setValue(0); |
77 | - ui->titleLabel->setText(tr("스팀통헹굼 진행 중입니다.")); | |
78 | - ui->descLabel->setText(tr("완료될 때까지 문을 열지 마세요.")); | |
80 | + ui->titleLabel->setText(tr("제품 스팀통을 세척 중입니다")); | |
81 | + ui->descLabel->setText(tr("완료될 때까지 문을 열지 마세요\n제품의 스팀통 자동 세척 기능을 실행 중입니다")); | |
79 | 82 | ui->washStepTypeLabel->setText(""); |
80 | 83 | ui->washStepCountLabel->setText(""); |
81 | 84 | |
... | ... | @@ -85,6 +88,7 @@ WashWindow::WashWindow(QWidget *parent) : |
85 | 88 | |
86 | 89 | WashWindow::~WashWindow() |
87 | 90 | { |
91 | + udp->turnOff(TG_CLEANING); | |
88 | 92 | delete ui; |
89 | 93 | } |
90 | 94 | |
... | ... | @@ -131,21 +135,48 @@ void WashWindow::start(int type) |
131 | 135 | if (type < 1 || type > 5) |
132 | 136 | return; |
133 | 137 | |
134 | - state = OpenDoor; | |
135 | - | |
136 | 138 | this->type = type; |
137 | 139 | |
138 | - returnToClockTimer.stop(); | |
140 | + if (udp->getData().sensor1 > 60) | |
141 | + { | |
142 | + state = CoolDown; | |
139 | 143 | |
140 | - ui->animation->clear(); | |
141 | - ui->animation->load(":/images/animation/pull_01.png"); | |
142 | - ui->animation->load(":/images/animation/pull_02.png"); | |
143 | - ui->animation->load(":/images/animation/pull_03.png"); | |
144 | - ui->animation->load(":/images/animation/pull_04.png"); | |
145 | - ui->animation->show(); | |
146 | - ui->animation->start(300); | |
144 | + CooldownPopup *p = new CooldownPopup(this, 60); | |
145 | + p->setWindowModality(Qt::WindowModal); | |
146 | + p->showFullScreen(); | |
147 | + | |
148 | + connect(p, SIGNAL(destroyed(QObject*)), SLOT(resume())); | |
149 | + } | |
150 | + else | |
151 | + { | |
152 | + state = OpenDoor; | |
153 | + | |
154 | + returnToClockTimer.stop(); | |
155 | + | |
156 | + ui->animation->clear(); | |
157 | + ui->animation->load(":/images/animation/pull_01.png"); | |
158 | + ui->animation->load(":/images/animation/pull_02.png"); | |
159 | + ui->animation->load(":/images/animation/pull_03.png"); | |
160 | + ui->animation->load(":/images/animation/pull_04.png"); | |
161 | + ui->animation->show(); | |
162 | + ui->animation->start(300); | |
163 | + | |
164 | + udp->set(TG_OVEN_MODE, 2); | |
165 | + } | |
166 | +} | |
147 | 167 | |
148 | - udp->set(TG_OVEN_MODE, 2); | |
168 | +void WashWindow::resume() | |
169 | +{ | |
170 | + if (udp->getData().door_state) | |
171 | + { | |
172 | + state = CloseDoor; | |
173 | + showCloseDoor(); | |
174 | + } | |
175 | + else | |
176 | + { | |
177 | + state = Request; | |
178 | + request(); | |
179 | + } | |
149 | 180 | } |
150 | 181 | |
151 | 182 | void WashWindow::stop() |
... | ... | @@ -217,6 +248,48 @@ void WashWindow::updateView() |
217 | 248 | } |
218 | 249 | } |
219 | 250 | |
251 | +void WashWindow::showCloseDoor() | |
252 | +{ | |
253 | + ui->animation->clear(); | |
254 | + ui->animation->load(":/images/animation/door_big_09.png"); | |
255 | + ui->animation->load(":/images/animation/door_big_08.png"); | |
256 | + ui->animation->load(":/images/animation/door_big_07.png"); | |
257 | + ui->animation->load(":/images/animation/door_big_06.png"); | |
258 | + ui->animation->load(":/images/animation/door_big_05.png"); | |
259 | + ui->animation->load(":/images/animation/door_big_04.png"); | |
260 | + ui->animation->load(":/images/animation/door_big_03.png"); | |
261 | + ui->animation->load(":/images/animation/door_big_02.png"); | |
262 | + ui->animation->load(":/images/animation/door_big_01.png"); | |
263 | + ui->animation->start(300); | |
264 | + ui->closeDoorArrow->show(); | |
265 | +} | |
266 | + | |
267 | +void WashWindow::request() | |
268 | +{ | |
269 | + udp->set(TG_CLEAN_TYPE, type); | |
270 | + udp->turnOn(TG_CLEANING); | |
271 | + | |
272 | + OvenStatistics::getInstance()->setWashState(true); | |
273 | + | |
274 | + SoundPlayer::playStart(); | |
275 | + | |
276 | + ui->closeDoorArrow->hide(); | |
277 | + ui->animation->clear(); | |
278 | + ui->animation->load(":/images/animation/wash_01.png"); | |
279 | + ui->animation->load(":/images/animation/wash_02.png"); | |
280 | + ui->animation->load(":/images/animation/wash_03.png"); | |
281 | + ui->animation->load(":/images/animation/wash_04.png"); | |
282 | + ui->animation->start(300); | |
283 | + | |
284 | + ui->washStepGauge->setValue(0); | |
285 | + ui->titleLabel->setText(tr("기기의 내부를 세척 중입니다")); | |
286 | + ui->descLabel->setText(tr("완료될 때까지 문을 열지 마세요.\n제품 내부의 자동 세척 기능을 실행 중입니다.")); | |
287 | + ui->washStepTypeLabel->setText(""); | |
288 | + ui->washStepCountLabel->setText(""); | |
289 | + | |
290 | + ui->upperStack->setCurrentIndex(1); | |
291 | +} | |
292 | + | |
220 | 293 | void WashWindow::onChanged() |
221 | 294 | { |
222 | 295 | if (state == Idle) |
... | ... | @@ -225,51 +298,20 @@ void WashWindow::onChanged() |
225 | 298 | switch (state) |
226 | 299 | { |
227 | 300 | case Idle: |
301 | + case CoolDown: | |
228 | 302 | return; |
229 | 303 | case OpenDoor: |
230 | 304 | if (udp->getData().door_state) |
231 | 305 | { |
232 | 306 | state = CloseDoor; |
233 | - | |
234 | - ui->animation->clear(); | |
235 | - ui->animation->load(":/images/animation/door_big_09.png"); | |
236 | - ui->animation->load(":/images/animation/door_big_08.png"); | |
237 | - ui->animation->load(":/images/animation/door_big_07.png"); | |
238 | - ui->animation->load(":/images/animation/door_big_06.png"); | |
239 | - ui->animation->load(":/images/animation/door_big_05.png"); | |
240 | - ui->animation->load(":/images/animation/door_big_04.png"); | |
241 | - ui->animation->load(":/images/animation/door_big_03.png"); | |
242 | - ui->animation->load(":/images/animation/door_big_02.png"); | |
243 | - ui->animation->load(":/images/animation/door_big_01.png"); | |
244 | - ui->closeDoorArrow->show(); | |
307 | + showCloseDoor(); | |
245 | 308 | } |
246 | 309 | break; |
247 | 310 | case CloseDoor: |
248 | 311 | if (!udp->getData().door_state) |
249 | 312 | { |
250 | 313 | state = Request; |
251 | - | |
252 | - SoundPlayer::playStart(); | |
253 | - | |
254 | - ui->closeDoorArrow->hide(); | |
255 | - ui->animation->clear(); | |
256 | - | |
257 | - ui->animation->load(":/images/animation/wash_01.png"); | |
258 | - ui->animation->load(":/images/animation/wash_02.png"); | |
259 | - ui->animation->load(":/images/animation/wash_03.png"); | |
260 | - ui->animation->load(":/images/animation/wash_04.png"); | |
261 | - ui->washStepGauge->setValue(0); | |
262 | - ui->titleLabel->setText(tr("기기의 내부를 세척 중입니다")); | |
263 | - ui->descLabel->setText(tr("완료될 때까지 문을 열지 마세요.\n기기의 내부의 자동 세척 기능을 실행 중입니다.")); | |
264 | - ui->washStepTypeLabel->setText(""); | |
265 | - ui->washStepCountLabel->setText(""); | |
266 | - | |
267 | - ui->upperStack->setCurrentIndex(1); | |
268 | - | |
269 | - udp->set(TG_CLEAN_TYPE, type); | |
270 | - udp->turnOn(TG_CLEANING); | |
271 | - | |
272 | - OvenStatistics::getInstance()->setWashState(true); | |
314 | + request(); | |
273 | 315 | } |
274 | 316 | break; |
275 | 317 | case Request: |
... | ... | @@ -337,6 +379,8 @@ void WashWindow::onChanged() |
337 | 379 | } |
338 | 380 | else |
339 | 381 | { |
382 | + state = Idle; | |
383 | + SoundPlayer::playStop(); | |
340 | 384 | OvenStatistics::getInstance()->setWashState(false); |
341 | 385 | |
342 | 386 | ui->titleLabel->setText(tr("세척이 종료되었습니다")); |
... | ... | @@ -366,6 +410,7 @@ void WashWindow::on_backButton_clicked() |
366 | 410 | case Running: |
367 | 411 | stop(); |
368 | 412 | break; |
413 | + case CoolDown: | |
369 | 414 | case Stopping: |
370 | 415 | case RequestClean: |
371 | 416 | case RunningClean: |
... | ... | @@ -393,6 +438,7 @@ void WashWindow::on_configButton_clicked() |
393 | 438 | case Running: |
394 | 439 | stop(); |
395 | 440 | break; |
441 | + case CoolDown: | |
396 | 442 | case Stopping: |
397 | 443 | case RequestClean: |
398 | 444 | case RunningClean: | ... | ... |
app/gui/oven_control/washwindow.h
... | ... | @@ -24,11 +24,15 @@ protected: |
24 | 24 | |
25 | 25 | private slots: |
26 | 26 | void start(int type); |
27 | + void resume(); | |
27 | 28 | void stop(); |
28 | 29 | void returnToClock(); |
29 | 30 | void updateGauge(); |
30 | 31 | void updateView(); |
31 | 32 | |
33 | + void showCloseDoor(); | |
34 | + void request(); | |
35 | + | |
32 | 36 | void onChanged(); |
33 | 37 | |
34 | 38 | void on_backButton_clicked(); |
... | ... | @@ -40,7 +44,7 @@ private: |
40 | 44 | UdpHandler *udp; |
41 | 45 | |
42 | 46 | enum State { |
43 | - Idle, OpenDoor, CloseDoor, Request, Running, Stopping, | |
47 | + Idle, CoolDown, OpenDoor, CloseDoor, Request, Running, Stopping, | |
44 | 48 | RequestClean, RunningClean |
45 | 49 | } state = Idle; |
46 | 50 | ... | ... |