Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r2e9bb08746debe6738d2b98985399b0d05a98155 -r44d7427d77dee3f17d6626c86daef7ce84b91596 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 2e9bb08746debe6738d2b98985399b0d05a98155) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 44d7427d77dee3f17d6626c86daef7ce84b91596) @@ -8,7 +8,7 @@ * @file SelfTests.c * * @author (last) Dara Navaei -* @date (last) 30-Nov-2022 +* @date (last) 14-Dec-2022 * * @author (original) Quang Nguyen * @date (original) 28-Jan-2021 @@ -1427,49 +1427,23 @@ static WET_SELF_TESTS_STATE_T handleWetSelfTestStartState( void ) { WET_SELF_TESTS_STATE_T state = WET_SELF_TESTS_START_STATE; - DG_CMD_RESPONSE_T cmdResp; + F32 resOneWeight = getReservoirWeightLargeFilter( DG_RESERVOIR_1 ); + setupDisplacementVolume = fabs( resOneWeight - WET_SELF_TEST_RESERVOIR_ONE_SETUP_VOLUME_ML ); + F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); - F32 const resOneWeight = getReservoirWeightLargeFilter( DG_RESERVOIR_1 ); - setupDisplacementVolume = fabs( resOneWeight - WET_SELF_TEST_RESERVOIR_ONE_SETUP_VOLUME_ML ); + isValvesSettingSent = TRUE; + setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); + setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); + setDialInPumpTargetFlowRate( DIP_FLOW_RATE_SETUP_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + fmdIntegratedVolume = 0.0F; - //if ( FALSE == isValvesSettingSent ) + if ( ( bolusVol > 0.0F ) && ( getSyringePumpVolumeDelivered() < bolusVol ) ) { - isValvesSettingSent = TRUE; - setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); - setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); - - // TODO remove - /*if ( resOneWeight > WET_SELF_TEST_RESERVOIR_ONE_SETUP_VOLUME_ML ) - { - cmdChangeDGValveSetting( DG_VALVE_SETTING_R1_TO_R2 ); - } - else - { - cmdChangeDGValveSetting( DG_VALVE_SETTING_R2_TO_R1 ); - }*/ + startHeparinBolus(); // moved here from startHeparinPump() in Dialysis.c } - //if ( ( TRUE == isValvesSettingSent ) && ( TRUE == getDGCommandResponse( DG_CMD_VALVE_SETTING, &cmdResp ) ) ) - { - // Re-send command if DG rejects - //isValvesSettingSent = FALSE; + state = WET_SELF_TESTS_SETUP_STATE; - //if ( FALSE == cmdResp.rejected ) - { - F32 bolusVol = getTreatmentParameterF32( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME ); - - setDialInPumpTargetFlowRate( DIP_FLOW_RATE_SETUP_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - fmdIntegratedVolume = 0.0F; - - if ( ( bolusVol > 0.0F ) && ( getSyringePumpVolumeDelivered() < bolusVol ) ) - { - startHeparinBolus(); // moved here from startHeparinPump() in Dialysis.c - } - - state = WET_SELF_TESTS_SETUP_STATE; - } - } - if ( TRUE == doesAlarmStatusIndicateStop() ) { state = WET_SELF_TESTS_STOPPED_STATE; @@ -1614,8 +1588,8 @@ * @brief * The handleWetSelfTestStartFirstDisplacementState function setups the valves * and pumps to start first dialysate displacement. - * @details Inputs: settleStartTime - * @details Outputs: setup valves and pump, reservoirVolume[] + * @details Inputs: settleStartTime, isValvesSettingSent + * @details Outputs: isValvesSettingSent * @return the next state of wet self-tests state machine *************************************************************************/ static WET_SELF_TESTS_STATE_T handleWetSelfTestFirstDisplacementSetupState( void ) @@ -1658,8 +1632,8 @@ * @brief * The handleWetSelfTestFirstDisplacementState function handles the first * dialysate displacement from reservoir 1 to reservoir 2. - * @details Inputs: firstDisplacementStartTime, measured dialysate flow rate - * @details Outputs: integrated volume + * @details Inputs: displacementStartTime, fmdIntegratedVolume, settleStartTime + * @details Outputs: settleStartTime, displacementStartTime * @return the next state of wet self-tests state machine *************************************************************************/ static WET_SELF_TESTS_STATE_T handleWetSelfTestFirstDisplacementState( void ) @@ -1757,8 +1731,8 @@ * @brief * The handleWetSelfTestSecondDisplacementSetupState function setups the valves * and pumps to start second dialysate displacement. - * @details Inputs: settleStartTime - * @details Outputs: setup valves and pump, reservoirVolume[] + * @details Inputs: settleStartTime, isValvesSettingSent + * @details Outputs: isValvesSettingSent * @return the next state of wet self-tests state machine *************************************************************************/ static WET_SELF_TESTS_STATE_T handleWetSelfTestSecondDisplacementSetupState( void ) @@ -1801,8 +1775,8 @@ * @brief * The handleWetSelfTestSecondDisplacementState function handles the first * dialysate displacement from reservoir 2 to reservoir 1. - * @details Inputs: firstDisplacementStartTime, measured dialysate flow rate - * @details Outputs: integrated volume + * @details Inputs: displacementStartTime, fmdIntegratedVolume, settleStartTime + * @details Outputs: displacementStartTime * @return the next state of wet self-tests state machine *************************************************************************/ static WET_SELF_TESTS_STATE_T handleWetSelfTestSecondDisplacementState( void )