Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -raa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119 -r340ca3700bbc4235d85d82864597fe17ab4b557a --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision aa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 340ca3700bbc4235d85d82864597fe17ab4b557a) @@ -50,6 +50,11 @@ // ********** private function prototypes ********** +static HD_STANDBY_STATE_T handleStandbyWait4TreatmentState( void ); +static HD_STANDBY_STATE_T handleStandbyDGFlushState( void ); +static HD_STANDBY_STATE_T handleStandbyDGHeatDisinfectState( void ); +static HD_STANDBY_STATE_T handleStandbyDGChemDisinfectState( void ); + /*********************************************************************//** * @brief * The initStandbyMode function initializes the Standby Mode module. @@ -118,19 +123,18 @@ break; case STANDBY_WAIT_FOR_TREATMENT_STATE: - if ( TRUE == treatStartReqReceived ) - { - // Initialize treatment modes before starting a new treatment - initTreatParamsMode(); - initPreTreatmentMode(); - initTreatmentMode(); - initPostTreatmentMode(); - // Start treatment workflow with treatment parameters mode - requestNewOperationMode( MODE_TPAR ); - treatStartReqReceived = FALSE; - } + currentStandbyState = handleStandbyWait4TreatmentState(); break; + case STANDBY_DG_FLUSH_IN_PROGRESS_STATE: + break; + + case STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE: + break; + + case STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE: + break; + default: // TODO - s/w fault currentStandbyState = STANDBY_START_STATE; @@ -232,6 +236,84 @@ /*********************************************************************//** * @brief + * The handleStandbyWait4TreatmentState function handles the wait for + * treatment state for standby mode. + * @details Inputs: treatStartReqReceived + * @details Outputs: treatment may be initiated + * @return next standby state + *************************************************************************/ +static HD_STANDBY_STATE_T handleStandbyWait4TreatmentState( void ) +{ + HD_STANDBY_STATE_T result = STANDBY_WAIT_FOR_TREATMENT_STATE; + + if ( TRUE == treatStartReqReceived ) + { + // Initialize treatment modes before starting a new treatment + initTreatParamsMode(); + initPreTreatmentMode(); + initTreatmentMode(); + initPostTreatmentMode(); + // Start treatment workflow with treatment parameters mode + requestNewOperationMode( MODE_TPAR ); + treatStartReqReceived = FALSE; + } + + return result; +} + +/*********************************************************************//** + * @brief + * The handleStandbyDGFlushState function handles the DG flush state for + * standby mode. + * @details Inputs: + * @details Outputs: + * @return next standby state + *************************************************************************/ +static HD_STANDBY_STATE_T handleStandbyDGFlushState( void ) +{ + HD_STANDBY_STATE_T result = STANDBY_DG_FLUSH_IN_PROGRESS_STATE; + + // TODO - implement w/ UI + + return result; +} + +/*********************************************************************//** + * @brief + * The handleStandbyDGHeatDisinfectState function handles the wait for + * treatment state for standby mode. + * @details Inputs: + * @details Outputs: + * @return next standby state + *************************************************************************/ +static HD_STANDBY_STATE_T handleStandbyDGHeatDisinfectState( void ) +{ + HD_STANDBY_STATE_T result = STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE; + + // TODO - implement w/ UI + + return result; +} + +/*********************************************************************//** + * @brief + * The handleStandbyDGChemDisinfectState function handles the wait for + * treatment state for standby mode. + * @details Inputs: + * @details Outputs: + * @return next standby state + *************************************************************************/ +static HD_STANDBY_STATE_T handleStandbyDGChemDisinfectState( void ) +{ + HD_STANDBY_STATE_T result = STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE; + + // TODO - implement w/ UI + + return result; +} + +/*********************************************************************//** + * @brief * The signalUserInitiateTreatment function handles user initiation of a * treatment. * @details Inputs: none