Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r1fa3d19e3ca08af7cedbf481265989830dba2627 -r35f1db1a4e254a69234e50082d0cce0122e6a84c --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 1fa3d19e3ca08af7cedbf481265989830dba2627) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 35f1db1a4e254a69234e50082d0cce0122e6a84c) @@ -23,6 +23,7 @@ #include "Messaging.h" #include "ModePreTreat.h" #include "OperationModes.h" +#include "PinchValve.h" #include "StatePreTxRecirculate.h" #include "SyringePump.h" #include "TaskGeneral.h" @@ -54,6 +55,8 @@ static U32 preTreatmentStateBroadcastTimerCtr; ///< Pre-Treatment state data broadcast timer counter. static OVERRIDE_U32_T preTreatmentStatePublishInterval; ///< Pre-Treatment state data publication interval override. +static BOOL resumePreTxAlarmResponseRequest; ///< Flag indicates user has requested PreTx resume. + // ********** private function prototypes ********** static void setPreTreatStateTransition( void ); ///< Configure actuators and variables for Pre-Treatment state transitions. @@ -143,11 +146,11 @@ break; case TD_PRE_TREATMENT_SELF_TEST_DRY_STATE: - // currentPreTreatmentState = handleSelfTestDryState(); + currentPreTreatmentState = handleSelfTestDryState(); break; case TD_PRE_TREATMENT_PRIME_STATE: - // currentPreTreatmentState = handlePrimeState(); + currentPreTreatmentState = handlePrimeState(); break; case TD_PRE_TREATMENT_CONFIRM_RX_STATE: @@ -283,8 +286,7 @@ state = TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE; } - // TODO: Transition to Prime state on completion when implemented - // state = TD_PRE_TREATMENT_PRIME_STATE; + state = TD_PRE_TREATMENT_PRIME_STATE; return state; } @@ -293,17 +295,21 @@ * @brief * The handlePrimeState function executes the Prime state of * pre-treatment mode. - * @details \b Inputs: TODO fill up if any - * @details \b Outputs: TODO fill up if any + * @details \b Inputs: none + * @details \b Outputs: none * @return next Pre-Treatment mode state. *************************************************************************/ static TD_PRE_TREATMENT_MODE_STATE_T handlePrimeState( void ) { TD_PRE_TREATMENT_MODE_STATE_T state = TD_PRE_TREATMENT_PRIME_STATE; - // TODO: Transition to Recirculate state on completion when implemented - // state = TD_PRE_TREATMENT_RECIRCULATE_STATE; + execPrime(); + if ( PRIME_COMPLETE_STATE == getCurrentPrimeState() ) + { + state = TD_PRE_TREATMENT_RECIRCULATE_STATE; + } + return state; } @@ -501,6 +507,7 @@ break; case ALARM_ACTION_RESUME: + resumePreTxAlarmResponseRequest = TRUE; if ( TD_PRE_TREATMENT_RECIRCULATE_STATE == currentPreTreatmentState ) { signalResumePreTxRecirculate(); @@ -515,6 +522,17 @@ /*********************************************************************//** * @brief + * The signalPreTxResumeRequest function signals that user wants to resume. + * @details \b Inputs: resumePreTxAlarmResponseRequest + * @details \b Outputs: none + * @return TRUE if resume has been requested, FALSE if not + *************************************************************************/ +BOOL signalPreTxResumeRequest( void ) +{ + return resumePreTxAlarmResponseRequest; +} + +/*********************************************************************//** * The publishPreTreatmentStates function publishes the current * Pre-Treatment state and associated sub-state data to the UI. * @details \b Inputs: currentPreTreatmentState, preTreatmentStatePublishInterval