Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r6cd85442baebdeecec6fc9b5009011b8d961f45c -r6cb41faf89ea5500a378c2d845c1b9bb552b4b30 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 6cd85442baebdeecec6fc9b5009011b8d961f45c) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 6cb41faf89ea5500a378c2d845c1b9bb552b4b30) @@ -85,7 +85,6 @@ static NO_CART_SELF_TESTS_STATE_T currentNoCartSelfTestsState; ///< Current state of the no cartridge self-tests state machine. static U32 runPumpStartTime; ///< Beginning time when pumps start running static BOOL hasPumpsStarted; ///< Flag indicates pumps have started running for self-test. -static BOOL areValvesAndPumpsHomed; ///< Flag indicates valves and pumps have been homed. static BOOL drySelfTestsResult; ///< Result of dry self-tests. static DRY_SELF_TESTS_STATE_T currentDrySelfTestsState; ///< Current state of the dry self-tests state machine. @@ -113,6 +112,7 @@ static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestsWaitForClosedDoor( void ); static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestPumpsState( void ); static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestLeakDetectorsState( SELF_TEST_STATUS_T *result ); +static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestDoorSwitchState( void ); static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestHomeValvesAndPumpState( void ); static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestStoppedState( void ); @@ -202,7 +202,6 @@ currentNoCartSelfTestsState = NO_CART_SELF_TESTS_START_STATE; runPumpStartTime = 0; hasPumpsStarted = FALSE; - areValvesAndPumpsHomed = FALSE; resetSelfTestsFlags(); } @@ -271,8 +270,7 @@ break; case NO_CART_SELF_TESTS_DOOR_SWITCH_STATE: - // TODO: Implement self tests - currentNoCartSelfTestsState = NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE; + currentNoCartSelfTestsState = handleNoCartSelfTestDoorSwitchState(); break; case NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE: @@ -665,32 +663,43 @@ /*********************************************************************//** * @brief - * The handleNoCartSelfTestHomeValvesAndPumpState function homes all valves - * and pumps. + * The handleNoCartSelfTestDoorSwitchState function executes door switch self-test. * @details Inputs: none * @details Outputs: none * @return the next state of no cartridge self-tests state machine *************************************************************************/ -static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestHomeValvesAndPumpState( void ) +static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestDoorSwitchState( void ) { - NO_CART_SELF_TESTS_STATE_T state = NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE; + NO_CART_SELF_TESTS_STATE_T state = NO_CART_SELF_TESTS_DOOR_SWITCH_STATE; + VALVE_T valve; - if ( FALSE == areValvesAndPumpsHomed ) + // TODO implement door switch self-test + for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) { - VALVE_T valve; + homeValve( valve ); + } - for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) - { - homeValve( valve ); - } + homeBloodPump(); + homeDialInPump(); + homeDialOutPump(); - homeBloodPump(); - homeDialInPump(); - homeDialOutPump(); + state = NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE; - areValvesAndPumpsHomed = TRUE; - } + return state; +} +/*********************************************************************//** + * @brief + * The handleNoCartSelfTestHomeValvesAndPumpState function homes all valves + * and pumps. + * @details Inputs: none + * @details Outputs: none + * @return the next state of no cartridge self-tests state machine + *************************************************************************/ +static NO_CART_SELF_TESTS_STATE_T handleNoCartSelfTestHomeValvesAndPumpState( void ) +{ + NO_CART_SELF_TESTS_STATE_T state = NO_CART_SELF_TESTS_HOME_VALVES_AND_PUMPS_STATE; + if ( ( FALSE == isDialInPumpRunning() ) && ( FALSE == isDialOutPumpRunning() ) && ( FALSE == isBloodPumpRunning() ) ) { state = NO_CART_SELF_TESTS_COMPLETE_STATE;