Index: sources/drydemo/StateControllerTreatment.cpp =================================================================== diff -u -rfb3e70cb47f3d22f31f68358c1bda69cce9cd248 -rb9f4ddeb2dec3019b87c712bfe64b8df1d4b328c --- sources/drydemo/StateControllerTreatment.cpp (.../StateControllerTreatment.cpp) (revision fb3e70cb47f3d22f31f68358c1bda69cce9cd248) +++ sources/drydemo/StateControllerTreatment.cpp (.../StateControllerTreatment.cpp) (revision b9f4ddeb2dec3019b87c712bfe64b8df1d4b328c) @@ -16,6 +16,21 @@ return rampStepML; } +void StateController::handleBloodPrimePauseResume(bool &resume) +{ + if (_treatmentRcvdMessages[ID_UI_BLOOD_PRIME_CMD_RQST].isNull()) { return; } + + handleUIResponseMessage(ID_TD_BLOOD_PRIME_CMD_RESP, ACCEPT_VALUE); + + quint32 resumeStatus = extractU32DataFromReceivedMessage(ID_UI_BLOOD_PRIME_CMD_RQST, 0); + + resume = (resumeStatus == BLOOD_PRIME_RESUME ? true : false); + _treatmentSubStates.bloodPrimeState = (resumeStatus == BLOOD_PRIME_RESUME ? BLOOD_PRIME_RUN_STATE : BLOOD_PRIME_PAUSED_STATE); + // Send the results immediately + handleTreatmentStatesBroadcastData(BC_IMMEDIATELY); + _treatmentRcvdMessages[ID_UI_BLOOD_PRIME_CMD_RQST].clear(); +} + void StateController::handleBloodPrimeVolML(const bool resume, const float rampStepML, const bool hasFlowChanged, quint32 &currBloodFlowMLPM, float &accumBloodVolML) { @@ -58,7 +73,7 @@ pauseCountDownS = 0; elapsedTimeSincePauseS = 0; handleBloodPrimeBroadcastData(accumBloodVolML, primeTimeoutS, pauseCountDownS, BC_IMMEDIATELY); - qDebug() << "Current" << currBloodFlowMLPM << _treatmentParams.bloodFlowRateMLPM << controlCounter << accumBloodVolML; + //qDebug() << "Current" << currBloodFlowMLPM << _treatmentParams.bloodFlowRateMLPM << controlCounter << accumBloodVolML; } void StateController::setTreatmentParametersToDefault() @@ -140,63 +155,69 @@ void StateController::handleTreatmentPrescriptionEditRequestMessage() { - if (! _treatmentRcvdMessages[ID_UI_TREATMENT_SET_POINTS_CHANGE_RQST].isNull()){ + if (_treatmentRcvdMessages[ID_UI_TREATMENT_SET_POINTS_CHANGE_RQST].isNull()) { return; } - // TODO range check the parameters - QVariantList resp; - resp.append(static_cast(ID_TD_TREATMENT_SET_POINTS_CHANGE_RESP)); - resp.append(Can_Id::eChlid_TD_UI); - resp.append(ACCEPT_VALUE); + // TODO range check the parameters + QVariantList resp; + resp.append(static_cast(ID_TD_TREATMENT_SET_POINTS_CHANGE_RESP)); + resp.append(Can_Id::eChlid_TD_UI); + resp.append(ACCEPT_VALUE); - QVariant payload = _treatmentRcvdMessages[ID_UI_TREATMENT_SET_POINTS_CHANGE_RQST]; - qint32 index = 0; - Types::U32 u32Var; - Types::F32 f32Var; + QVariant payload = _treatmentRcvdMessages[ID_UI_TREATMENT_SET_POINTS_CHANGE_RQST]; + qint32 index = 0; - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.bloodFlowRateMLPM = u32Var.value; - resp.append(0); + Types::U32 u32Var; + Types::F32 f32Var; - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.dialysateFlowRateMLPM = u32Var.value; - resp.append(0); + GetValue(payload.toByteArray(), index, u32Var); + _treatmentParams.bloodFlowRateMLPM = u32Var.value; + resp.append(0); - GetValue(payload.toByteArray(), index, f32Var); - _treatmentParams.dialysateTemperatureC = f32Var.value; - resp.append(0); + GetValue(payload.toByteArray(), index, u32Var); + _treatmentParams.dialysateFlowRateMLPM = u32Var.value; + resp.append(0); - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.acidConcentrate = u32Var.value; - resp.append(0); + GetValue(payload.toByteArray(), index, f32Var); + _treatmentParams.dialysateTemperatureC = f32Var.value; + resp.append(0); - GetValue(payload.toByteArray(), index, f32Var); - _treatmentParams.acidKConcentrateConversionFactor = f32Var.value; - resp.append(0); + GetValue(payload.toByteArray(), index, u32Var); + qDebug() << "Old conc" << _treatmentParams.acidConcentrate; + if (_treatmentParams.acidConcentrate != u32Var.value) { + qDebug() << "New conc" << _treatmentParams.acidConcentrate; + triggerAnAlarm(ALARM_ID_TD_REPLACE_ACID_JUG); + } - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.bicarbobateMEQL = u32Var.value; - resp.append(0); + _treatmentParams.acidConcentrate = u32Var.value; + resp.append(0); - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.treatmentModality = u32Var.value; - resp.append(0); + GetValue(payload.toByteArray(), index, f32Var); + _treatmentParams.acidKConcentrateConversionFactor = f32Var.value; + resp.append(0); - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.hepatitisBStatus = u32Var.value; - resp.append(0); + GetValue(payload.toByteArray(), index, u32Var); + _treatmentParams.bicarbobateMEQL = u32Var.value; + resp.append(0); - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.sodiumMEQL = u32Var.value; - resp.append(0); + GetValue(payload.toByteArray(), index, u32Var); + _treatmentParams.treatmentModality = u32Var.value; + resp.append(0); - GetValue(payload.toByteArray(), index, u32Var); - _treatmentParams.bicarbobateMEQL = u32Var.value; - resp.append(0); - _isSendListReady = false; - _sendMessages.append(resp); - _isSendListReady = true; - _treatmentRcvdMessages[ID_UI_TREATMENT_SET_POINTS_CHANGE_RQST].clear(); - } + GetValue(payload.toByteArray(), index, u32Var); + _treatmentParams.hepatitisBStatus = u32Var.value; + resp.append(0); + + GetValue(payload.toByteArray(), index, u32Var); + _treatmentParams.sodiumMEQL = u32Var.value; + resp.append(0); + + GetValue(payload.toByteArray(), index, u32Var); + _treatmentParams.bicarbobateMEQL = u32Var.value; + resp.append(0); + _isSendListReady = false; + _sendMessages.append(resp); + _isSendListReady = true; + _treatmentRcvdMessages[ID_UI_TREATMENT_SET_POINTS_CHANGE_RQST].clear(); } void StateController::handleSetPointBloodFlowChange(quint32 &bloodFlowMLPM, bool &hasBloodFlowChanged)