Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r78cee9347b3766ac7c14d413ed848be758c7e9cd -r1eac55db00559965a7dc6752fc42a2c54d56f4b9 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 1eac55db00559965a7dc6752fc42a2c54d56f4b9) @@ -329,18 +329,22 @@ BOOL result = FALSE; REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; - if ( ( MODE_STAN == getCurrentOperationMode() ) && ( STANDBY_WAIT_FOR_DISINFECT_STATE == currentStandbyState ) ) + if ( MODE_STAN == getCurrentOperationMode() ) { - if ( TRUE == isDGCommunicating() ) + if ( ( STANDBY_WAIT_FOR_DISINFECT_STATE == currentStandbyState ) || ( STANDBY_WAIT_FOR_TREATMENT_STATE == currentStandbyState ) ) { - flushStartReqReceived = TRUE; - result = TRUE; - rejReason = REQUEST_REJECT_REASON_NONE; + if ( TRUE == isDGCommunicating() ) + { + flushStartReqReceived = TRUE; + result = TRUE; + currentStandbyState = STANDBY_WAIT_FOR_DISINFECT_STATE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + else + { + rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; + } } - else - { - rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; - } } sendDisinfectConfirmResponse( result, rejReason ); @@ -361,18 +365,22 @@ BOOL result = FALSE; REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; - if ( ( MODE_STAN == getCurrentOperationMode() ) && ( STANDBY_WAIT_FOR_DISINFECT_STATE == currentStandbyState ) ) + if ( MODE_STAN == getCurrentOperationMode() ) { - if ( TRUE == isDGCommunicating() ) + if ( ( STANDBY_WAIT_FOR_DISINFECT_STATE == currentStandbyState ) || ( STANDBY_WAIT_FOR_TREATMENT_STATE == currentStandbyState ) ) { - heatDisinfectStartReqReceived = TRUE; - result = TRUE; - rejReason = REQUEST_REJECT_REASON_NONE; + if ( TRUE == isDGCommunicating() ) + { + heatDisinfectStartReqReceived = TRUE; + result = TRUE; + currentStandbyState = STANDBY_WAIT_FOR_DISINFECT_STATE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + else + { + rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; + } } - else - { - rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; - } } sendDisinfectConfirmResponse( result, rejReason ); @@ -393,18 +401,22 @@ BOOL result = FALSE; REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; - if ( ( MODE_STAN == getCurrentOperationMode() ) && ( STANDBY_WAIT_FOR_DISINFECT_STATE == currentStandbyState ) ) + if ( MODE_STAN == getCurrentOperationMode() ) { - if ( TRUE == isDGCommunicating() ) + if ( ( STANDBY_WAIT_FOR_DISINFECT_STATE == currentStandbyState ) || ( STANDBY_WAIT_FOR_TREATMENT_STATE == currentStandbyState ) ) { - chemDisinfectStartReqReceived = TRUE; - result = TRUE; - rejReason = REQUEST_REJECT_REASON_NONE; + if ( TRUE == isDGCommunicating() ) + { + chemDisinfectStartReqReceived = TRUE; + result = TRUE; + currentStandbyState = STANDBY_WAIT_FOR_DISINFECT_STATE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + else + { + rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; + } } - else - { - rejReason = REQUEST_REJECT_REASON_DG_COMM_LOST; - } } sendDisinfectConfirmResponse( result, rejReason );