Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r03e019a69e1d0e45a95b77711270a3b1781e693d -r4b9b19de74301d92a2bc42efff445330c48cf38d --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 03e019a69e1d0e45a95b77711270a3b1781e693d) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 4b9b19de74301d92a2bc42efff445330c48cf38d) @@ -33,6 +33,7 @@ static TD_PRE_TREATMENT_MODE_STATE_T currentPreTreatmentState; ///< Current Pre-Treatment sub-state static BOOL goToInstallStateRequested; ///< Flag indicating a request to transition to Install state. +static BOOL continueFromRecirculateRequested; ///< Flag indicating a request to transition to Patient Connection state. // ********** private function prototypes ********** @@ -60,6 +61,7 @@ initTreatmentParameters(); currentPreTreatmentState = TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE; goToInstallStateRequested = FALSE; + continueFromRecirculateRequested = FALSE; } /*********************************************************************//** @@ -270,8 +272,8 @@ * @brief * The handleRecirculateState function executes the Recirculate state of * pre-treatment mode. - * @details \b Inputs: none. - * @details \b Outputs: none. + * @details \b Inputs: continueFromRecirculateRequested. + * @details \b Outputs: continueFromRecirculateRequested. * @return next Pre-Treatment mode state. *************************************************************************/ static TD_PRE_TREATMENT_MODE_STATE_T handleRecirculateState( void ) @@ -280,14 +282,20 @@ execPreTxRecirculate(); + if ( TRUE == continueFromRecirculateRequested ) + { + continueFromRecirculateRequested = FALSE; + state = TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE; + } + return state; } /*********************************************************************//** * @brief * The handleRxState function executes the Confirm Rx pre-treatment step. * @details \b Inputs: none - * @details \b Outputs: Requests transition to Treatment mode when the prescription + * @details \b Outputs: Requests transition to the next Pre-Treatment state when the prescription * is valid and confirmed otherwise remains in Confirm Rx. * @return next Pre-Treatment mode state. *************************************************************************/ @@ -303,7 +311,7 @@ TD_PRE_TREATMENT_MODE_STATE_T state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; DD_OP_MODE_T ddOpMode = getDDOpMode(); - // Valid + confirmed – move to next state: Patient Connection + // Valid + confirmed – move to next state: Recirculate State if ( ( TRUE == paramsValid ) && ( TRUE == paramsConfirmed ) ) { // TODO this command of requesting dialysate delivery will move to appropriate state in pre-treatment once implemented @@ -319,15 +327,11 @@ getTreatmentParameterU32( TREATMENT_PARAM_SODIUM ), getTreatmentParameterU32( TREATMENT_PARAM_BICARBONATE ) ); } - // TODO: when additional Pre-Treatment states are implemented, change to TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE. - // state = TD_PRE_TREATMENT_PATIENT_CONNECTION_STATE; - if ( ( ddOpMode == DD_MODE_GEND ) && ( TRUE == isDialysateGoodToDeliver ) ) - { - requestNewOperationMode( MODE_TREA ); - } - } - return state; + state = TD_PRE_TREATMENT_RECIRCULATE_STATE; + } + + return state; } /*********************************************************************//** @@ -364,6 +368,19 @@ /*********************************************************************//** * @brief + * The PreTxRequestContinueFromRecirculate function signals a request to + * transition the Pre-Treatment mode state machine to Patient Connection state. + * @details \b Inputs: none + * @details \b Outputs: continueFromRecirculateRequested + * @return none + *************************************************************************/ +void PreTxRequestContinueFromRecirculate( void ) +{ + continueFromRecirculateRequested = TRUE; +} + +/*********************************************************************//** + * @brief * The signalAlarmActionToPreTreatmentMode function executes the given alarm action * as appropriate while in Pre-Treatment Mode. * @details \b Inputs: currentPreTreatmentState Index: firmware/App/Modes/ModePreTreat.h =================================================================== diff -u -r9cc543b1c2508280767573e20eddd94e68be1fb5 -r4b9b19de74301d92a2bc42efff445330c48cf38d --- firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 9cc543b1c2508280767573e20eddd94e68be1fb5) +++ firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 4b9b19de74301d92a2bc42efff445330c48cf38d) @@ -38,6 +38,7 @@ void signalAlarmActionToPreTreatmentMode( ALARM_ACTION_T action ); // Execute alarm action as appropriate for pre-treatment mode void PreTxRequestTubeSetInstall( void ); // Request Pre-Treatment mode to transition to Install state. +void PreTxRequestContinueFromRecirculate( void ); // Request Pre-Treatment mode to transition to Patient Connection state. /**@}*/ Index: firmware/App/Modes/StatePreTxRecirculate.c =================================================================== diff -u -r2df4b8aede603cf05cd54a319d85b4fb60611487 -r4b9b19de74301d92a2bc42efff445330c48cf38d --- firmware/App/Modes/StatePreTxRecirculate.c (.../StatePreTxRecirculate.c) (revision 2df4b8aede603cf05cd54a319d85b4fb60611487) +++ firmware/App/Modes/StatePreTxRecirculate.c (.../StatePreTxRecirculate.c) (revision 4b9b19de74301d92a2bc42efff445330c48cf38d) @@ -44,9 +44,9 @@ /// Enumeration of Pre-Treatment Recirculation sub-states. typedef enum PreTxRecirculate_States { - PRE_TX_RECIRCULATE_STATE = 0, - PRE_TX_RECIRCULATE_STOPPED_STATE, - NUM_OF_PRE_TX_RECIRCULATE_STATES + PRE_TX_RECIRCULATE_STATE = 0, ///< Recirculation is active. + PRE_TX_RECIRCULATE_STOPPED_STATE, ///< Recirculation is stopped due to an alarm condition. + NUM_OF_PRE_TX_RECIRCULATE_STATES ///< Number of Pre-Treatment Recirculation sub-states. } PRE_TX_RECIRCULATE_STATE_T; // ********** private data **********