Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r08aa1ee4a1cc79526979153fa4759e1df3892203 -r68f18c1952d37f75f27b7ca45969af2202729bb5 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 08aa1ee4a1cc79526979153fa4759e1df3892203) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 68f18c1952d37f75f27b7ca45969af2202729bb5) @@ -341,6 +341,7 @@ preTreatmentData.installState = 0; preTreatmentData.drySelfTestsState = getDrySelfTestsState(); preTreatmentData.primeState = getPrimeState(); + preTreatmentData.recircState = getPreTreatmentRecircState(); preTreatmentData.patientConnectionState = 0; broadcastPreTreatmentState( &preTreatmentData ); Index: firmware/App/Modes/ModePreTreat.h =================================================================== diff -u -r08aa1ee4a1cc79526979153fa4759e1df3892203 -r68f18c1952d37f75f27b7ca45969af2202729bb5 --- firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 08aa1ee4a1cc79526979153fa4759e1df3892203) +++ firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 68f18c1952d37f75f27b7ca45969af2202729bb5) @@ -40,6 +40,7 @@ U32 installState; ///< Current disposable installation state U32 drySelfTestsState; ///< Current dry self-tests state U32 primeState; ///< Current prime state + U32 recircState; ///< Current re-circulate state U32 patientConnectionState; ///< Current patient connection state } PRE_TREATMENT_STATE_DATA_T; Index: firmware/App/Modes/PreTreatmentRecirc.c =================================================================== diff -u -r08aa1ee4a1cc79526979153fa4759e1df3892203 -r68f18c1952d37f75f27b7ca45969af2202729bb5 --- firmware/App/Modes/PreTreatmentRecirc.c (.../PreTreatmentRecirc.c) (revision 08aa1ee4a1cc79526979153fa4759e1df3892203) +++ firmware/App/Modes/PreTreatmentRecirc.c (.../PreTreatmentRecirc.c) (revision 68f18c1952d37f75f27b7ca45969af2202729bb5) @@ -32,27 +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 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. @@ -62,7 +54,7 @@ *************************************************************************/ void initPreTreatmentRecirc( void ) { - currentPreTreatmentRecircState = PRE_TREATMENT_RECIRC_START_STATE; + currentPreTreatmentRecircState = PRE_TREATMENT_RECIRC_STATE; resetPreTreatmentRecircFlags(); } @@ -78,6 +70,7 @@ void transitionToPreTreatmentRecirc( void ) { initPreTreatmentRecirc(); + setupPreTreatmentRecirculate(); } /*********************************************************************//** @@ -92,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; @@ -105,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; } @@ -116,6 +105,19 @@ /*********************************************************************//** * @brief + * 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 + *************************************************************************/ +U32 getPreTreatmentRecircState( void ) +{ + return currentPreTreatmentRecircState; +} + +/*********************************************************************//** + * @brief * The signalResumePreTreatmentRecirc function signals the pre-treatment * recirculate sub-mode to resume. * @details Inputs: none @@ -142,13 +144,13 @@ /*********************************************************************//** * @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 ); @@ -161,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; } /*********************************************************************//** @@ -173,9 +173,9 @@ * @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 == doesAlarmStatusIndicateStop() ) { @@ -198,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; Index: firmware/App/Modes/PreTreatmentRecirc.h =================================================================== diff -u -r08aa1ee4a1cc79526979153fa4759e1df3892203 -r68f18c1952d37f75f27b7ca45969af2202729bb5 --- firmware/App/Modes/PreTreatmentRecirc.h (.../PreTreatmentRecirc.h) (revision 08aa1ee4a1cc79526979153fa4759e1df3892203) +++ firmware/App/Modes/PreTreatmentRecirc.h (.../PreTreatmentRecirc.h) (revision 68f18c1952d37f75f27b7ca45969af2202729bb5) @@ -37,6 +37,7 @@ void initPreTreatmentRecirc( void ); void transitionToPreTreatmentRecirc(); void execPreTreatmentRecirc( void ); +U32 getPreTreatmentRecircState( void ); void signalResumePreTreatmentRecirc( void );