Index: firmware/App/Modes/ModeChemicalDisinfectFlush.c =================================================================== diff -u -r2903779754f98d014dacdf075099912ad7830ce6 -reeaab2a9a685fb18845888d91040d3aa01977f6d --- firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision 2903779754f98d014dacdf075099912ad7830ce6) +++ firmware/App/Modes/ModeChemicalDisinfectFlush.c (.../ModeChemicalDisinfectFlush.c) (revision eeaab2a9a685fb18845888d91040d3aa01977f6d) @@ -7,8 +7,8 @@ * * @file ModeChemicalDisinfectFlush.c * -* @author (last) Dara Navaei -* @date (last) 27-Feb-2023 +* @author (last) Michael Garthwaite +* @date (last) 16-May-2023 * * @author (original) Dara Navaei * @date (original) 15-Nov-2022 @@ -70,7 +70,7 @@ #define RSRVRS_DRAIN_TARGET_VOLUME_ML 200.0F ///< While filling and draining at the same time, look for a volume that indicates draining is working, ml. #define FLUSH_ADDITIONAL_TIME_MS ( 38 * MS_PER_SECOND ) ///< Additional time to flush after reservoir full #define NUM_OF_RINSE_CYCLES 2 ///< Number of rinse cycles -#define CHEM_DISINFECT_FLUSH_TIME_MS ( 12 * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect flush time in ms. TODO: get the correct time for the mode or not used? +#define CHEM_DISINFECT_FLUSH_TIME_MS ( 12 * SEC_PER_MIN * MS_PER_SECOND ) ///< Chemical disinfect flush time in ms. // Fill reservoirs to full defines #define RESERVOIR_FULL_VOLUME_CHANGE_LIMIT_ML 5.0F ///< The maximum difference between the short-term and long-term filtered reservoir volumes in ml that determines the reservoir is full. @@ -197,9 +197,14 @@ deenergizeActuators( NO_PARK_CONC_PUMPS ); initChemicalDisinfectFlushMode(); - + setCurrentSubState( NO_SUB_STATE ); setCPLDCleanLEDColor( CPLD_CLEAN_LED_YELLOW ); + // Upon transition to mode chemical flush set CD1 and CD2 calibration records to be picked to the normal + // table. If the chemical disinfect is successful, mode chemical disinfect flush is automatically started + setCondcutivitySensorCalTable( CONDUCTIVITYSENSORS_CD1_SENSOR, CAL_DATA_CD1_COND_SENSOR ); + setCondcutivitySensorCalTable( CONDUCTIVITYSENSORS_CD2_SENSOR, CAL_DATA_CD2_COND_SENSOR ); + activateAlarmNoData( ALARM_ID_DG_CHEM_DISINFECT_FLUSH_REMOVE_ACID ); return chemDisinfectFlushState; @@ -915,7 +920,7 @@ { SET_ALARM_WITH_1_U32_DATA( alarmDetectedPendingTrigger, prevChemDisinfectFlushState ) } - requestNewOperationMode( DG_MODE_FAUL ); + requestNewOperationMode( DG_MODE_STAN ); } /*********************************************************************//** @@ -1072,7 +1077,12 @@ { prevChemDisinfectFlushState = chemDisinfectFlushState; chemDisinfectFlushState = DG_CHEM_DISINFECT_FLUSH_STATE_CANCEL_WATER_PATH; - alarmDetectedPendingTrigger = ALARM_ID_DG_DIALYSATE_OR_CONC_CAP_NOT_IN_PROPER_POSITION; + alarmDetectedPendingTrigger = ALARM_ID_DG_DIALYSATE_CAP_NOT_IN_PROPER_POSITION; + + if ( STATE_OPEN == getSwitchStatus( CONCENTRATE_CAP ) ) + { + alarmDetectedPendingTrigger = ALARM_ID_DG_CONCENTRATE_CAP_NOT_IN_PROPER_POSITION; + } } } }