Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -rf5e2cabefb2f3d4757c150e9de136d5249b1e019 -r6d500da57b7590f105f7b39261af4321998d2175 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision f5e2cabefb2f3d4757c150e9de136d5249b1e019) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 6d500da57b7590f105f7b39261af4321998d2175) @@ -75,9 +75,8 @@ // ********** private function prototypes ********** -static HD_POST_TREATMENT_STATE_T handlePostTreatmentDrainReservoirsState( void ); static HD_POST_TREATMENT_STATE_T handlePostTreatmentPatientDisconnectionState( void ); -static HD_POST_TREATMENT_STATE_T handlePostTreatmentDisposableRemovalState( void ); +static HD_POST_TREATMENT_STATE_T handlePostTreatmentDrainReservoirsState( void ); static HD_POST_TREATMENT_STATE_T handlePostTreatmentVerifyState( void ); static void execDrainReservoirs( void ); @@ -158,16 +157,12 @@ switch ( currentPostTreatmentState ) { - case HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE: - currentPostTreatmentState = handlePostTreatmentDrainReservoirsState(); - break; - case HD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE: currentPostTreatmentState = handlePostTreatmentPatientDisconnectionState(); break; - case HD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE: - currentPostTreatmentState = handlePostTreatmentDisposableRemovalState(); + case HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE: + currentPostTreatmentState = handlePostTreatmentDrainReservoirsState(); break; case HD_POST_TREATMENT_VERIFY_STATE: @@ -318,28 +313,6 @@ /*********************************************************************//** * @brief - * The handlePostTreatmentDrainReservoirsState function executes drain reservoirs - * operation state machine and transition to next state once completed. - * @details Inputs: currentDrainReservoirState - * @details Outputs: executed drain reservoirs operation state machine. - * @return current state (sub-mode) - *************************************************************************/ -static HD_POST_TREATMENT_STATE_T handlePostTreatmentDrainReservoirsState( void ) -{ - HD_POST_TREATMENT_STATE_T state = HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE; - - execDrainReservoirs(); - - if ( DRAIN_COMPLETE_STATE == currentDrainReservoirState ) - { - state = HD_POST_TREATMENT_PATIENT_DISCONNECTION_STATE; - } - - return state; -} - -/*********************************************************************//** - * @brief * The handlePostTreatmentPatientConnectionState function waits for user * confirms patient disconnection. * @details Inputs: none @@ -361,11 +334,12 @@ if ( TRUE == patientDisconnectionConfirmed ) { patientDisconnectionConfirmed = FALSE; - state = HD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE; + state = HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE; for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) { setValvePosition( valve, VALVE_POSITION_A_INSERT_EJECT ); + homeValve( valve ); } homeBloodPump(); @@ -388,24 +362,28 @@ /*********************************************************************//** * @brief - * The handlePostTreatmentDisposableRemovalState function waits for user - * to confirm disposable removal. - * @details Inputs: disposableRemovalConfirmed - * @details Outputs: processed disposable removal confirmation + * The handlePostTreatmentDrainReservoirsState function executes drain reservoirs + * operation state machine and transition to next state once completed. + * @details Inputs: currentDrainReservoirState + * @details Outputs: executed drain reservoirs operation state machine. * @return current state (sub-mode) *************************************************************************/ -static HD_POST_TREATMENT_STATE_T handlePostTreatmentDisposableRemovalState( void ) +static HD_POST_TREATMENT_STATE_T handlePostTreatmentDrainReservoirsState( void ) { - HD_POST_TREATMENT_STATE_T state = HD_POST_TREATMENT_DISPOSABLE_REMOVAL_STATE; + HD_POST_TREATMENT_STATE_T state = HD_POST_TREATMENT_DRAIN_RESERVOIRS_STATE; -#ifdef SKIP_UI_INTERACTION - disposableRemovalConfirmed = TRUE; -#endif + execDrainReservoirs(); - if ( TRUE == disposableRemovalConfirmed ) + if ( DRAIN_COMPLETE_STATE == currentDrainReservoirState ) { - disposableRemovalConfirmed = FALSE; - state = HD_POST_TREATMENT_VERIFY_STATE; +#ifdef SKIP_UI_INTERACTION + disposableRemovalConfirmed = TRUE; +#endif + if ( TRUE == disposableRemovalConfirmed ) + { + disposableRemovalConfirmed = FALSE; + state = HD_POST_TREATMENT_VERIFY_STATE; + } } return state; @@ -531,13 +509,8 @@ if ( ( DG_MODE_GENE == getDGOpMode() ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getDGSubMode() ) ) { - cmdSetDGActiveReservoir( DG_RESERVOIR_1 ); - - if ( TRUE == hasDGCompletedReservoirSwitch() ) - { - state = DRAIN_FIRST_RESERVOIR_STATE; - cmdStartDGDrain( DRAIN_RESERVOIR_TO_VOLUME_ML, TRUE ); - } + state = DRAIN_FIRST_RESERVOIR_STATE; + cmdStartDGDrain( DRAIN_RESERVOIR_TO_VOLUME_ML, TRUE ); } return state;