Index: sources/drydemo/StateControllerHDFTreatment.cpp =================================================================== diff -u -r6c0428ed8c6430924d54d5a42c45c8ec0c16c7c2 -r521f29cb7dcd0de352dd744292488380e07cb9e3 --- sources/drydemo/StateControllerHDFTreatment.cpp (.../StateControllerHDFTreatment.cpp) (revision 6c0428ed8c6430924d54d5a42c45c8ec0c16c7c2) +++ sources/drydemo/StateControllerHDFTreatment.cpp (.../StateControllerHDFTreatment.cpp) (revision 521f29cb7dcd0de352dd744292488380e07cb9e3) @@ -87,13 +87,11 @@ msg.append(autoSubState); msg.append(_treatmentHDFVars.hdfManualRateMLPM); msg.append(5.2); - msg.append(_treatmentHDFVars.hdfCurrentRateMLPM); msg.append(5.2); msg.append(_treatmentParams.hdfSubstitutionFluidVolumeL); msg.append(_treatmentHDFVars.hdfCurrentVolumeML / MILLILITERS_PER_LITER); msg.append(static_cast(_treatmentHDFVars.hdfIsRequested)); - //qDebug() << "B" << msg; _isBroadcastListReady = false; _broadcastMessages.append(msg); _isBroadcastListReady = true; @@ -103,12 +101,18 @@ { if (_treatmentRcvdMessages[ID_UI_HDF_ADJUSTMENT_RQST].isNull()) { return; } QVariantList reason; - quint32 acceptReject = REJECT_VALUE; + quint32 acceptReject = REJECT_VALUE; + quint32 newHDFDilution = 0; - _treatmentParams.hdfDilution = extractU32DataFromReceivedMessage(ID_UI_HDF_ADJUSTMENT_RQST, 0); - _treatmentParams.hdfSubstitutionFluidVolumeL = extractF32DataFromReceivedMessage(ID_UI_HDF_ADJUSTMENT_RQST, 4); + 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); - acceptReject = ACCEPT_VALUE; + // Trigger the submode change if the dilution mode has changed + if (_treatmentParams.hdfDilution != newHDFDilution) { triggerAnAlarm(ALARM_ID_TD_HDF_SUBMODE_CHANGE); } + + _treatmentParams.hdfDilution = newHDFDilution; + acceptReject = ACCEPT_VALUE; + reason.append(REQUEST_REJECT_REASON_NONE); reason.append(REQUEST_REJECT_REASON_NONE);