Index: sources/drydemo/StateControllerHDFTreatment.cpp =================================================================== diff -u -r521f29cb7dcd0de352dd744292488380e07cb9e3 -re8edefcae8e47854198b06c1a65e4e45da5f3afc --- sources/drydemo/StateControllerHDFTreatment.cpp (.../StateControllerHDFTreatment.cpp) (revision 521f29cb7dcd0de352dd744292488380e07cb9e3) +++ sources/drydemo/StateControllerHDFTreatment.cpp (.../StateControllerHDFTreatment.cpp) (revision e8edefcae8e47854198b06c1a65e4e45da5f3afc) @@ -13,6 +13,7 @@ _treatmentHDFVars.hdfControlTimeCtr = 0; _treatmentHDFVars.hdfHasMaxVolumeBeenReached = false; _treatmentHDFVars.hdfIsRequested = true; + _treatmentHDFVars.hdfPrevIsRequested = true; } float StateController::handleHDFCheckRate(const float proposedRateMLPM, const bool initRate) @@ -107,8 +108,10 @@ newHDFDilution = extractU32DataFromReceivedMessage(ID_UI_HDF_ADJUSTMENT_RQST, HDF_ADJ_MSG_DILUTION_INDEX); _treatmentParams.hdfSubstitutionFluidVolumeL = extractF32DataFromReceivedMessage(ID_UI_HDF_ADJUSTMENT_RQST, HDF_ADJ_MSG_FLUID_VOL_INDEX); - // Trigger the submode change if the dilution mode has changed - if (_treatmentParams.hdfDilution != newHDFDilution) { triggerAnAlarm(ALARM_ID_TD_HDF_SUBMODE_CHANGE); } + // Trigger the submode change if the dilution mode has changed. Set HDF to pause until the alarm is cleared + if (_treatmentParams.hdfDilution != newHDFDilution) { + triggerAnAlarm(ALARM_ID_TD_HDF_SUBMODE_CHANGE); + } _treatmentParams.hdfDilution = newHDFDilution; acceptReject = ACCEPT_VALUE;