Index: firmware/App/Modes/ModeWaterPreGen.c =================================================================== diff -u -r286fbceae8be1276780690fe4b3010c8b2270239 -r12c4f28723f9af89ae693df771039da1bc7ffc80 --- firmware/App/Modes/ModeWaterPreGen.c (.../ModeWaterPreGen.c) (revision 286fbceae8be1276780690fe4b3010c8b2270239) +++ firmware/App/Modes/ModeWaterPreGen.c (.../ModeWaterPreGen.c) (revision 12c4f28723f9af89ae693df771039da1bc7ffc80) @@ -38,7 +38,7 @@ static RO_PRE_GENW_MODE_STATE_T preGenWState; ///< Currently active pre generate water state. static U32 preGenWDataPublicationTimerCounter; ///< Used to schedule pre generate water data publication to CAN bus. static OVERRIDE_U32_T preGenWDataPublishInterval; ///< Pre Generate water mode data publish interval. -static U32 pendingStartGenRequest; ///< Flag indicating DD has requested RO start the generate permeate. +static U32 pendingStartPreGenRequest; ///< Flag indicating DD has requested RO start the generate permeate. // ********** private function prototypes ********** @@ -61,7 +61,8 @@ preGenWDataPublishInterval.ovData = PRE_GENW_DATA_PUBLISH_INTERVAL; preGenWDataPublishInterval.ovInitData = 0; preGenWDataPublishInterval.override = OVERRIDE_RESET; - preGenWDataPublicationTimerCounter = 0; + preGenWDataPublicationTimerCounter = 0; + pendingStartPreGenRequest = FALSE; } /*********************************************************************//** @@ -165,7 +166,7 @@ { RO_PRE_GENW_MODE_STATE_T state = RO_PRE_GENW_STATE_COMPLETE; - if ( TRUE == pendingStartGenRequest ) + if ( TRUE == pendingStartPreGenRequest ) { requestNewOperationMode( RO_MODE_GENW ); } @@ -187,6 +188,20 @@ return preGenWState; } +/** + * *******************************************************************//** + * @brief + * The getPreGenRequest function returns the current state of the + * pre gen water mode. + * @details \b Inputs: pendingStartPreGenRequest + * @details \b Outputs: none + * @return the current state of pre gen request + *************************************************************************/ +BOOL getPreGenRequest( void ) +{ + return pendingStartPreGenRequest; +} + /*********************************************************************//** * @brief * The getPreGenWDataPublishInterval function gets the pre generate water @@ -227,25 +242,41 @@ /*********************************************************************//** * @brief - * The requestPreGenStart function handles an DD request to start (go to gen permeate mode). - * @details \b Inputs: preGenWState - * @details \b Outputs: pendingStartGenRequest + * The requestPreGenStart function handles an DD request to start (go to pre gen permeate mode). + * @details \b Inputs: standbyState + * @details \b Outputs: pendingStartRORequest * @return TRUE if request accepted, FALSE if not. *************************************************************************/ -BOOL requestGenWaterStart( void ) +BOOL requestPreGenStart( void ) { BOOL result = FALSE; - if ( RO_PRE_GENW_STATE_COMPLETE == preGenWState ) + if ( ( RO_MODE_STAN == getCurrentOperationMode() ) && ( RO_STANDBY_MODE_STATE_IDLE == getCurrentStandbyState() ) ) { - result = TRUE; - pendingStartGenRequest = TRUE; + result = TRUE; + pendingStartPreGenRequest = TRUE; } return result; } +/*********************************************************************//** + * @brief + * The requestPreGenStop function handles an DD request to stop (go to standby mode). + * @details \b Inputs: none + * @details \b Outputs: pendingStartPreGenRequest + * @return TRUE if request accepted, FALSE if not. + *************************************************************************/ +BOOL requestPreGenStop( void ) +{ + BOOL result = TRUE; + pendingStartPreGenRequest = FALSE; + requestNewOperationMode( RO_MODE_STAN ); + return result; +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/