Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r3741b7bb1a2e35a0b3618a9212f277f1937ee75f -r37dac720d0a04a6f28ae8f60bf1320ca13989354 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 3741b7bb1a2e35a0b3618a9212f277f1937ee75f) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 37dac720d0a04a6f28ae8f60bf1320ca13989354) @@ -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,16 @@ 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; + } + + 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 ) ) {