Index: sources/drydemo/StateController.cpp =================================================================== diff -u -r3a1edf1c2dc6f68d32af3adeeee4a59bbac739c5 -r7094c1e2387d63fc7fb9d6d9a09ea0aee3c71420 --- sources/drydemo/StateController.cpp (.../StateController.cpp) (revision 3a1edf1c2dc6f68d32af3adeeee4a59bbac739c5) +++ sources/drydemo/StateController.cpp (.../StateController.cpp) (revision 7094c1e2387d63fc7fb9d6d9a09ea0aee3c71420) @@ -39,12 +39,14 @@ _transitionEventsFromStandby[CMD_END_TX ] = {"T_SB_2_TE" , static_cast(MODE_TREA)}; // Alarms specs and properties - _alarmTriggerSpecs[ALARM_ID_NO_ALARM ] = {ALARM_PRIORITY_NONE, ALARM_NO_ALARM_PROPERTIES , ALARM_NOT_TRANS_TO_TX_PAUSE}; - _alarmTriggerSpecs[ALARM_ID_TD_VENOUS_PRESSURE_LOW ] = {ALARM_PRIORITY_HIGH, ALARM_LOW_VENOUS_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; - _alarmTriggerSpecs[ALARM_ID_TD_REPLACE_ACID_JUG ] = {ALARM_PRIORITY_HIGH, ALARM_REPLACE_ACID_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; - _alarmTriggerSpecs[ALARM_ID_TD_TREATMENT_STOPPED_BY_USER ] = {ALARM_PRIORITY_HIGH, ALARM_STOP_TX_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; - _alarmTriggerSpecs[ALARM_ID_TD_RECIRC_TIMEOUT_WARNING ] = {ALARM_PRIORITY_LOW , ALARM_RECIRC_WARN_PROPERTIES , ALARM_NOT_TRANS_TO_TX_PAUSE}; - _alarmTriggerSpecs[ALARM_ID_TD_RECIRC_TIMEOUT ] = {ALARM_PRIORITY_HIGH, ALARM_RECIR_TIMEOUT_RPOPERTIES, ALARM_NOT_TRANS_TO_TX_PAUSE}; + _alarmTriggerSpecs[ALARM_ID_NO_ALARM ] = {ALARM_PRIORITY_NONE , ALARM_NO_ALARM_PROPERTIES , ALARM_NOT_TRANS_TO_TX_PAUSE}; + _alarmTriggerSpecs[ALARM_ID_TD_VENOUS_PRESSURE_LOW ] = {ALARM_PRIORITY_HIGH , ALARM_LOW_VENOUS_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; + _alarmTriggerSpecs[ALARM_ID_TD_TREATMENT_STOPPED_BY_USER ] = {ALARM_PRIORITY_HIGH , ALARM_STOP_TX_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; + _alarmTriggerSpecs[ALARM_ID_TD_RECIRC_TIMEOUT_WARNING ] = {ALARM_PRIORITY_LOW , ALARM_RECIRC_WARN_PROPERTIES , ALARM_NOT_TRANS_TO_TX_PAUSE}; + _alarmTriggerSpecs[ALARM_ID_TD_RECIRC_TIMEOUT ] = {ALARM_PRIORITY_HIGH , ALARM_RECIR_TIMEOUT_RPOPERTIES , ALARM_NOT_TRANS_TO_TX_PAUSE}; + _alarmTriggerSpecs[ALARM_ID_DD_REPLACE_ACID_CONCENTRATE ] = {ALARM_PRIORITY_MEDIUM , ALARM_REPLACE_ACID_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; + _alarmTriggerSpecs[ALARM_ID_DD_REPLACE_BICARB_CARTRIDGE ] = {ALARM_PRIORITY_MEDIUM , ALARM_REPLACE_BICARB_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; + _alarmTriggerSpecs[ALARM_ID_TD_DIALYSATE_PROPORTIONING_IN_PROGRESS ] = {ALARM_PRIORITY_MEDIUM , ALARM_DIAL_PROPOR_PROPERTIES , ALARM_TRANS_TO_TX_PAUSE }; } void StateController::quit() @@ -92,8 +94,9 @@ //// and processed case ID_UI_ADJUST_DISPOSABLES_CONFIRM_RQST: case ID_UI_ADJUST_START_TREATMENT_RQST: + case ID_UI_PRESSURE_LIMIT_WIDEN_RQST: _treatmentRcvdMessages[receivedMsgID] = 0; - break; + break; case ID_NONE: case ID_TD_OP_MODE_DATA: @@ -110,7 +113,6 @@ case ID_TD_FLUID_BOLUS_RESP: case ID_TD_FLUID_BOLUS_DATA: case ID_TD_PRESSURE_DATA: - case ID_UI_PRESSURE_LIMIT_WIDEN_RQST: case ID_TD_PRESSURE_LIMIT_WIDEN_RESP: case ID_TD_TREATMENT_SET_POINTS_CHANGE_RESP: case ID_DD_GEN_DIALYSATE_MODE_DATA: @@ -295,9 +297,12 @@ handleBackToStandbyEvent(status); handleBloodPrimePauseResume(resume); handleSetPointBloodFlowChange(currBloodFlowMLPM, hasFlowChngeRequested); + // Pressure methods handlePressureLimitState(); handleTDPressureBroadcastData(BC_DELAYED); handleDeterminePressureLimits(); + handleWidenPressureLimitsMessage(); + // Pressure methods handleFluidBolusRequestMessage(); if (_treatmentSubStates.fluidBolusState == FLUID_BOLUS_SALINE_IN_PROGRESS_STATE){ handleFluidBolusFluidDelivery(currBloodFlowMLPM); @@ -380,10 +385,12 @@ handleDDConductivityBroadcastData(BC_DELAYED); handleSetPointDialysateFlowChange(); handleSetPointDialysateTemperatureChange(); + // Pressure functions handlePressureLimitState(); handleTDPressureBroadcastData(BC_DELAYED); handleDeterminePressureLimits(); - // UF functions funcntios + handleWidenPressureLimitsMessage(); + // UF functions functions handleUltrafiltrationPauseResume(); handleUltrafiltrationVolumeChangeValidation(); handleUltrafiltrationVolumeChangeConfirm(); @@ -393,8 +400,8 @@ handleTreatmentTimeChangeValidation(); handleTreatmentTimeChangeConfirm(); // Alarm methods + handleChemsReplacementAlarmsSequence(status); handleTriggeredAlarmsToTxPause(status); - handleTriggerLowVenousAlarmInTx(); // Treatment complete condition if ((_treatmentStatus.treatmentElapsedTimeMS / MILLISECONDS_PER_SECOND) > (_treatmentParams.treatmentDurationMin * SECONDS_PER_MINUTE)) { @@ -442,10 +449,16 @@ status = STATE_ON_ACTION; handleBackToStandbyEvent(status); handleAlarmUserAction(status, true); + // NOTE: This handleAlarmSequenceInTxPause method must be after handleAlarmUserAction to make sure + // the sequential alarms are handled properly and they are not transitioning back to treatment after + // clearing any alarm + handleChemsReplacementAlarmsSequence(status); handleTDOpModeTransitionBroadcastData(MODE_TREA, 0, BC_DELAYED); + // Pressure functions handlePressureLimitState(); handleTDPressureBroadcastData(BC_DELAYED); handleDeterminePressureLimits(); + handleWidenPressureLimitsMessage(); }; auto onExit = [=](){ @@ -492,6 +505,7 @@ handlePressureLimitState(); handleTDPressureBroadcastData(BC_DELAYED); handleDeterminePressureLimits(); + handleWidenPressureLimitsMessage(); handleUIConfirmMessage(GENERIC_CONFIRM_ID_TREATMENT_END, status); if (_treatmentStatus.hasRecircBeenRequested) { _treatmentStatus.stateTransitionEvent = "T_RB_2_RC";