Index: firmware/App/HDCommon.h =================================================================== diff -u -re476a0911226c1390c131d4c90e955f1fdc13eb1 -rb5accb82ac043938255883b6c60a6f81795569b0 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision e476a0911226c1390c131d4c90e955f1fdc13eb1) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision b5accb82ac043938255883b6c60a6f81795569b0) @@ -25,7 +25,7 @@ #define HD_VERSION_MAJOR 0 #define HD_VERSION_MINOR 5 #define HD_VERSION_MICRO 0 -#define HD_VERSION_BUILD 0 +#define HD_VERSION_BUILD 9005 // ********** development build switches ********** @@ -37,8 +37,8 @@ // #define SIMULATE_UI 1 // Build w/o requirement that UI be there // #define TASK_TIMING_OUTPUT_ENABLED 1 // Re-purposes alarm lamp pins for task timing // #define DISABLE_ALARM_AUDIO 1 // Disable alarm audio - #define SKIP_POST 1 // Skip POST tests - all pass - #define DONT_SKIP_NV_POST 1 +// #define SKIP_POST 1 // Skip POST tests - all pass +// #define DONT_SKIP_NV_POST 1 #define DISABLE_AIR_TRAP_LEVELING 1 // Disable air trap level control // #define DISABLE_3WAY_VALVES 1 // Disable 3-way valves // #define TST_3WAY_VALVES_ALWAYS_OPEN 1 // After POST and homing, open all 4 valves Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -rba15d3e6250e8cd3cd3ef39cb64a93f91c3caba2 -rb5accb82ac043938255883b6c60a6f81795569b0 --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision ba15d3e6250e8cd3cd3ef39cb64a93f91c3caba2) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision b5accb82ac043938255883b6c60a6f81795569b0) @@ -125,6 +125,8 @@ refUFVolume = 0.0; measUFVolume = 0.0; measUFVolumeFromPriorReservoirs = 0.0; + // Send reset UF volumes to dialysate outlet pump + setDialOutUFVolumes( refUFVolume, measUFVolume ); uFTimeMS = 0; lastUFTimeStamp = 0; @@ -164,6 +166,11 @@ { currentSalineBolusState = SALINE_BOLUS_STATE_IDLE; } + if ( TRUE == salineBolusAutoResumeUF ) + { + salineBolusAutoResumeUF = FALSE; + currentUFState = UF_RUNNING_STATE; + } } /*********************************************************************//** Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r4aa16058db700e071748f89f91e6eb58ed348ea3 -rb5accb82ac043938255883b6c60a6f81795569b0 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 4aa16058db700e071748f89f91e6eb58ed348ea3) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision b5accb82ac043938255883b6c60a6f81795569b0) @@ -123,7 +123,7 @@ bloodIsPrimed = FALSE; treatmentCompleted = FALSE; - rinsebackDone = TRUE; + rinsebackDone = FALSE; treatmentTimeMS = 0; lastTreatmentTimeStamp = 0; Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -rd3b7ae356aae29c99cb039713a2e120fdbce5a9c -rb5accb82ac043938255883b6c60a6f81795569b0 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision d3b7ae356aae29c99cb039713a2e120fdbce5a9c) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision b5accb82ac043938255883b6c60a6f81795569b0) @@ -371,7 +371,7 @@ // Check for empty saline bag if ( TRUE == isSalineBagEmpty() ) { - activateAlarmNoData( ALARM_ID_EMPTY_SALINE_BAG ); + SET_ALARM_WITH_1_F32_DATA( ALARM_ID_EMPTY_SALINE_BAG, getMeasuredArterialPressure() ); setupForRinsebackStopOrPause(); result = RINSEBACK_PAUSED_STATE; } Index: firmware/App/Modes/TreatmentStop.c =================================================================== diff -u -rac6532c81f2a6d4ad1c67420c22d59f6aeeaae13 -rb5accb82ac043938255883b6c60a6f81795569b0 --- firmware/App/Modes/TreatmentStop.c (.../TreatmentStop.c) (revision ac6532c81f2a6d4ad1c67420c22d59f6aeeaae13) +++ firmware/App/Modes/TreatmentStop.c (.../TreatmentStop.c) (revision b5accb82ac043938255883b6c60a6f81795569b0) @@ -79,7 +79,14 @@ { // Set user alarm recovery actions allowed in this sub-mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, TRUE ); - setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, TRUE ); + if ( TRUE == getRinsebackCompleted() ) + { // block rinseback action if already done + setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, FALSE ); + } + else + { + setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, TRUE ); + } setAlarmUserActionEnabled( ALARM_USER_ACTION_END_TREATMENT, TRUE ); // Ensure all pumps except DPi stopped @@ -104,9 +111,9 @@ // Should always have an alarm active in treatment stop sub-mode so that user can take action if ( FALSE == isAnyAlarmActive() ) { - if ( FALSE == getRinsebackCompleted() ) + if ( TRUE == getRinsebackCompleted() ) { - activateAlarmNoData( ALARM_ID_TREATMENT_STOPPED_AFTER_RINSEBACK ); + activateAlarmNoData( ALARM_ID_TREATMENT_STOPPED_AFTER_RINSEBACK ); // No escalation after rinseback because no blood in blood line } else { @@ -115,18 +122,6 @@ // coming back to stop state via non-alarm path, so no audio - just want alarm for its options signalAlarmSilence( ALARM_SILENCE_CMD_CANCEL ); } - - // Set user alarm recovery actions allowed in this sub-mode - setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, TRUE ); - if ( TRUE == getRinsebackCompleted() ) - { // block rinseback action if already done - setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, FALSE ); - } - else - { - setAlarmUserActionEnabled( ALARM_USER_ACTION_RINSEBACK, TRUE ); - } - setAlarmUserActionEnabled( ALARM_USER_ACTION_END_TREATMENT, TRUE ); } /*********************************************************************//** Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rd3b7ae356aae29c99cb039713a2e120fdbce5a9c -rb5accb82ac043938255883b6c60a6f81795569b0 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision d3b7ae356aae29c99cb039713a2e120fdbce5a9c) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision b5accb82ac043938255883b6c60a6f81795569b0) @@ -663,7 +663,8 @@ // Update alarm to display per highest priority FIFO alarmStatus.alarmsState = highestPriority; - alarmStatus.alarmTop = alarmPriorityFIFO[ highestPriority ].alarmID; + alarmStatus.alarmTop = alarmPriorityFIFO[ highestPriority ].alarmID; + alarmStatus.topAlarmConditionnDetected = alarmIsDetected[ alarmStatus.alarmTop ]; alarmStatus.systemFault = faultsActive; alarmStatus.noDialRecirc = dialysateRecircBlocked; }