Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r89c8709e3b27648926fbb20f25c9a67cbeb99adc -r7e2325379e4c4f7f891776646fbbcd4aa9c6eaca --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 89c8709e3b27648926fbb20f25c9a67cbeb99adc) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 7e2325379e4c4f7f891776646fbbcd4aa9c6eaca) @@ -7,8 +7,8 @@ * * @file ModeStandby.c * -* @author (last) “rkallala” -* @date (last) 09-Dec-2025 +* @author (last) “Raghu +* @date (last) 04-Feb-2026 * * @author (original) Vinayakam Mani * @date (original) 07-Aug-2024 @@ -18,6 +18,7 @@ #include "BalancingChamber.h" #include "ConcentratePumps.h" #include "ConductivitySensors.h" +#include "FPOperationModes.h" #include "Heaters.h" #include "ModeFault.h" #include "ModeStandby.h" @@ -157,6 +158,7 @@ static DD_STANDBY_MODE_STATE_T handleStandbyIdleState( void ) { DD_STANDBY_MODE_STATE_T state = DD_STANDBY_MODE_STATE_IDLE; + FP_OP_MODE_T fpMode = getCurrentFPOperationMode(); //TODO:remove later if standby mode doesnt need inlet water control hydChamberWaterInletControl(); @@ -168,8 +170,17 @@ // } if ( TRUE == pendingStartDDPreGenRequest ) { - pendingStartDDPreGenRequest = FALSE; - requestNewOperationMode( DD_MODE_PREG ); + // wait for IOFP GENP mode and when IOFP manual control is not set + if ( ( FP_MODE_GENP == fpMode ) && ( getTestConfigStatus( TEST_CONFIG_DD_RUN_SOLO ) == FALSE ) ) + { + pendingStartDDPreGenRequest = FALSE; + requestNewOperationMode( DD_MODE_PREG ); + } + else if ( getTestConfigStatus( TEST_CONFIG_DD_RUN_SOLO ) == TRUE ) + { + pendingStartDDPreGenRequest = FALSE; + requestNewOperationMode( DD_MODE_PREG ); + } } //Test request to handle only balancing chamber switching else if ( TRUE == pendingBalanceChamberSwOnlyRequest )