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; | ... | ... |