Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -red3e4d4180a4c0f08af285426c247aadfc685847 -r08aa1ee4a1cc79526979153fa4759e1df3892203 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision ed3e4d4180a4c0f08af285426c247aadfc685847) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 08aa1ee4a1cc79526979153fa4759e1df3892203) @@ -46,7 +46,6 @@ static BOOL patientConnectionConfirm; ///< Flag indicates user has confirmed patient connection complete. static BOOL treatmentStartRequested = FALSE; ///< Flag indicates user requests treatment begin. -static BOOL alarmActionStopReceived = FALSE; ///< Flag indicates an alarm w/ stop property was triggered. static BOOL alarmActionResumeReceived = FALSE; ///< Flag indicates alarm action resume received. static HD_PRE_TREATMENT_MODE_STATE_T currentPreTreatmentState; ///< Current state of pre-treatment mode state machine. @@ -103,6 +102,7 @@ setAlarmUserActionEnabled( ALARM_USER_ACTION_END_TREATMENT, TRUE ); initPreTreatmentMode(); + cmdStopDGTrimmerHeater(); } /*********************************************************************//** @@ -292,15 +292,22 @@ switch( action ) { case ALARM_ACTION_STOP: - alarmActionStopReceived = TRUE; + // Stop signal actively polled by mode/sub-mode/state break; case ALARM_ACTION_RESUME: alarmActionResumeReceived = TRUE; break; case ALARM_ACTION_END_TREATMENT: - requestNewOperationMode( MODE_STAN ); + if ( HD_PRE_TREATMENT_PRIME_STATE > currentPreTreatmentState ) + { + requestNewOperationMode( MODE_STAN ); + } + else + { + requestNewOperationMode( MODE_POST ); + } break; case ALARM_ACTION_ACK: @@ -354,7 +361,6 @@ confirmInstallRequested = FALSE; continueToTreatmentRequested = FALSE; - alarmActionStopReceived = FALSE; alarmActionResumeReceived = FALSE; } @@ -392,9 +398,10 @@ patientConnectionConfirm = FALSE; treatmentStartRequested = FALSE; + cmdStartDGTrimmerHeater(); + signalBloodPumpHardStop(); signalDialOutPumpHardStop(); - setDialInPumpTargetFlowRate( DIP_PATIENT_CONNECTION_FLOW_RATE_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); } @@ -415,6 +422,8 @@ if ( TRUE == isSampleWaterPassed() ) { state = HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE; + cmdStartDG(); + cmdSetDGDialysateTargetTemps( 39.0, 37.0 ); transitionToNoCartSelfTests(); } @@ -439,14 +448,10 @@ if ( TRUE == alarmActionResumeReceived ) { + alarmActionResumeReceived = FALSE; signalResumeSelfTests(); } - if ( TRUE == alarmActionStopReceived ) - { - signalStopSelfTests(); - } - execNoCartSelfTests(); if ( TRUE == isNoCartSelfTestsPassed() ) @@ -497,14 +502,10 @@ if ( TRUE == alarmActionResumeReceived ) { + alarmActionResumeReceived = FALSE; signalResumeSelfTests(); } - if ( TRUE == alarmActionStopReceived ) - { - signalStopSelfTests(); - } - execDrySelfTests(); if ( TRUE == isDrySelfTestsPassed() ) @@ -534,14 +535,10 @@ if ( TRUE == alarmActionResumeReceived ) { + alarmActionResumeReceived = FALSE; signalResumePrime(); } - if ( TRUE == alarmActionStopReceived ) - { - signalStopPrime(); - } - execPrime(); if ( TRUE == isPrimeCompleted() ) @@ -573,14 +570,10 @@ if ( TRUE == alarmActionResumeReceived ) { + alarmActionResumeReceived = FALSE; signalResumePreTreatmentRecirc(); } - if ( TRUE == alarmActionStopReceived ) - { - signalStopPreTreatmentRecirc(); - } - execPreTreatmentRecirc(); if ( TRUE == continueToTreatmentRequested )