Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r14d740bbb065f043daaa348bcda5f447e1c16a32 -rc28337436dce61c9ecc295d191c44628e089bf33 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 14d740bbb065f043daaa348bcda5f447e1c16a32) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision c28337436dce61c9ecc295d191c44628e089bf33) @@ -104,6 +104,7 @@ static BOOL bloodPrimeToDialysisRequest; ///< Flag indicates blood prime has completed and time to start dialysis. static BOOL rinsebackToRecircRequest; ///< Flag indicates user has requested to proceed to re-circulate sub-mode. static BOOL treatmentEndToRinsebackRequest; ///< Flag indicates user has requested final rinseback. +static BOOL resumeBlockedByAlarm; ///< Flag indicates an alarm has blocked resume of this treatment. static U32 pendingParamChangesTimer; ///< User required to confirm UF volume change within 1 minute. static F32 pendingUFVolumeChange; ///< An ultrafiltration volume change (mL) is pending user confirmation. @@ -158,6 +159,7 @@ bloodIsPrimed = FALSE; treatmentCompleted = FALSE; rinsebackDone = FALSE; + resumeBlockedByAlarm = FALSE; treatmentTimeMS = 0; lastTreatmentTimeStamp = 0; @@ -246,6 +248,19 @@ /*********************************************************************//** * @brief + * The isTreatmentResumeBlocked function determines whether the treatment has + * seen an alarm that prevents resumption. + * @details Inputs: resumeBlockedByAlarm + * @details Outputs: none + * @return resumeBlockedByAlarm + *************************************************************************/ +BOOL isTreatmentResumeBlocked( void ) +{ + return resumeBlockedByAlarm; +} + +/*********************************************************************//** + * @brief * The getTreatmentTimeRemainingSecs function determines the number of seconds * remaining in the treatment. * @details Inputs: presTreatmentTimeSecs, treatmentTimeMS @@ -595,6 +610,12 @@ activateAlarmNoData( ALARM_ID_TREATMENT_STOPPED_BY_USER ); } + // Check if resume treatment blocked by alarm + if ( TRUE == doesAlarmIndicateNoResume() ) + { + resumeBlockedByAlarm = TRUE; + } + // Check dialysate temperature during treatment mode (except end state where treatment is over, dialyzer is bypassed and temp is no longer an issue) if ( currentTreatmentState != TREATMENT_END_STATE ) {