Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rc3043e70dbb4f955d76510073f739d53d61707fe -r3eb22875b59bdfa3d378f530941f9f8140fa20a1 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision c3043e70dbb4f955d76510073f739d53d61707fe) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 3eb22875b59bdfa3d378f530941f9f8140fa20a1) @@ -92,7 +92,7 @@ static void clearCurrentCleaningModeStatus( void ); static void handleChemFlushSampleCollection( void ); static void handleROPermeateSampleCollection( void ); -static BOOL isDGDisinfectValid( void ); +static BOOL isDGDisinfectValid( REQUEST_REJECT_REASON_CODE_T* rejReason ); static BOOL haveHDDGServicesBeenExpired( REQUEST_REJECT_REASON_CODE_T* rejReason ); /*********************************************************************//** @@ -273,26 +273,17 @@ { rejReason = REQUEST_REJECT_REASON_BATTERY_IS_NOT_CHARGED; } -#ifndef _RELEASE_ - else if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_SERVICE_AND_DISINFECT_CHECK ) != SW_CONFIG_ENABLE_VALUE ) -#endif + + if ( getTestConfigStatus( TEST_CONFIG_SKIP_DISINFECT_AND_SERVICE_TX_BLOCKERS ) != TRUE ) { - if ( getTestConfigStatus( TEST_CONFIG_SKIP_DISINFECT_AND_SERVICE_TX_BLOCKERS ) != TRUE ) + if ( getHeatDisinfectTemperatureSensorValue() > MAX_ALLOWED_RO_FILTER_TEMP_FOR_TX_C ) { - // Verify HD and DG are not over due for service - if ( haveHDDGServicesBeenExpired( &rejReason ) != TRUE ) - { - // Verify DG is disinfected - if ( FALSE == isDGDisinfectValid() ) - { - rejReason = REQUEST_REJECT_REASON_DG_DISINFECT_HAS_BEEN_EXPIRED; - } - else if ( getHeatDisinfectTemperatureSensorValue() > MAX_ALLOWED_RO_FILTER_TEMP_FOR_TX_C ) - { - rejReason = REQUEST_REJECT_REASON_DG_RO_FILTER_TEMPERATURE_OUT_OF_RANGE; - } - } + rejReason = REQUEST_REJECT_REASON_DG_RO_FILTER_TEMPERATURE_OUT_OF_RANGE; } + + haveHDDGServicesBeenExpired( &rejReason ); + + isDGDisinfectValid( &rejReason ); } // If no reason to reject request to start treatment, set flag to initiate treatment workflow @@ -1184,9 +1175,10 @@ * acceptable to start another treatment. * @details Inputs: none * @details Outputs: none + * @param rejReason pointer to the provided reject reason buffer to be send to UI * @return TRUE if the disinfect is valid otherwise, FALSE ***********************************************************************/ -static BOOL isDGDisinfectValid( void ) +static BOOL isDGDisinfectValid( REQUEST_REJECT_REASON_CODE_T* rejReason ) { DG_SERVICE_AND_USAGE_DATA_T data; BOOL status = FALSE; @@ -1225,6 +1217,15 @@ BOOL isFlushValid = ( ( ( TRUE == isBasicFlushValid ) || ( TRUE == isChemFlushValid ) || ( TRUE == isHeatDisCoolFlushValid ) || ( TRUE == isHeatDisFlushValid ) ) ? TRUE : FALSE ); + if ( FALSE == isFlushValid ) + { + *rejReason = REQUEST_REJECT_REASON_DG_FILTER_FLUSH_HAS_BEEN_EXPIRED; + } + else if ( ( FALSE == isBasicFlushValid ) && ( FALSE == isChemFlushValid ) && ( FALSE == isHeatDisCoolFlushValid ) ) + { + *rejReason = REQUEST_REJECT_REASON_DG_DISINFECT_HAS_BEEN_EXPIRED; + } + // If all of the above conditions are true, it means we can start a treatment if ( ( TRUE == hasDisBeenDone ) && ( TRUE == isHeatDisValid ) && ( TRUE == isChemFlushComplete ) && ( TRUE == isFlushValid ) ) {