Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -rf7d8d74379a55ff917b5896627b20ec7c05c0c01 -r59b7b1cd099ab5a5e943fb5307aec264cbadb51a --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision f7d8d74379a55ff917b5896627b20ec7c05c0c01) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 59b7b1cd099ab5a5e943fb5307aec264cbadb51a) @@ -17,6 +17,7 @@ #include // For temperature calculation #include // For memset() +#include "FlowSensors.h" #include "FPGA.h" #include "MessageSupport.h" #include "NVDataMgmt.h" @@ -603,13 +604,16 @@ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_TEMPERATURE_SENSORS_ALARM ) != SW_CONFIG_ENABLE_VALUE ) #endif { - F32 TDi = dialTempMovingAvgData[ DIAL_TEMP_TDI ].dialTempAvgC; - F32 TRo = dialTempMovingAvgData[ DIAL_TEMP_TRO ].dialTempAvgC; - DG_OP_MODE_T op = getCurrentOperationMode(); - F32 driftC = ( DG_MODE_HEAT == op ? TDI_TRO_TEMP_SENSORS_MAX_DEVIATION_IN_HEAT_DIS_C : TDI_TRO_TEMP_SENSORS_MAX_DEVIATION_C ); - BOOL isDriftOut = ( fabs( TDi - TRo ) > driftC ? TRUE : FALSE ); + if ( getMeasuredRawFlowRateLPM( DIALYSATE_FLOW_SENSOR ) > NEARLY_ZERO ) + { + F32 TDi = dialTempMovingAvgData[ DIAL_TEMP_TDI ].dialTempAvgC; + F32 TRo = dialTempMovingAvgData[ DIAL_TEMP_TRO ].dialTempAvgC; + DG_OP_MODE_T op = getCurrentOperationMode(); + F32 driftC = ( DG_MODE_HEAT == op ? TDI_TRO_TEMP_SENSORS_MAX_DEVIATION_IN_HEAT_DIS_C : TDI_TRO_TEMP_SENSORS_MAX_DEVIATION_C ); + BOOL isDriftOut = ( fabs( TDi - TRo ) > driftC ? TRUE : FALSE ); - checkPersistentAlarm( ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE, isDriftOut, fabs( TDi - TRo ), driftC ); + checkPersistentAlarm( ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE, isDriftOut, fabs( TDi - TRo ), driftC ); + } } } Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -ra683ad9f7451beffab6c2b6b8c1049c4c167a6dc -r59b7b1cd099ab5a5e943fb5307aec264cbadb51a --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision a683ad9f7451beffab6c2b6b8c1049c4c167a6dc) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 59b7b1cd099ab5a5e943fb5307aec264cbadb51a) @@ -338,7 +338,10 @@ switch ( fillState ) { case DG_FILL_MODE_STATE_START: - fillState = DG_FILL_MODE_STATE_TEST_INLET_WATER; + if ( ( FALSE == isAlarmActive( ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME ) ) && ( FALSE == isAlarmActive( ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME ) ) ) + { + fillState = DG_FILL_MODE_STATE_TEST_INLET_WATER; + } break; case DG_FILL_MODE_STATE_TEST_INLET_WATER: @@ -944,6 +947,7 @@ { setBadAvgConductivityDetectedFlag( TRUE ); // signal idle bad avg conductivity detected setThisFisrtFillFlag( TRUE ); + resetChemicalUsedVolumeML( BICARB ); SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_FILL_CONDUCTIVITY_OUT_OF_RANGE, avgBicarbConduSPerCM, bicarbNormalConduSPerCM ); // trigger replace bottles alarm #1 clearAlarm( ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT ); // clear this alarm before triggering in case previous fill was bad and still active from before activateAlarmNoData ( ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT ); Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -ra1ba8f7e866ace5c42e0e1107eeb9414639180e3 -r59b7b1cd099ab5a5e943fb5307aec264cbadb51a --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision a1ba8f7e866ace5c42e0e1107eeb9414639180e3) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 59b7b1cd099ab5a5e943fb5307aec264cbadb51a) @@ -91,7 +91,7 @@ // R1 to R2 & R2 to R1 heat disinfect circulation #define HEAT_DISINFECT_TARGET_RO_FLOW_LPM 1.3F ///< Heat disinfect target RO flow rate in L/min. -#define HEAT_DISINFECT_TARGET_RO_FLOW_TRANSFER_LPM 0.8F ///< Heat disinfect target RO flow rate in L/min when transferring between reservoirs. +#define HEAT_DISINFECT_TARGET_RO_FLOW_TRANSFER_LPM 0.5F ///< Heat disinfect target RO flow rate in L/min when transferring between reservoirs. #define HEAT_DISINFECT_MAX_RO_PRESSURE_PSI 30 ///< Heat disinfect maximum RO pressure in psi. #define HEAT_DISINFECT_START_TEMP_TIMEOUT_MS ( 4 * MIN_PER_HOUR * SEC_PER_MIN * MS_PER_SECOND ) ///< Heat disinfect reaching to minimum temperature timeout in milliseconds. #define RSRVRS_TARGET_VOL_OUT_TIMEOUT_MS ( 5 * MS_PER_SECOND ) ///< Reservoirs 1 & 2 maximum volume out of range timeout during heat disinfect.