Index: firmware/App/Modes/PreTreatmentRecirc.c =================================================================== diff -u -r19fc8f015489be63932eed969d28329d123332e0 -r68f18c1952d37f75f27b7ca45969af2202729bb5 --- firmware/App/Modes/PreTreatmentRecirc.c (.../PreTreatmentRecirc.c) (revision 19fc8f015489be63932eed969d28329d123332e0) +++ firmware/App/Modes/PreTreatmentRecirc.c (.../PreTreatmentRecirc.c) (revision 68f18c1952d37f75f27b7ca45969af2202729bb5) @@ -32,28 +32,19 @@ #define BLOOD_PUMP_RECIRC_FLOW_RATE 100 ///< Blood pump flow rate during recirculation in mL/min. #define DIALYSATE_PUMP_RECIRC_FLOW_RATE 100 ///< Dialysate pump flow rate during recirculation in mL/min. -/// Wet self-tests state machine. -typedef enum Pre_Treatment_Recirc_State -{ - PRE_TREATMENT_RECIRC_START_STATE = 0, ///< Pre-treatment recirculate start state. - PRE_TREATMENT_RECIRC_STATE, ///< Pre-treatment recirculate state. - PRE_TREATMENT_RECIRC_STOPPED_STATE, ///< Pre-treatment recirculate stopped state. - NUM_OF_PRE_TREATMENT_RECIRC_STATES ///< Number of pre-treatment recirculate states. -} PRE_TREATMENT_RECIRC_STATE_T; - // ********** private data ********** -static PRE_TREATMENT_RECIRC_STATE_T currentPreTreatmentRecircState; ///< Current state of the pre-treatment recirculate state machine. -static BOOL recircStopRequested; ///< Flag indicates alarm requesting to stop pre-treatment recirculate. +static HD_PRE_TREATMENT_RECIRC_STATE_T currentPreTreatmentRecircState; ///< Current state of the pre-treatment recirculate state machine. static BOOL recircResumeRequested; ///< Flag indicates alarm requesting to resume pre-treatment recirculate. // ********** private function prototypes ********** static void resetPreTreatmentRecircFlags( void ); -static PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateStartState( void ); -static PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateState( void ); -static PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateStoppedState( void ); +static void setupPreTreatmentRecirculate( void ); +static HD_PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateState( void ); +static HD_PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateStoppedState( void ); + /*********************************************************************//** * @brief * The initPreTreatmentRecirc function initializes the PreTreatmentRecirc module. @@ -63,7 +54,7 @@ *************************************************************************/ void initPreTreatmentRecirc( void ) { - currentPreTreatmentRecircState = PRE_TREATMENT_RECIRC_START_STATE; + currentPreTreatmentRecircState = PRE_TREATMENT_RECIRC_STATE; resetPreTreatmentRecircFlags(); } @@ -79,6 +70,7 @@ void transitionToPreTreatmentRecirc( void ) { initPreTreatmentRecirc(); + setupPreTreatmentRecirculate(); } /*********************************************************************//** @@ -93,10 +85,6 @@ // execute pre-treatment recirculate state machine switch ( currentPreTreatmentRecircState ) { - case PRE_TREATMENT_RECIRC_START_STATE: - currentPreTreatmentRecircState = handlePreTreatmentRecirculateStartState(); - break; - case PRE_TREATMENT_RECIRC_STATE: currentPreTreatmentRecircState = handlePreTreatmentRecirculateState(); break; @@ -106,7 +94,7 @@ break; default: - currentPreTreatmentRecircState = PRE_TREATMENT_RECIRC_START_STATE; + currentPreTreatmentRecircState = PRE_TREATMENT_RECIRC_STATE; SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_HD_INVALID_PRE_TREATMENT_RECIRC_STATE, (U32)currentPreTreatmentRecircState ); break; } @@ -117,45 +105,32 @@ /*********************************************************************//** * @brief - * The signalResumePreTreatmentRecirc function signals the pre-treatment - * recirculate sub-mode to resume. - * @details Inputs: none - * @details Outputs: recircResumepRequested - * @return none + * The getPreTreatmentRecircState function returns the current state of + * pre-treatment re-circulate sub-mode. + * @details Inputs: currentPreTreatmentRecircState + * @details Outputs: none + * @return current pre-treatment re-circ state *************************************************************************/ -void signalResumePreTreatmentRecirc( void ) +U32 getPreTreatmentRecircState( void ) { - recircResumeRequested = TRUE; + return currentPreTreatmentRecircState; } /*********************************************************************//** * @brief - * The signalStopPreTreatmentRecirc function signals the pre-treatment - * recirculate sub-mode to stop when an alarm with stop property has been triggered. + * The signalResumePreTreatmentRecirc function signals the pre-treatment + * recirculate sub-mode to resume. * @details Inputs: none - * @details Outputs: recircStopRequested + * @details Outputs: recircResumepRequested * @return none *************************************************************************/ -void signalStopPreTreatmentRecirc( void ) +void signalResumePreTreatmentRecirc( void ) { - recircStopRequested = TRUE; + recircResumeRequested = TRUE; } /*********************************************************************//** * @brief - * The isPatientConnectionRequested function returns the status of patient connection request. - * @details Inputs: none - * @details Outputs: none - * @return TRUE if patient connection requested, otherwise FALSE - *************************************************************************/ -BOOL isPatientConnectionRequested( void ) -{ - // TODO Add handler to UI interaction - return TRUE; -} - -/*********************************************************************//** - * @brief * The resetPreTreatmentRecircFlags function resets all pre-treatment recirculate * signal flags. * @details Inputs: none @@ -164,19 +139,18 @@ *************************************************************************/ static void resetPreTreatmentRecircFlags( void ) { - recircStopRequested = FALSE; recircResumeRequested = FALSE; } /*********************************************************************//** * @brief - * The handlePreTreatmentRecirculateStartState function changes valves and + * The setupPreTreatmentRecirculate function setups valves and * heater settings for pre-treatment recirculate sub-mode. * @details Inputs: none * @details Outputs: controlled valves and pumps - * @return current state (sub-mode) + * @return none *************************************************************************/ -static PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateStartState( void ) +static void setupPreTreatmentRecirculate( void ) { setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); @@ -189,8 +163,6 @@ setBloodPumpTargetFlowRate( BLOOD_PUMP_RECIRC_FLOW_RATE, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( DIALYSATE_PUMP_RECIRC_FLOW_RATE, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); signalDialOutPumpHardStop(); - - return PRE_TREATMENT_RECIRC_STATE; } /*********************************************************************//** @@ -201,18 +173,17 @@ * @details Outputs: controlled valves and pumps * @return current state (sub-mode) *************************************************************************/ -static PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateState( void ) +static HD_PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateState( void ) { - PRE_TREATMENT_RECIRC_STATE_T state = PRE_TREATMENT_RECIRC_STATE; + HD_PRE_TREATMENT_RECIRC_STATE_T state = PRE_TREATMENT_RECIRC_STATE; - if ( TRUE == recircStopRequested ) + if ( TRUE == doesAlarmStatusIndicateStop() ) { signalDialOutPumpHardStop(); signalDialInPumpHardStop(); signalBloodPumpHardStop(); cmdStopDGTrimmerHeater(); - recircStopRequested = FALSE; state = PRE_TREATMENT_RECIRC_STOPPED_STATE; } @@ -227,14 +198,15 @@ * @details Outputs: resume re-circulation * @return current state (sub-mode) *************************************************************************/ -static PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateStoppedState( void ) +static HD_PRE_TREATMENT_RECIRC_STATE_T handlePreTreatmentRecirculateStoppedState( void ) { - PRE_TREATMENT_RECIRC_STATE_T state = PRE_TREATMENT_RECIRC_STOPPED_STATE; + HD_PRE_TREATMENT_RECIRC_STATE_T state = PRE_TREATMENT_RECIRC_STOPPED_STATE; if ( TRUE == recircResumeRequested ) { recircResumeRequested = FALSE; - state = PRE_TREATMENT_RECIRC_START_STATE; + state = PRE_TREATMENT_RECIRC_STATE; + setupPreTreatmentRecirculate(); } return state;