Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r7927873fa83b873c58c0ffe8e56a594d24afcabc -rb7d7f9a49fb65b485d7904e94e63df74e4619607 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 7927873fa83b873c58c0ffe8e56a594d24afcabc) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision b7d7f9a49fb65b485d7904e94e63df74e4619607) @@ -34,6 +34,7 @@ // ********** private function prototypes ********** static PRE_TREATMENT_MODE_STATE_T handleSelfTestNoCartState( void ); +static PRE_TREATMENT_MODE_STATE_T handleSelfTestDryState( void ); static PRE_TREATMENT_MODE_STATE_T handlePrimeState( void ); static PRE_TREATMENT_MODE_STATE_T handlePatientConnectionState( void ); @@ -76,6 +77,8 @@ switch ( currentPreTreatmentState ) { case PRE_TREATMENT_START_STATE: + cmdStartDG(); + cmdSetDGDialysateTargetTemps( 39.0, 37.0 ); currentPreTreatmentState = PRE_TREATMENT_WATER_SAMPLE_STATE; break; @@ -92,7 +95,7 @@ break; case PRE_TREATMENT_SELF_TEST_DRY_STATE: - currentPreTreatmentState = PRE_TREATMENT_PRIME_STATE; + currentPreTreatmentState = handleSelfTestDryState(); break; case PRE_TREATMENT_PRIME_STATE: @@ -132,7 +135,7 @@ { BOOL result = FALSE; - if ( ( MODE_PRET == getCurrentOperationMode() ) && ( PRE_TREATMENT_PATIENT_CONNECTION_STATE == currentPreTreatmentState ) ) + if ( MODE_PRET == getCurrentOperationMode() ) { treatStartReqReceived = TRUE; result = TRUE; @@ -144,16 +147,13 @@ /*********************************************************************//** * @brief - * The handlePrimeState function handles priming the blood and dialysate circuits. + * The handleSelfTestNoCartState function handles self-test with no cartrige. * @details Inputs: none - * @details Outputs: transition to self test wet state after priming passed + * @details Outputs: home blood pump and dialysate pumps * @return current state (sub-mode) *************************************************************************/ static PRE_TREATMENT_MODE_STATE_T handleSelfTestNoCartState( void ) { - cmdStartDG(); - cmdSetDGDialysateTargetTemps( 39.0, 37.0 ); - // TODO: Prompt user to close door homeBloodPump(); @@ -167,6 +167,25 @@ /*********************************************************************//** * @brief + * The handleSelfTestDryState function handles dry self-test. + * @details Inputs: none + * @details Outputs: transition to prime sub-mode when blood pump finished homing + * @return current state (sub-mode) + *************************************************************************/ +static PRE_TREATMENT_MODE_STATE_T handleSelfTestDryState( void ) +{ + PRE_TREATMENT_MODE_STATE_T state = PRE_TREATMENT_CART_INSTALL_STATE; + + if ( FALSE == isBloodPumpRunning() ) + { + state = PRE_TREATMENT_PRIME_STATE; + } + + return state; +} + +/*********************************************************************//** + * @brief * The handlePrimeState function handles priming the blood and dialysate circuits. * @details Inputs: none * @details Outputs: transition to self test wet state after priming passed