Commit 15e45c49cc202203a2162c26b913726eb5d38624

Authored by 고영탁
1 parent 90bfa52489
Exists in master and in 2 other branches fhd, fhd-demo

세척 에러 유형 추가 및 에러 발생 동작 수정

 - 에러 팝업 문구 수정
 - 에러 사운드 추가
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/define.h
... ... @@ -4,8 +4,8 @@
4 4 #include <QtCore>
5 5  
6 6 #define MAJOR_VER 0
7   -#define MINOR_VER 3
8   -#define HOTFIX_VER 15
  7 +#define MINOR_VER 4
  8 +#define HOTFIX_VER 0
9 9  
10 10 namespace Define
11 11 {
... ...
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 &amp;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/ovenstatics.cpp
... ... @@ -74,6 +74,7 @@ void OvenStatistics::onDataChanged()
74 74 time(&ltime);
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){
... ... @@ -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  
... ... @@ -374,6 +379,7 @@ void OvenStatistics::oneSecTimerFired(void){
374 379 uint16_t errstatetemp=0;
375 380 int cookingstate=0;
376 381 if((control.cooking || oven->cooking() || oven->preheating() || oven->cooldown())) cookingstate =1;
  382 + else if(state.cleaning_sate !=0) cookingstate = 2;
377 383  
378 384 ltime = time(NULL);
379 385  
... ... @@ -393,14 +399,14 @@ void OvenStatistics::oneSecTimerFired(void){
393 399 nCommErrVal = state.communication_error;
394 400 if(nCommErrVal ==0) {
395 401 curCommErrorState = nCommErrVal;
396   - nCommErrValStableCnt = 60;
  402 + nCommErrValStableCnt = DELAY_ERROR_TIME;
397 403 }
398 404 else {
399 405 nCommErrValStableCnt=0;
400 406 }
401 407 }
402 408 else{
403   - if(nCommErrValStableCnt >=60){
  409 + if(nCommErrValStableCnt >=DELAY_ERROR_TIME){
404 410 errstatetemp = state.communication_error;
405 411 if(errstatetemp!=0 && errstatetemp != curCommErrorState ){
406 412 processCommError( (errstatetemp & comm_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime );
... ... @@ -414,14 +420,14 @@ void OvenStatistics::oneSecTimerFired(void){
414 420 nStateErrVal = state.controller_error;
415 421 if(nStateErrVal == 0 ) {
416 422 curControlErrorState = nStateErrVal;
417   - nStateErrValStableCnt=60;
  423 + nStateErrValStableCnt=DELAY_ERROR_TIME;
418 424 }
419 425 else{
420 426 nStateErrValStableCnt=0;
421 427 }
422 428 }
423 429 else{
424   - if(nStateErrValStableCnt>=60){
  430 + if(nStateErrValStableCnt>=DELAY_ERROR_TIME){
425 431 errstatetemp = state.controller_error;
426 432 if(errstatetemp != 0 && errstatetemp != curControlErrorState){
427 433 processStateError((errstatetemp&state_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime);
... ... @@ -604,7 +610,7 @@ void OvenStatistics::oneSecTimerFired(void){
604 610  
605 611 }
606 612  
607   -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){
608 614 QWidget* pParent;
609 615 uint32_t erridx = (uint32_t) (item - &(srvdata->err_log.values[0]));
610 616  
... ... @@ -646,7 +652,7 @@ void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype,
646 652 case error_type_popclrstopcmd:
647 653 {
648 654 if(m_mapPopupList.find(erridx) == m_mapPopupList.end()){
649   - 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);
650 656 connect(dlg,SIGNAL(closedErrorPopup(int)), this, SLOT(onErrorPopupClosed(int)));
651 657 m_mapPopupList.insert(erridx,dlg);
652 658 qApp->setActiveWindow(dlg);
... ... @@ -662,7 +668,7 @@ void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype,
662 668 //EngineerMenuWindow *w = new EngineerMenuWindow(0);
663 669 //w->showFullScreen();
664 670 if(m_mapPopupList.find(erridx)==m_mapPopupList.end()){
665   - ErrorPopupDlg *dlg = new ErrorPopupDlg(pParent,MsgDesc,MsgTitle, false,erridx);
  671 + ErrorPopupDlg *dlg = new ErrorPopupDlg(pParent,MsgDesc,MsgTitle, false,erridx,sndtype);
666 672 connect(dlg,SIGNAL(closedErrorPopup(int)),this,SLOT(onErrorPopupClosed(int)));
667 673 m_mapPopupList.insert(erridx,dlg);
668 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/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);
... ...