Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r61329f4338e01017c1b31d063a17a187ec12c37d -re7b65409100c66dfe8b1a18b89c5245adb21ce2d --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 61329f4338e01017c1b31d063a17a187ec12c37d) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision e7b65409100c66dfe8b1a18b89c5245adb21ce2d) @@ -888,8 +888,24 @@ { TREATMENT_STATE_T result = TREATMENT_RINSEBACK_STATE; - // Execute treatment rinseback sub-mode - execRinseback(); + // If user requests treatment end, end treatment + if ( TRUE == endTreatmentAlarmResponseRequest ) + { + sendLastTreatmentPeriodicData = TRUE; + requestNewOperationMode( MODE_POST ); + } + // Otherwise execute state machine for treatment rinseback sub-mode + else + { + // If user requests resumption of treatment, resume rinseback + if ( TRUE == resumeTreatmentAlarmResponseRequest ) + { + resumeTreatmentAlarmResponseRequest = FALSE; + signalRinsebackAlarmResumeUserAction(); + } + // Execute treatment rinseback sub-mode + execRinseback(); + } // Handle signals from rinseback sub-mode if ( TRUE == rinsebackToRecircRequest )