Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r7325348a8b5fce9101d0f68d89c791d48e1a3575 -r5016cb7de01291976a89a43b03ab755b534f0889 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 7325348a8b5fce9101d0f68d89c791d48e1a3575) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 5016cb7de01291976a89a43b03ab755b534f0889) @@ -110,6 +110,11 @@ U32 dgSubMode = getDGSubMode(); #ifndef RUN_WITHOUT_DG + if ( TRUE == stop ) + { + activateAlarmNoData( ALARM_ID_TREATMENT_STOPPED_BY_USER ); + } + // state machine to get DG to prep a reservoir so we can start a treatment switch ( currentStandbyState ) { Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r7325348a8b5fce9101d0f68d89c791d48e1a3575 -r5016cb7de01291976a89a43b03ab755b534f0889 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 7325348a8b5fce9101d0f68d89c791d48e1a3575) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 5016cb7de01291976a89a43b03ab755b534f0889) @@ -834,8 +834,8 @@ BOOL noRinseback = FALSE; BOOL noEndTreatment = FALSE; BOOL noNewTreatment = FALSE; - BOOL usrAckReq = FALSE; - ALARM_ID_T a; + BOOL usrAckReq = FALSE; + ALARM_ID_T a; // determine alarm flags for ( a = ALARM_ID_NO_ALARM; a < NUM_OF_ALARM_IDS; a++ ) @@ -862,16 +862,24 @@ } // if alarm active } // alarm table loop - // if top alarm requires user ack or no other user options enabled for recoverable alarm, set user ack flag + // if top alarm condition not cleared, block resume and rinseback flags + if ( TRUE == alarmStatus.topAlarmConditionnDetected ) + { + noResume = TRUE; + noRinseback = TRUE; + } + + // if top alarm requires user ack or no other user options enabled for recoverable alarm and condition cleared, set user ack flag and block other flags if ( ( TRUE == ALARM_TABLE[ alarmStatus.alarmTop ].alarmUserAckRequired ) || - ( ( FALSE == alarmStatus.noClear ) && ( noResume ) && ( noRinseback ) && ( noEndTreatment ) ) ) + ( ( FALSE == alarmStatus.noClear ) && ( noResume ) && ( noRinseback ) && ( noEndTreatment ) && + ( FALSE == alarmStatus.topAlarmConditionnDetected ) ) ) { usrAckReq = TRUE; noResume = TRUE; noRinseback = TRUE; noEndTreatment = TRUE; } - + // set updated alarm flags alarmStatus.systemFault = systemFault; alarmStatus.stop = stop;