Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -r8ecacdf946ecec11c2f65000876d767279cdd33a -rca8a81beba20b62acf98cea4d934354ce512bcfe --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 8ecacdf946ecec11c2f65000876d767279cdd33a) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision ca8a81beba20b62acf98cea4d934354ce512bcfe) @@ -64,7 +64,8 @@ static UF_STATE_T handleUFStartState( void ); static UF_STATE_T handleUFPausedState( void ); static UF_STATE_T handleUFRunningState( void ); -static UF_STATE_T handleUFCompletedOrOffState( void ); +static UF_STATE_T handleUFOffState( void ); +static UF_STATE_T handleUFCompletedState( void ); static void checkUF( void ); static void updateUFVolumes( void ); @@ -347,10 +348,14 @@ currentUFState = handleUFRunningState(); break; - case UF_COMPLETED_OR_OFF_STATE: - currentUFState = handleUFCompletedOrOffState(); + case UF_OFF_STATE: + currentUFState = handleUFOffState(); break; + case UF_COMPLETED_STATE: + currentUFState = handleUFCompletedState(); + break; + default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_DIALYSIS_INVALID_UF_STATE, currentUFState ) break; @@ -393,7 +398,7 @@ if ( maxUFVolumeML < NEARLY_ZERO ) { - result = UF_COMPLETED_OR_OFF_STATE; + result = UF_OFF_STATE; } else { @@ -457,7 +462,7 @@ // if we've reached target UF volume, UF is complete if ( measUFVolume >= maxUFVolumeML ) { - result = UF_COMPLETED_OR_OFF_STATE; + result = UF_OFF_STATE; } // TODO - test code - remove later @@ -472,26 +477,39 @@ /*********************************************************************//** * @brief - * The handleUFCompletedOrOffState function handles the UF Completed or Off \n - * state of the ultrafiltration state machine. + * The handleUFCompletedOrOffState function handles the UF Off state \n + * of the ultrafiltration state machine. * @details * Inputs : none * Outputs : UF volumes updated and provided to DPo pump controller. * @return next ultrafiltration state *************************************************************************/ -static UF_STATE_T handleUFCompletedOrOffState( void ) +static UF_STATE_T handleUFOffState( void ) { - UF_STATE_T result = UF_COMPLETED_OR_OFF_STATE; + UF_STATE_T result = UF_OFF_STATE; // calculate UF volumes and provide to dialysate outlet pump controller updateUFVolumes(); - // TODO - test code - remove later - if ( TRUE == isStopButtonPressed() ) - { - // do nothing - } + return result; +} +/*********************************************************************//** + * @brief + * The handleUFCompletedState function handles the UF Completed \n + * state of the ultrafiltration state machine. This is a terminal state. + * @details + * Inputs : none + * Outputs : UF volumes updated and provided to DPo pump controller. + * @return next ultrafiltration state + *************************************************************************/ +static UF_STATE_T handleUFCompletedState( void ) +{ + UF_STATE_T result = UF_COMPLETED_STATE; + + // calculate UF volumes and provide to dialysate outlet pump controller + updateUFVolumes(); + return result; } Index: firmware/App/Modes/Dialysis.h =================================================================== diff -u -rd86855d12f5103fc16e2e06e267da237c8d549d7 -rca8a81beba20b62acf98cea4d934354ce512bcfe --- firmware/App/Modes/Dialysis.h (.../Dialysis.h) (revision d86855d12f5103fc16e2e06e267da237c8d549d7) +++ firmware/App/Modes/Dialysis.h (.../Dialysis.h) (revision ca8a81beba20b62acf98cea4d934354ce512bcfe) @@ -44,7 +44,8 @@ UF_START_STATE = 0, ///< Start state of the ultrafiltration state machine. UF_PAUSED_STATE, ///< Paused state of the ultrafiltration state machine. UF_RUNNING_STATE, ///< Running state of the ultrafiltration state machine. - UF_COMPLETED_OR_OFF_STATE, ///< Completed/off state of the ultrafiltration state machine. + UF_OFF_STATE, ///< Completed/off state of the ultrafiltration state machine. + UF_COMPLETED_STATE, ///< Completed state of ultrafiltration state machine. NUM_OF_UF_STATES ///< Number of ultrafiltration states. } UF_STATE_T;