Index: sources/drydemo/StateControllerStandby.cpp =================================================================== diff -u -rbb80bbccaf1c911be48493868c18c656d84b2ec1 -rfb3e70cb47f3d22f31f68358c1bda69cce9cd248 --- sources/drydemo/StateControllerStandby.cpp (.../StateControllerStandby.cpp) (revision bb80bbccaf1c911be48493868c18c656d84b2ec1) +++ sources/drydemo/StateControllerStandby.cpp (.../StateControllerStandby.cpp) (revision fb3e70cb47f3d22f31f68358c1bda69cce9cd248) @@ -16,7 +16,6 @@ } return false; } - msgPayload = extractU32DataFromReceivedMessage(ID_UI_CONFIRMATION_RESULT_RESP, UI_MSG_BB_STATUS_INDEX); _treatmentStatus.userCmd = static_cast(msgPayload); _treatmentRcvdMessages[ID_UI_CONFIRMATION_RESULT_RESP].clear(); @@ -78,7 +77,7 @@ _treatmentStatus.totalFluidBolusDeliveredML = 0.0; _treatmentStatus.accumFluidBolusDeliveredML = 0.0; _treatmentSubStates.fluidBolusState = FLUID_BOLUS_IDLE_STATE; - _treatmentSubStates.txStates = TREAT_START_STATE; + _treatmentSubStates.txState = TREAT_START_STATE; _treatmentSubStates.rinsebackState = RINSEBACK_STOP_INIT_STATE; _treatmentStatus.ufVolDeliveredL = 0.0; _treatmentStatus.hasRecircBeenRequested = false; @@ -106,35 +105,42 @@ _isSendListReady = true; } -void StateController::handleAlarmUserAction(State_Status &status) +void StateController::handleAlarmUserAction(State_Status &status, bool isFromTxPause) { if (_treatmentRcvdMessages[ID_UI_ALARM_USER_ACTION_REQUEST].isNull()) { return; } quint32 userAction = extractU32DataFromReceivedMessage(ID_UI_ALARM_USER_ACTION_REQUEST, 0); switch (userAction) { case ALARM_USER_ACTION_RESUME: - _treatmentSubStates.dialysisSubState = DIALYSIS_UF_STATE; - _treatmentSubStates.txStates = TREAT_DIALYSIS_STATE; - _treatmentStatus.stateTransitionEvent = "T_TP_2_Tx"; + // If we are in treatment pause return back to treatment, otherwise just clear the alarm + if (isFromTxPause) { + _treatmentSubStates.dialysisSubState = DIALYSIS_UF_STATE; + _treatmentSubStates.txState = TREAT_DIALYSIS_STATE; + _treatmentStatus.stateTransitionEvent = "T_TP_2_Tx"; + // User action has been selected so do not stay in treatment pause + status = STATE_ON_EXIT; + } break; case ALARM_USER_ACTION_RINSEBACK: case ALARM_USER_ACTION_TEMPOARY_BREAK: _treatmentStatus.stateTransitionEvent = "T_TP_2_RB"; + // User action has been selected so do not stay in treatment pause + status = STATE_ON_EXIT; break; case ALARM_USER_ACTION_END_TREATMENT: _treatmentStatus.stateTransitionEvent = "T_TP_2_TE"; + // User action has been selected so do not stay in treatment pause + status = STATE_ON_EXIT; break; default: // Do nothing break; } - // User action has been selected so do not stay in treatment pause - status = STATE_ON_EXIT; triggerAnAlarm(ALARM_ID_NO_ALARM); QVariantList msg; @@ -158,8 +164,12 @@ switch (confirmID) { case GENERIC_CONFIRM_ID_TREATMENT_END: if (_uiConfirmMessages[confirmID][UI_CONFIRM_MSG_STATUS_INDEX].toUInt() == CONFIRMATION_REQUEST_STATUS_ACCEPTED) { - _treatmentStatus.stateTransitionEvent = "T_RB_2_TE"; + QStringList activeStates = _dryDemo.activeStateNames(true); + QString activeState = activeStates[0]; + _treatmentStatus.stateTransitionEvent = (activeState == "Treatment_Recirculate" ? "T_RC_2_TE" : "T_RB_2_TE"); + //_treatmentStatus.stateTransitionEvent = "T_RB_2_TE"; status = STATE_ON_EXIT; + qDebug() << "Event" << _treatmentStatus.stateTransitionEvent << _dryDemo.activeStateNames(true); } handleSendUIConfirmationMessage(confirmID, cmd); _uiConfirmMessages.remove(confirmID);