Commit 2189b57d9aab28ac708bd0ad6c2168a91badc6c8
1 parent
14d1b0775f
Exists in
master
and in
2 other branches
GUI V0.3.15
- 0.3.15 버전 변경 - 통신에러 30초간 감지 후 발생
Showing
2 changed files
with
63 additions
and
11 deletions
Show diff stats
app/gui/oven_control/define.h
app/gui/oven_control/ovenstatics.cpp
... | ... | @@ -93,11 +93,11 @@ void OvenStatistics::onDataChanged() |
93 | 93 | } |
94 | 94 | curSysErrorState = state.system_error; |
95 | 95 | |
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; | |
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; | |
101 | 101 | |
102 | 102 | errstatetemp = state.sensor_error; |
103 | 103 | if(errstatetemp!=0 && errstatetemp != curSensorErrorState ){ |
... | ... | @@ -105,11 +105,11 @@ void OvenStatistics::onDataChanged() |
105 | 105 | } |
106 | 106 | curSensorErrorState = errstatetemp; |
107 | 107 | |
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; | |
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; | |
113 | 113 | |
114 | 114 | } |
115 | 115 | |
... | ... | @@ -367,6 +367,14 @@ void OvenStatistics::oneSecTimerFired(void){ |
367 | 367 | static int nOneSecCnt=1; |
368 | 368 | time_t ltime; |
369 | 369 | |
370 | + static int nStateErrValStableCnt = 0; | |
371 | + static int nCommErrValStableCnt = 0; | |
372 | + static uint16_t nCommErrVal = 0; | |
373 | + static uint16_t nStateErrVal = 0; | |
374 | + uint16_t errstatetemp=0; | |
375 | + int cookingstate=0; | |
376 | + if((control.cooking || oven->cooking() || oven->preheating() || oven->cooldown())) cookingstate =1; | |
377 | + | |
370 | 378 | ltime = time(NULL); |
371 | 379 | |
372 | 380 | nOneSecCnt++; |
... | ... | @@ -374,11 +382,55 @@ void OvenStatistics::oneSecTimerFired(void){ |
374 | 382 | srvdata->saveServiceData(); |
375 | 383 | } |
376 | 384 | |
385 | + | |
377 | 386 | if(bDataRefreshed) bDataRefreshed= false; |
378 | 387 | else{ |
379 | 388 | udp->fillControl(control); |
380 | 389 | udp->fillData(state); |
381 | 390 | } |
391 | + | |
392 | + if(nCommErrVal != state.communication_error){ | |
393 | + nCommErrVal = state.communication_error; | |
394 | + if(nCommErrVal ==0) { | |
395 | + curCommErrorState = nCommErrVal; | |
396 | + nCommErrValStableCnt = 60; | |
397 | + } | |
398 | + else { | |
399 | + nCommErrValStableCnt=0; | |
400 | + } | |
401 | + } | |
402 | + else{ | |
403 | + if(nCommErrValStableCnt >=60){ | |
404 | + errstatetemp = state.communication_error; | |
405 | + if(errstatetemp!=0 && errstatetemp != curCommErrorState ){ | |
406 | + processCommError( (errstatetemp & comm_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime ); | |
407 | + } | |
408 | + curCommErrorState = errstatetemp; | |
409 | + } | |
410 | + else nCommErrValStableCnt++; | |
411 | + } | |
412 | + | |
413 | + if(nStateErrVal != state.controller_error){ | |
414 | + nStateErrVal = state.controller_error; | |
415 | + if(nStateErrVal == 0 ) { | |
416 | + curControlErrorState = nStateErrVal; | |
417 | + nStateErrValStableCnt=60; | |
418 | + } | |
419 | + else{ | |
420 | + nStateErrValStableCnt=0; | |
421 | + } | |
422 | + } | |
423 | + else{ | |
424 | + if(nStateErrValStableCnt>=60){ | |
425 | + errstatetemp = state.controller_error; | |
426 | + if(errstatetemp != 0 && errstatetemp != curControlErrorState){ | |
427 | + processStateError((errstatetemp&state_err_mask[cookingstate][cfg->getConfigValue(Define::config_model).d32]),ltime); | |
428 | + } | |
429 | + curControlErrorState = errstatetemp; | |
430 | + } | |
431 | + else nStateErrValStableCnt++; | |
432 | + } | |
433 | + | |
382 | 434 | //가열부 시간 측정 |
383 | 435 | if( (state.onoff_state1 & LOAD_STATE1_STEAM_BUNNER) !=0){ |
384 | 436 | srvdata->use_log.items.steam_heat +=1; | ... | ... |