Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r68f18c1952d37f75f27b7ca45969af2202729bb5 -r936acbb405970a406c8b1f557ea727e7cbf74c94 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 68f18c1952d37f75f27b7ca45969af2202729bb5) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 936acbb405970a406c8b1f557ea727e7cbf74c94) @@ -16,6 +16,7 @@ ***************************************************************************/ #include "AlarmMgmt.h" +#include "ConsumableSelfTest.h" #include "FPGA.h" #include "ModePreTreat.h" #include "OperationModes.h" @@ -59,6 +60,7 @@ static void transitionToPatientConnection( void ); static HD_PRE_TREATMENT_MODE_STATE_T handleWaterSampleState( void ); +static HD_PRE_TREATMENT_MODE_STATE_T handleSelfTestConsumableState( void ); static HD_PRE_TREATMENT_MODE_STATE_T handleSelfTestNoCartState( void ); static HD_PRE_TREATMENT_MODE_STATE_T handleInstallState( void ); static HD_PRE_TREATMENT_MODE_STATE_T handleSelfTestDryState( void ); @@ -80,6 +82,7 @@ patientConnectionConfirm = FALSE; initSampleWater(); + initConsumableSelfTest(); initPrime(); initSelfTests(); @@ -126,6 +129,10 @@ currentPreTreatmentState = handleWaterSampleState(); break; + case HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE: + currentPreTreatmentState = handleSelfTestConsumableState(); + break; + case HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE: currentPreTreatmentState = handleSelfTestNoCartState(); break; @@ -337,6 +344,7 @@ preTreatmentData.preTreatmentSubMode = currentPreTreatmentState; preTreatmentData.sampleWaterState = getSampleWaterState(); + preTreatmentData.consumableSelfTestsState = getConsumableSelfTestState(); preTreatmentData.noCartSelfTestsState = getNoCartSelfTestsState(); preTreatmentData.installState = 0; preTreatmentData.drySelfTestsState = getDrySelfTestsState(); @@ -408,10 +416,10 @@ /*********************************************************************//** * @brief - * The handleWaterSampleState function handles patient connection state - * during pre-treatment mode. + * The handleWaterSampleState function handles sample water state during + * pre-treatment mode. * @details Inputs: none - * @details Outputs: requested mode transition to treatment mode + * @details Outputs: executed sample water state machine * @return current state (sub-mode) *************************************************************************/ static HD_PRE_TREATMENT_MODE_STATE_T handleWaterSampleState( void ) @@ -422,9 +430,32 @@ if ( TRUE == isSampleWaterPassed() ) { - state = HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE; + state = HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE; cmdStartDG(); cmdSetDGDialysateTargetTemps( 39.0, 37.0 ); + transitionToConsumableSelfTest(); + } + + return state; +} + +/*********************************************************************//** + * @brief + * The handleSelfTestConsumableState function handles consumable self-test state + * during pre-treatment mode. + * @details Inputs: none + * @details Outputs: executed consumable self-test state machine + * @return current state (sub-mode) + *************************************************************************/ +static HD_PRE_TREATMENT_MODE_STATE_T handleSelfTestConsumableState( void ) +{ + HD_PRE_TREATMENT_MODE_STATE_T state = HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE; + + execConsumableSelfTest(); + + if ( CONSUMABLE_SELF_TESTS_COMPLETE_STATE == getConsumableSelfTestState() ) + { + state = HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE; transitionToNoCartSelfTests(); }