Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -raebdf67df150ede34d59d58571c2c6c6822da3ea -r1d49abd3736a0e21a9ceb56e213d4337fbb8138c --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision aebdf67df150ede34d59d58571c2c6c6822da3ea) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 1d49abd3736a0e21a9ceb56e213d4337fbb8138c) @@ -962,8 +962,9 @@ if ( TRUE == fillReservoirOneStartRequested ) { fillReservoirOneStartRequested = FALSE; - //cmdSetDGActiveReservoir( DG_RESERVOIR_2 ); - state = PRE_TREATMENT_RESERVOIR_MGMT_REQUEST_RESERVOIR_SWITCH_STATE; + cmdSetDGActiveReservoir( DG_RESERVOIR_2 ); + state = PRE_TREATMENT_RESERVOIR_MGMT_DRAIN_CMD_STATE; + //state = PRE_TREATMENT_RESERVOIR_MGMT_REQUEST_RESERVOIR_SWITCH_STATE; } return state; @@ -1049,19 +1050,18 @@ if ( ( DG_MODE_GENE == dgOpMode ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == dgSubMode ) ) { - initialReservoirDrain[ inactiveReservoir ] = TRUE; - // if fills not yet enabled, check to see if we want to move on to drain the other reservoir if ( reservoirFlags[ DG_RESERVOIR_1 ].startFlushFill != TRUE ) { - DG_RESERVOIR_ID_T activeReservoir = getDGActiveReservoir(); - - if ( ( initialReservoirDrain[ activeReservoir ] != TRUE ) || ( inactiveReservoir != DG_RESERVOIR_2 ) ) + if ( ( initialReservoirDrain[ inactiveReservoir ] != TRUE ) || + ( inactiveReservoir != DG_RESERVOIR_1 ) ) { + initialReservoirDrain[ inactiveReservoir ] = TRUE; //cmdSetDGActiveReservoir( inactiveReservoir ); state = PRE_TREATMENT_RESERVOIR_MGMT_REQUEST_RESERVOIR_SWITCH_STATE; } } + else { volume = getPreTreatmentFillVolume( inactiveReservoir ); Index: firmware/App/Modes/Prime.c =================================================================== diff -u -r34d0843fa73e79ba3b085dd4aaa393a1ec126fd4 -r1d49abd3736a0e21a9ceb56e213d4337fbb8138c --- firmware/App/Modes/Prime.c (.../Prime.c) (revision 34d0843fa73e79ba3b085dd4aaa393a1ec126fd4) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision 1d49abd3736a0e21a9ceb56e213d4337fbb8138c) @@ -36,7 +36,7 @@ // ********** private definitions ********** -#define MAX_PRIME_TIME ( 15 * SEC_PER_MIN ) ///< Maximum prime time (in seconds). +#define MAX_PRIME_TIME ( 30 * SEC_PER_MIN ) ///< Maximum prime time (in seconds). #define PRIME_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the prime data is published on the CAN bus. #define BLOOD_PUMP_FAST_FLOW_RATE_PURGE_AIR_ML_MIN 300 ///< Blood pump fast flow rate to fill fluid. Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r68567afef43364044dabe0cd91fc2933f0b331ac -r1d49abd3736a0e21a9ceb56e213d4337fbb8138c --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 68567afef43364044dabe0cd91fc2933f0b331ac) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 1d49abd3736a0e21a9ceb56e213d4337fbb8138c) @@ -1260,7 +1260,6 @@ if ( ( arterialPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) && ( venousPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) ) { - signalActionToResumeFill(); state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; } @@ -1321,6 +1320,7 @@ } else { + signalActionToResumeFill(); state = DRY_SELF_TESTS_COMPLETE_STATE; } @@ -1533,14 +1533,21 @@ if ( BUBBLE_NOT_DETECTED == ADVBubbleStatus ) { + if ( TRUE == zeroBloodLeak() ) + { + state = WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE; + } + else + { #ifndef _RELEASE_ - if ( ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_BLOOD_LEAK_SELF_TEST ) != SW_CONFIG_ENABLE_VALUE ) && - ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_SELF_TESTS_AIR_BUBBLE_CHECK ) != SW_CONFIG_ENABLE_VALUE ) ) + if ( ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_BLOOD_LEAK_SELF_TEST ) == SW_CONFIG_ENABLE_VALUE ) ) + { + state = WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE; + } + else #endif - { - if ( TRUE == zeroBloodLeak() ) { - state = WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE; + activateAlarmNoData( ALARM_ID_HD_BLOOD_LEAK_SENSOR_ZERO_SEQUENCE_FAILED ); } } }