Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r1452c81e6a2f693bab96eaecb0e3dd33b2fd474e -rc8ea1e90f2ecdaffb0a8f6c909babc89e06f3cab --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 1452c81e6a2f693bab96eaecb0e3dd33b2fd474e) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision c8ea1e90f2ecdaffb0a8f6c909babc89e06f3cab) @@ -15,10 +15,10 @@ * ***************************************************************************/ +#include #include "Buttons.h" #include "ModePreTreat.h" #include "OperationModes.h" -#include "StatePreTxDrySelfTests.h" #include "TaskGeneral.h" #include "Timers.h" #include "TxParams.h" @@ -36,7 +36,8 @@ static TD_PRE_TREATMENT_MODE_STATE_T currentPreTreatmentState; ///< Current Pre-Treatment sub-state static BOOL alarmActionResumeReceived; ///< Flag indicates alarm action resume received. -static U32 submodeCompleteTransitionTimeCounter; ///< Sub-mode completed transition wait time counter. +static BOOL tubeSetInstallRequested; ///< Request to re-enter install flow (mid-treatment / failure) +static U32 submodeCompleteTransitionTimeCounter; ///< Sub-mode completed transition wait time counter. // ********** private function prototypes ********** @@ -154,6 +155,19 @@ } /*********************************************************************//** +* @brief +* The signalPreTreatmentTubeSetInstall function signals Pre-Treatment +* to transition to the Tube Set Install flow. +* @details \b Inputs: none +* @details \b Outputs: tubeSetInstallRequested flag set to TRUE +* @return none +*************************************************************************/ +void signalPreTreatmentTubeSetInstall( void ) +{ + tubeSetInstallRequested = TRUE; +} + +/*********************************************************************//** * @brief * The handleSelfTestDryState function performs dry self-test. * @details Inputs: none @@ -172,12 +186,19 @@ execDrySelfTests(); + // Handle install request to failure path + if ( TRUE == tubeSetInstallRequested ) + { + tubeSetInstallRequested = FALSE; + signalPreTreatmentTubeSetInstall(); + } + if ( DRY_SELF_TESTS_COMPLETE_STATE == getDrySelfTestsState() ) { if ( submodeCompleteTransitionTimeCounter++ >= SUBMODE_COMPLETE_UI_TRANSITION_TIME_COUNT ) { submodeCompleteTransitionTimeCounter = 0; - state = TD_PRE_TREATMENT_PRIME_STATE; + state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; // transitionToPrime(); } }