Index: firmware/App/Modes/ModePreGenDialysate.c =================================================================== diff -u -r67731d57db9a620418b3b848d8f75ff204902c36 -r2511d0de0eca7120f6c2241e0938993a460203b1 --- firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision 67731d57db9a620418b3b848d8f75ff204902c36) +++ firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision 2511d0de0eca7120f6c2241e0938993a460203b1) @@ -1,22 +1,24 @@ /************************************************************************** * -* Copyright (c) 2025-2025 Diality Inc. - All Rights Reserved. +* Copyright (c) 2025-2026 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file ModePreGenDialysate.c * -* @author (last) Vinayakam Mani -* @date (last) 17-Apr-2025 +* @author (last) Sameer Kalliadan Poyil +* @date (last) 10-Feb-2026 * * @author (original) Vinayakam Mani -* @date (original) 17-Apr-2025 +* @date (original) 18-Apr-2025 * ***************************************************************************/ +#include "BalancingChamber.h" #include "ConcentratePumps.h" #include "DialysatePumps.h" +#include "DryBiCart.h" #include "Heaters.h" #include "ModePreGenDialysate.h" #include "ModeGenDialysate.h" @@ -57,14 +59,14 @@ static void publishPreGenDialysateState( void ); static DD_PRE_GEN_DIALYSATE_STATE_T handlePreGenDialysateFillCompleteCheckState( void ); static DD_PRE_GEN_DIALYSATE_STATE_T handlePreGenWetSelfTestState( void ); +static DD_PRE_GEN_DIALYSATE_STATE_T handleDryBicartInitialFillState( void ); //Wet Self test static void setModePreGenWetSelfStateTransition( DD_WET_SELF_TEST_STATE_T state ); static void execWetSelfTest( void ); static DD_WET_SELF_TEST_STATE_T handleNegativeDeaerationPressureCheckState( void ); static DD_WET_SELF_TEST_STATE_T handlePositiveDeaerationPressureCheckState( void ); - /*********************************************************************//** * @brief * The initPreGenDialysateMode function initializes the Pre-Generation @@ -99,6 +101,8 @@ { initPreGenDialysateMode(); deenergizeActuators( PARK_CONC_PUMPS ); + // Deactivate Balancing Chamber Switching + requestBalChamberSwitching( FALSE ); setCurrentSubState( NO_SUB_STATE ); @@ -145,6 +149,10 @@ preGenDialysateState = handlePreGenWetSelfTestState(); break; + case DD_PRE_GEN_DRY_BICART_INITIAL_FILL: + preGenDialysateState = handleDryBicartInitialFillState(); + break; + case DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND: // TODO : handle wait for Gen dialysate break; @@ -242,15 +250,52 @@ static DD_PRE_GEN_DIALYSATE_STATE_T handlePreGenWetSelfTestState( void ) { //TODO: Change to wet self test state later - DD_PRE_GEN_DIALYSATE_STATE_T state = DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND; + DD_PRE_GEN_DIALYSATE_STATE_T state = DD_PRE_GEN_DRY_BICART_INITIAL_FILL; + // TODO: testing drybicart fill in pre-gen + if ( getTestConfigStatus( TEST_CONFIG_DD_DRY_BICART_TEST ) == TRUE ) + { + setBicartFillRequested(); + } + //execWetSelfTest(); return state; } /*********************************************************************//** * @brief + * The handleDryBicartInitialFillState function executes intial dry bicart fill request + * @details \b Inputs: none + * @details \b Outputs: none + * @return current state of PreGenDialysate mode + *************************************************************************/ +static DD_PRE_GEN_DIALYSATE_STATE_T handleDryBicartInitialFillState( void ) +{ + //TODO: Change to wet self test state later + DD_PRE_GEN_DIALYSATE_STATE_T state = DD_PRE_GEN_DRY_BICART_INITIAL_FILL; + + // TODO: testing drybicart fill in pre-gen + if ( getTestConfigStatus( TEST_CONFIG_DD_DRY_BICART_TEST ) == TRUE ) + { + // stay in this state till bicart fill complete. + if ( getCurrentDryBiCartFillExecState() == DRY_BICART_FILL_COMPLETE_STATE ) + { + state = DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND; + } + // TODO: Alarm if it is not completed within 1.5 minutes + } + else + { + // not bicart fill, move to next state + state = DD_PRE_GEN_DIALYSATE_WAIT_FOR_GEND; + } + + return state; +} + +/*********************************************************************//** + * @brief * The setModePreGenWetSelfStateTransition function sets the actuators and variables * for the state transition in pre-gen WetSlef test mode. * @details Inputs: Valve states, Pump speed @@ -268,9 +313,6 @@ break; case DD_WET_SELF_TEST_NEGATIVE_DEAERATION_PRES_CHECK: - //Make sure Water Inlet Valve is open - setValveState( DD_M4_VALV, VALVE_STATE_OPEN ); - // Start timer for hyd chamber negative pressure check state hydChamberPressureCheckStartTimeMS = getMSTimerCount(); // Start D12/Degassing pump - closed loop control