Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r49dba1e95bb3763b4c150e7a80b84a65264a7ca8 -r4151ee46ace3cc66b6b7c0f276040889fe0d75e6 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 49dba1e95bb3763b4c150e7a80b84a65264a7ca8) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 4151ee46ace3cc66b6b7c0f276040889fe0d75e6) @@ -147,7 +147,8 @@ alarmStatus.noResume = FALSE; alarmStatus.noRinseback = FALSE; alarmStatus.noEndTreatment = FALSE; - alarmStatus.noNewTreatment = FALSE; + alarmStatus.noNewTreatment = FALSE; + alarmStatus.noDialRecirc = FALSE; alarmStatus.usrACKRequired = FALSE; } @@ -547,6 +548,19 @@ /*********************************************************************//** * @brief + * The isDialysateRecircBlocked function determines whether any currently + * active alarm is blocking dialysate re-circulation. + * @details Inputs: alarmStatus + * @details Outputs: none + * @return TRUE if any active alarm prevents dialysate re-circulation, FALSE if not + *************************************************************************/ +BOOL isDialysateRecircBlocked( void ) +{ + return alarmStatus.noDialRecirc; +} + +/*********************************************************************//** + * @brief * The getCurrentAlarmStatePriority function determines the current alarm * state priority (NONE, LOW, MEDIUM, or HIGH). * @details Inputs: alarmStatus @@ -633,7 +647,8 @@ { ALARM_PRIORITY_T highestPriority = ALARM_PRIORITY_NONE; ALARM_ID_T a; - BOOL faultsActive = FALSE; + BOOL faultsActive = FALSE; + BOOL dialysateRecircBlocked = FALSE; // Update FIFOs and sub-ranks per active alarms table - for alarm ranking purposes to determine "top" alarm for ( a = ALARM_ID_NO_ALARM; a < NUM_OF_ALARM_IDS; a++ ) @@ -671,14 +686,20 @@ if ( TRUE == ALARM_TABLE[ a ].alarmIsFault ) { faultsActive = TRUE; + } + // Track whether any active alarms prevent dialysate re-circulation so far + if ( TRUE == ALARM_TABLE[ a ].alarmNoDialysateRecirc ) + { + dialysateRecircBlocked = TRUE; } } } // Update alarm to display per highest priority FIFO alarmStatus.alarmsState = highestPriority; alarmStatus.alarmTop = alarmPriorityFIFO[ highestPriority ].alarmID; - alarmStatus.systemFault = faultsActive; + alarmStatus.systemFault = faultsActive; + alarmStatus.noDialRecirc = dialysateRecircBlocked; } /*********************************************************************//**