Index: sources/drydemo/StateControllerStandby.cpp =================================================================== diff -u -r4624d7657d342248336c1ff16edfae614c335728 -r0deaf8f3e192a0ecde953ab65efc1ded1c06269b --- sources/drydemo/StateControllerStandby.cpp (.../StateControllerStandby.cpp) (revision 4624d7657d342248336c1ff16edfae614c335728) +++ sources/drydemo/StateControllerStandby.cpp (.../StateControllerStandby.cpp) (revision 0deaf8f3e192a0ecde953ab65efc1ded1c06269b) @@ -15,7 +15,6 @@ Generic_Confirm_Id id = static_cast(msgPayload); Confirmation_Status status = static_cast(confirmStatus); - // TODO why the reject is sent anways? _uiConfirmMessages[id].confirmStatus = status; qDebug() << "New Message Confirm" << id << status; _treatmentRcvdMessages[ID_UI_CONFIRMATION_RESULT_RESP].clear(); @@ -89,7 +88,7 @@ _isSendListReady = true; } -void StateController::resetDryDemoVariables() +void StateController::initializeDryDemoVariables() { _treatmentStatus.hasTxParamsBeenInitialized = false; _treatmentStatus.requestTreatmentReset = true; @@ -195,9 +194,15 @@ triggerAnAlarm(ALARM_ID_NO_ALARM); break; + case ALARM_USER_ACTION_ACK: + triggerAnAlarm(ALARM_ID_NO_ALARM); + break; + case ALARM_USER_ACTION_RINSEBACK: case ALARM_USER_ACTION_TEMPOARY_BREAK: handleSendUIConfirmationMessage(GENERIC_CONFIRM_ID_RINSEBACK, GENERIC_CONFIRM_CMD_REQUEST_OPEN); + // Set the flag to go to recirculate + if (userAction == ALARM_USER_ACTION_TEMPOARY_BREAK) { _treatmentStatus.hasRecircBeenRequested = true; } break; case ALARM_USER_ACTION_END_TREATMENT: @@ -245,7 +250,7 @@ } // Wait for a couple of seconds to simulate like the conductivity is getting in range elapsedTimeMS = (_elapsedTimeCtr - _treatmentStatus.triggerAlarmTimeoutCtr) * QOBJECT_TIMER_TIMEOUT_MS; - if (elapsedTimeMS == CLEAR_DIAL_PROPOR_TIMEOUT_MS) { + if (elapsedTimeMS >= CLEAR_DIAL_PROPOR_TIMEOUT_MS) { // Proportioning alarm is cleared automatically triggerAnAlarm(ALARM_ID_NO_ALARM); _treatmentStatus.txPauseSeqAlarmState = SEQ_ALARM_DRY_BICARB_CARTRIDGE; @@ -289,7 +294,7 @@ case SEQ_ALARM_PROPORTIONING_BICARB_IN_PROG: // Wait for a couple of seconds to simulate like the conductivity is getting in range elapsedTimeMS = (_elapsedTimeCtr - _treatmentStatus.triggerAlarmTimeoutCtr) * QOBJECT_TIMER_TIMEOUT_MS; - if (elapsedTimeMS == CLEAR_DIAL_PROPOR_TIMEOUT_MS) { + if (elapsedTimeMS >= CLEAR_DIAL_PROPOR_TIMEOUT_MS) { // This alarm is cleared automatically triggerAnAlarm(ALARM_ID_NO_ALARM); _treatmentStatus.triggerAlarmTimeoutCtr = _elapsedTimeCtr; @@ -330,29 +335,24 @@ return; } - // TODO why the reject is sent anways? - //if (_uiConfirmMessages[confirmID].confirmStatus == CONFIRMATION_REQUEST_STATUS_REJECTED) { - // handleSendUIConfirmationMessage(confirmID, GENERIC_CONFIRM_CMD_ACCEPT_CLOSE); - // qDebug() << "Reject"; - // _uiConfirmMessages[confirmID].confirmStatus = CONFIRMATION_REQUEST_STATUS_UNUSED; - // return; - //} - // TODO uncomment - + if (_uiConfirmMessages[confirmID].confirmStatus == CONFIRMATION_REQUEST_STATUS_REJECTED) { + handleSendUIConfirmationMessage(confirmID, GENERIC_CONFIRM_CMD_ACCEPT_CLOSE); + _uiConfirmMessages[confirmID].confirmStatus = CONFIRMATION_REQUEST_STATUS_UNUSED; + qDebug() << "Reject"; + return; + } switch (confirmID) { case GENERIC_CONFIRM_ID_TREATMENT_END: if (_uiConfirmMessages[confirmID].confirmStatus == CONFIRMATION_REQUEST_STATUS_ACCEPTED) { QStringList activeStates = _dryDemo.activeStateNames(true); // Check if there is at least one value in the string list to prevent segmentatoin fault QString activeState = (activeStates.length() >= 1 ? activeStates[0] : ""); - if (activeState == "Treatment_Recirculate") { - _treatmentStatus.stateTransitionEvent = "T_RC_2_TE"; - } - else if (activeState == "Treatment_Rinseback") { - _treatmentStatus.stateTransitionEvent = "T_RB_2_TE"; - } - status = STATE_ON_EXIT; + if (activeState == "Treatment_Recirculate") { _treatmentStatus.stateTransitionEvent = "T_RC_2_Posttx"; } + else if (activeState == "Treatment_Rinseback") { _treatmentStatus.stateTransitionEvent = "T_RB_2_Posttx"; } + else if (activeState == "Treatment_End") { _treatmentStatus.stateTransitionEvent = "T_TE_2_RB"; } + else if (activeState == "Treatment_Pause") { _treatmentStatus.stateTransitionEvent = "T_TP_2_RB"; } _uiConfirmMessages[confirmID].confirmStatus = CONFIRMATION_REQUEST_STATUS_UNUSED; + status = STATE_ON_EXIT; qDebug() << "Event" << activeState << _treatmentStatus.stateTransitionEvent << _dryDemo.activeStateNames(true); handleSendUIConfirmationMessage(confirmID, GENERIC_CONFIRM_CMD_ACCEPT_CLOSE); triggerAnAlarm(ALARM_ID_NO_ALARM); @@ -394,7 +394,9 @@ void StateController::handleSendUIConfirmationMessage(const Generic_Confirm_Id confirmID, const Generic_Confirm_Command confirmCmd, const Reject_Reasons rejectReason) { qDebug() << "Sneding" << confirmID; - _uiConfirmMessages[confirmID].startTimeMS = QDateTime::currentMSecsSinceEpoch(); + _uiConfirmMessages[confirmID].startTimeMS = QDateTime::currentMSecsSinceEpoch(); + // Setting the confirm status to pending because the default status is rejected + _uiConfirmMessages[confirmID].confirmStatus = CONFIRMATION_REQUEST_STATUS_PENDING; QVariantList resp; resp.append(static_cast(ID_TD_UI_GENERIC_CONFIRMATION_RQST));