Index: firmware/App/Modes/ModeDrain.c =================================================================== diff -u -r5f1388ca0f6672b9ab90eef649de8dc921c9beb2 -rd7cd6f90ebd24645b4f6b60a36a9bdc2d6f1c95f --- firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision 5f1388ca0f6672b9ab90eef649de8dc921c9beb2) +++ firmware/App/Modes/ModeDrain.c (.../ModeDrain.c) (revision d7cd6f90ebd24645b4f6b60a36a9bdc2d6f1c95f) @@ -137,6 +137,8 @@ setCurrentSubState( NO_SUB_STATE ); + SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_INACTIVE_RESERVOIR_TEMP_REMOVE, (U32)inactiveReservoir, 0 ) // TODO remove + if ( DG_RESERVOIR_1 == inactiveReservoir ) { setValveStateDelayed( VRD1, VALVE_STATE_OPEN, DELAY_RES_DRAIN_VALVE_MS ); @@ -295,6 +297,8 @@ acidBottleVolML = acid.acidConcentrate[ CAL_DATA_ACID_CONCENTRATE_1 ].acidFullBottleVolumeML; bicarbBottleVolML = bicarb.bicarbConcentrate[ CAL_DATA_BICARB_CONCENTRATE_1 ].bicarbStartVolumeML; + SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_INACTIVE_RESERVOIR_TEMP_REMOVE, (U32)inactiveReservoir, 0 ) // TODO remove + if ( DG_RESERVOIR_1 == inactiveReservoir ) { setValveState( VRD1, VALVE_STATE_CLOSED ); @@ -360,6 +364,8 @@ if ( ++drainEmptyTareTimerCtr > DRAIN_EMPTY_TARE_WAIT ) { + SEND_EVENT_WITH_2_U32_DATA( DG_EVENT_INACTIVE_RESERVOIR_TEMP_REMOVE, (U32)inactiveReservoir, 0 ) // TODO remove + drainEmptyTareTimerCtr = 0; tareLoadCellsAtEmpty( inactiveReservoir ); Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -r5f1388ca0f6672b9ab90eef649de8dc921c9beb2 -rd7cd6f90ebd24645b4f6b60a36a9bdc2d6f1c95f --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 5f1388ca0f6672b9ab90eef649de8dc921c9beb2) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision d7cd6f90ebd24645b4f6b60a36a9bdc2d6f1c95f) @@ -80,7 +80,7 @@ // 2m long tubing to cap = 19.5 mL (acid line) + 7.92 mL/m * 2 m (tubing to cap) + 20.82 mL (straw) = 56.15 mL // Prime time in seconds = ( 56.15 mL / 48 mL/min ) x 60 second/min + 25 seconds margin time = 95 seconds. -#define PRIME_CONCENTRATE_LINES_TIME_OUT_MS ( 95 * MS_PER_SECOND ) ///< Time required to prime the concentrate lines. +#define PRIME_CONCENTRATE_LINES_TIME_OUT_MS ( 60 * MS_PER_SECOND ) ///< Time required to prime the concentrate lines. #define FLUSH_BUBBLES_PUMP_TIME_OUT_MS ( 2 * MS_PER_SECOND ) ///< RO pump on during flush bubble interval in ms. #define DIALYSATE_TEMPERATURE_TOLERANCE_C 2.0F ///< Dialysate temperature tolerance in degree C. #define DATA_PUBLISH_COUNTER_START_COUNT 63 ///< Data publish counter start count. @@ -207,6 +207,8 @@ concPumpPrimeStartTimeMS = getMSTimerCount(); conductivitySampleCount = 0; dataPublishCounter = DATA_PUBLISH_COUNTER_START_COUNT; + // This timer is set to 0 to be checked whether we were in pause but this is still 0 so so we the start time regardless + // If we were filling and then went to pause we do not reset this anymore dialysateFillStartTimeMS = 0; dialysatePauseElapsedTimeMS = 0; dialysatePauseStartTimeMS = 0; @@ -895,7 +897,7 @@ // Check if run out of time to fill the reservoir, disregarding time paused, // because pause time isn't the reservoir's, or loadcell's fault // the 5 minutes DIALYSATE_FILL_TIME_OUT is a mystery number. - if ( TRUE == didTimeout( dialysateFillStartTimeMS, DIALYSATE_FILL_TIME_OUT+dialysatePauseElapsedTimeMS ) ) + if ( TRUE == didTimeout( dialysateFillStartTimeMS, DIALYSATE_FILL_TIME_OUT + dialysatePauseElapsedTimeMS ) ) { activateAlarmNoData( ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME ); } @@ -1014,9 +1016,9 @@ // Execute cleanup on exiting pause if ( state != fillState ) { - if (DG_FILL_MODE_STATE_PAUSED == fillState) + if ( DG_FILL_MODE_STATE_PAUSED == fillState ) { // accumulate pause - dialysatePauseElapsedTimeMS += calcTimeSince(dialysatePauseStartTimeMS); + dialysatePauseElapsedTimeMS += calcTimeSince( dialysatePauseStartTimeMS ); } } @@ -1089,7 +1091,7 @@ case DG_FILL_MODE_STATE_DELIVER_DIALYSATE: setValveState( VPO, VALVE_STATE_FILL_C_TO_NC ); - if ( didFillRecoverFromPause != TRUE ) + if ( ( didFillRecoverFromPause != TRUE ) || ( 0 == dialysateFillStartTimeMS ) ) { dialysateFillStartTimeMS = getMSTimerCount(); }