Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r9cc543b1c2508280767573e20eddd94e68be1fb5 -r21a1f9847f1ccf22ec8b906bcdadea47ec7b5dc9 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 9cc543b1c2508280767573e20eddd94e68be1fb5) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 21a1f9847f1ccf22ec8b906bcdadea47ec7b5dc9) @@ -16,22 +16,30 @@ ***************************************************************************/ #include "Buttons.h" +#include "DrySelfTests.h" #include "DDInterface.h" #include "ModePreTreat.h" #include "OperationModes.h" +#include "TaskGeneral.h" #include "Timers.h" #include "TubeSetInstall.h" #include "TxParams.h" - /** * @addtogroup TDPreTreatmentMode * @{ */ +// ********** private definitions ********** + +#define SUBMODE_COMPLETE_UI_TRANSITION_TIME_COUNT ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) + // ********** private data ********** 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 alarmActionResumeReceived; ///< Flag indicates alarm action resume received. +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 ********** @@ -44,6 +52,7 @@ static TD_PRE_TREATMENT_MODE_STATE_T handleRecirculateState( void ); ///< Handle Recirculate state during Pre-Treatment static TD_PRE_TREATMENT_MODE_STATE_T handleRxState( void ); ///< Handle Confirm Rx state during Pre-Treatment static TD_PRE_TREATMENT_MODE_STATE_T handlePatientConnectionState( void ); ///< Handle Patient Connection state during Pre-Treatment +static TD_PRE_TREATMENT_MODE_STATE_T handleDrySelfTestState( void ); ///< Handle dry self tests state during Pre-Treatment /*********************************************************************//** * @brief @@ -116,7 +125,7 @@ break; case TD_PRE_TREATMENT_SELF_TEST_DRY_STATE: - // currentPreTreatmentState = handleSelfTestDryState(); + currentPreTreatmentState = handleDrySelfTestState(); break; case TD_PRE_TREATMENT_PRIME_STATE: @@ -146,6 +155,19 @@ /*********************************************************************//** * @brief + * The getPreTreatmentSubState function gets the current + * pre-treatment mode state. + * @details \b Inputs: currentPreTreatmentState + * @details \b Outputs: none + * @return currentPreTreatmentState + *************************************************************************/ +TD_PRE_TREATMENT_MODE_STATE_T getPreTreatmentSubState( void ) +{ + return currentPreTreatmentState; +} + +/*********************************************************************//** + * @brief * The handleWaterSampleState function executes the Water Sample state of * pre-treatment mode. * @details \b Inputs: TODO fill up if any @@ -196,10 +218,47 @@ // state = TD_PRE_TREATMENT_TUBING_SET_INSTALL_STATE; return state; +>>>>>>> 0675141b5089536135dd205aeb65b62967ec3524 } /*********************************************************************//** * @brief +<<<<<<< HEAD + * The handleSelfTestDryState function performs dry self-test. + * @details \b Inputs: none + * @details \b Outputs: transition to prime state on user request + * @return current state (sub-mode) + *************************************************************************/ +static TD_PRE_TREATMENT_MODE_STATE_T handleDrySelfTestState( void ) +{ + TD_PRE_TREATMENT_MODE_STATE_T state = TD_PRE_TREATMENT_SELF_TEST_DRY_STATE; + + if ( TRUE == alarmActionResumeReceived ) + { + alarmActionResumeReceived = FALSE; + signalResumeDrySelfTests(); + } + + execDrySelfTests(); + + // Handle install request to failure path + if ( TRUE == tubeSetInstallRequested ) + { + tubeSetInstallRequested = FALSE; + state = TD_PRE_TREATMENT_CART_INSTALL_STATE; + } + + if ( DRY_SELF_TESTS_COMPLETE_STATE == getDrySelfTestsState() ) + { + if ( submodeCompleteTransitionTimeCounter++ >= SUBMODE_COMPLETE_UI_TRANSITION_TIME_COUNT ) + { + submodeCompleteTransitionTimeCounter = 0; + state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; +// transitionToPrime(); + } + } + +======= * The handleInstallState function calls Tube Set Install Service and * advances to Self Test Dry state once the service signals * completion. @@ -280,6 +339,7 @@ // TODO: Transition to Confirm RX state on completion when implemented // state = TD_PRE_TREATMENT_CONFIRM_RX_STATE; +>>>>>>> 0675141b5089536135dd205aeb65b62967ec3524 return state; }