Index: firmware/App/Modes/FPModes/ModeGenPermeate.c =================================================================== diff -u -r0718166cde46a427c8b063d93faa6d3f8e2aff1f -r38c8d303358e16782f9d6a1828ee1cc55a4e9a24 --- firmware/App/Modes/FPModes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision 0718166cde46a427c8b063d93faa6d3f8e2aff1f) +++ firmware/App/Modes/FPModes/ModeGenPermeate.c (.../ModeGenPermeate.c) (revision 38c8d303358e16782f9d6a1828ee1cc55a4e9a24) @@ -46,8 +46,6 @@ #define PUMP_REST_TIMEOUT_MS ( 3 * MS_PER_SECOND ) ///< Duraion for open loop control at the start of tank fill/full state ( in ms ) #define RO_REJECTION_WAIT_TIME_MS ( 8 * MS_PER_SECOND ) ///< RO rejection alarm wait time. 5 seconds for RR to stabilize and 3 seconds for calculating rolling average ( in ms ) #define MIN_SAMPLES_NEEDED_FOR_DUTY_CYCLE_AVG 10 ///< Minimum number for samples needed for calculating the average duty cycle -#define PERMEATE_FLOW_OUT_RANGE_PERSISTENCE_TIME_MS ( 1 * MS_PER_SECOND ) ///< Verify Water timer ( in ms ) -#define PERMEATE_FLOW_TOLERANCE 1.25 ///< Permeate flow high tolerance limit #define PERMEATE_FLOW_FAULT_MIN_THRESHOLD 200.0F ///< Permeate flow low tolerance limit #define PERMEATE_FLOW_OUT_OF_RANGE_TIMEOUT_MS ( 12 * MS_PER_SECOND ) ///< Permeate flow low tolerance out of range timeout @@ -139,7 +137,6 @@ U32 execGenPermeateMode( void ) { FP_GENP_MODE_STATE_T prevState = genPermeateState; - F32 permeateFlow = 0.0F; // execute current gen Permeate state switch ( genPermeateState ) @@ -168,27 +165,8 @@ SEND_EVENT_WITH_2_U32_DATA( FP_EVENT_GENP_CHANGE, genPermeateState, prevState ) } - permeateFlow = getFilteredFlow( P16_FLOW ); - // check for permeate flow (P16) is not within range - if( permeateFlow >= ( GEN_PERMEATE_RO_PUMP_TGT_ML * PERMEATE_FLOW_TOLERANCE ) ) - { - if ( 0 == permeateFlowPersistanceStartTimeMS ) - { - permeateFlowPersistanceStartTimeMS = getMSTimerCount(); - } - else if ( TRUE == didTimeout( permeateFlowPersistanceStartTimeMS, PERMEATE_FLOW_OUT_RANGE_PERSISTENCE_TIME_MS ) ) - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_RO_PERMEATE_FLOW_OUT_HIGH_RANGE, PERMEATE_FLOW_OUT_RANGE_PERSISTENCE_TIME_MS, permeateFlow) - } - } - // check for permeate flow (P16) within range and reset the alarm timer - else if ( permeateFlow < ( GEN_PERMEATE_RO_PUMP_TGT_ML * PERMEATE_FLOW_TOLERANCE ) ) - { - permeateFlowPersistanceStartTimeMS = 0; - } + checkPermeateHighFlow(); - checkPermeateFlow(); - //Publish Gen Permeate mode data publishGenPModeData(); @@ -197,6 +175,55 @@ /*********************************************************************//** * @brief + * The requestGenWaterStart function handles an DD request to start (go to gen permeate mode). + * @details \b Inputs: none + * @details \b Outputs: none + * @return TRUE if request accepted, FALSE if not. + *************************************************************************/ +BOOL requestGenWaterStart( void ) +{ + BOOL result = TRUE; + requestNewFPOperationMode( FP_MODE_GENP ); + + return result; +} + +/*********************************************************************//** + * @brief + * The requestGenWaterStop function handles an DD request to stop (go to standby mode). + * @details \b Inputs: none + * @details \b Outputs: none + * @return TRUE if request accepted, FALSE if not. + *************************************************************************/ +BOOL requestGenWaterStop( void ) +{ + BOOL result = TRUE; + signalROPumpHardStop(); + + if ( TRUE == isBoostPumpInstalled() ) + { + signalBoostPumpHardStop(); + } + requestNewFPOperationMode( FP_MODE_STAN ); + + return result; +} + +/*********************************************************************//** + * @brief + * The getCurrentGenPermeateState function returns the current state of the + * gen permeate mode. + * @details \b Inputs: genPermeateState + * @details \b Outputs: genPermeateState + * @return the current state of gen permeate mode + *************************************************************************/ +FP_GENP_MODE_STATE_T getCurrentGenPermeateState( void ) +{ + return genPermeateState; +} + +/*********************************************************************//** + * @brief * The setModeGenPTransition function sets the actuators and variables * for the state transition in generate permeate mode. * @details Inputs: none @@ -352,19 +379,6 @@ /*********************************************************************//** * @brief - * The getCurrentGenPermeateState function returns the current state of the - * gen permeate mode. - * @details \b Inputs: genPermeateState - * @details \b Outputs: genPermeateState - * @return the current state of gen permeate mode - *************************************************************************/ -FP_GENP_MODE_STATE_T getCurrentGenPermeateState( void ) -{ - return genPermeateState; -} - -/*********************************************************************//** - * @brief * The getGenPermeateDataPublishInterval function gets the generate water * mode data publish interval. * @details \b Inputs: genPermeateDataPublishInterval @@ -423,43 +437,7 @@ checkPersistentAlarm( ALARM_ID_FP_PERMEATE_FLOW_OUT_LOW_RANGE, isFlowOutOfRange, permeateFlow, minimumAllowedPermeateFlow); } -/*********************************************************************//** - * @brief - * The requestGenWaterStart function handles an DD request to start (go to gen permeate mode). - * @details \b Inputs: none - * @details \b Outputs: none - * @return TRUE if request accepted, FALSE if not. - *************************************************************************/ -BOOL requestGenWaterStart( void ) -{ - BOOL result = TRUE; - requestNewFPOperationMode( FP_MODE_GENP ); - return result; -} - -/*********************************************************************//** - * @brief - * The requestGenWaterStop function handles an DD request to stop (go to standby mode). - * @details \b Inputs: none - * @details \b Outputs: none - * @return TRUE if request accepted, FALSE if not. - *************************************************************************/ -BOOL requestGenWaterStop( void ) -{ - BOOL result = TRUE; - signalROPumpHardStop(); - - if ( TRUE == isBoostPumpInstalled() ) - { - signalBoostPumpHardStop(); - } - requestNewFPOperationMode( FP_MODE_STAN ); - - return result; -} - - /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/