Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -rc1b9ac0dbf2196280895d2e440dd7ac288ac8424 -r83156b9098cc97a7402db4efba5320fac8284ce4 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision c1b9ac0dbf2196280895d2e440dd7ac288ac8424) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 83156b9098cc97a7402db4efba5320fac8284ce4) @@ -1027,9 +1027,10 @@ SEND_EVENT_WITH_2_U32_DATA(HD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT,(U32)ADVBubbleStatus,(U32)BUBBLE_DETECTED) - if ( ( BUBBLE_DETECTED == ADVBubbleStatus ) && - ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) && - ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) ) + if ( ( ( BUBBLE_DETECTED == ADVBubbleStatus ) && + ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) && + ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) ) ) { state = DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE; } @@ -1112,9 +1113,9 @@ #ifndef _RELEASE_ if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) { - // Wait for reservoirs to drain before starting this test - if ( ( getLoadCellWeight( LOAD_CELL_RESERVOIR_1_PRIMARY ) < MAX_EMPTY_RESERVOIR_WEIGHT_G ) && ( getLoadCellWeight( LOAD_CELL_RESERVOIR_2_PRIMARY ) < MAX_EMPTY_RESERVOIR_WEIGHT_G ) ) + if ( ( getLoadCellWeight( LOAD_CELL_RESERVOIR_1_PRIMARY ) < MAX_EMPTY_RESERVOIR_WEIGHT_G ) && + ( getLoadCellWeight( LOAD_CELL_RESERVOIR_2_PRIMARY ) < MAX_EMPTY_RESERVOIR_WEIGHT_G ) ) { if ( TRUE == didTimeout( pressureSelfTestPreNormalStartTime, PRE_NORMAL_PRESSURE_SELF_TEST_DELAY_MS ) ) { @@ -1123,7 +1124,8 @@ state = DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE; // Check to see if sensor is within normal ranges before we execute pressure sensor tests - if ( ( fabs( previousNormalArterialPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) || ( fabs( previousNormalVenousPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) ) + if ( ( fabs( previousNormalArterialPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) || + ( fabs( previousNormalVenousPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE, previousNormalArterialPressure, previousNormalVenousPressure ); } @@ -1139,7 +1141,9 @@ previousNormalVenousPressure = getFilteredVenousPressure(); // Check to see if sensor is within normal ranges before we execute pressure sensor tests - if ( ( fabs( previousNormalArterialPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) || ( fabs( previousNormalVenousPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) ) + if ( ( ( fabs( previousNormalArterialPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) || + ( fabs( previousNormalVenousPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) ) && + ( getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) != TRUE ) ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE, previousNormalArterialPressure, previousNormalVenousPressure ); } @@ -1149,7 +1153,6 @@ } } } - } return state; @@ -1172,7 +1175,7 @@ state = DRY_SELF_TESTS_STOPPED_STATE; setupForSelfTestsStop(); } - else + else if ( getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) != TRUE ) { #ifndef _RELEASE_ if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) @@ -1219,10 +1222,10 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsVenousState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS; - F32 const venousPressure = getFilteredVenousPressure(); + F32 venousPressure = getFilteredVenousPressure(); // End the test when reaching target pressure or time out - if ( VENOUS_PRESSURE_SELF_TEST_FIRST_PASS_LIMIT_MMHG <= venousPressure ) + if ( ( VENOUS_PRESSURE_SELF_TEST_FIRST_PASS_LIMIT_MMHG <= venousPressure ) || ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) ) ) { #ifndef _RELEASE_ if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) @@ -1272,7 +1275,7 @@ state = DRY_SELF_TESTS_STOPPED_STATE; setupForSelfTestsStop(); } - else + else if ( getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) != TRUE ) { setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); @@ -1298,12 +1301,13 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsArterialState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL; - F32 const arterialPressure = getFilteredArterialPressure(); - F32 const venousPressure = getFilteredVenousPressure(); + F32 arterialPressure = getFilteredArterialPressure(); + F32 venousPressure = getFilteredVenousPressure(); // End the test when reaching target pressure or time out // Test pass when reading positive arterial pressure and negative venous pressure - if ( ( ARTERIAL_PRESSURE_SELF_TEST_LOW_LIMIT_MMHG >= arterialPressure ) && ( VENOUS_PRESSURE_SELF_TEST_HIGH_LIMIT_MMHG <= venousPressure ) ) + if ( ( ( ARTERIAL_PRESSURE_SELF_TEST_LOW_LIMIT_MMHG >= arterialPressure ) && ( VENOUS_PRESSURE_SELF_TEST_HIGH_LIMIT_MMHG <= venousPressure ) ) || + ( TRUE == getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) ) ) { peakVenousPressure = venousPressure; peakArterialPressure = arterialPressure; @@ -1342,10 +1346,10 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsDecayState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE; - F32 const arterialPressure = getFilteredArterialPressure(); - F32 const venousPressure = getFilteredVenousPressure(); - F32 arterialDecayDiff = 0; - F32 venousDecayDiff = 0; + F32 arterialPressure = getFilteredArterialPressure(); + F32 venousPressure = getFilteredVenousPressure(); + F32 arterialDecayDiff = 0.0F; + F32 venousDecayDiff = 0.0F; // update peak pressure value from pressurized state // if pressure continues to increase due to filter lag. @@ -1359,13 +1363,14 @@ peakVenousPressure = venousPressure; } - if ( ( TRUE == didTimeout( pressureSelfTestDecayStartTime, DECAY_PRESSURE_SELF_TEST_TIME ) ) ) + if ( TRUE == didTimeout( pressureSelfTestDecayStartTime, DECAY_PRESSURE_SELF_TEST_TIME ) ) { arterialDecayDiff = fabs( arterialPressure - peakArterialPressure ); venousDecayDiff = fabs( venousPressure - peakVenousPressure ); - if ( ( arterialDecayDiff < ARTERIAL_DECAY_PRESSURE_DIFF_TOLERANCE_MMHG ) && - ( venousDecayDiff < VENOUS_DECAY_PRESSURE_DIFF_TOLERANCE_MMHG ) ) + if ( ( ( arterialDecayDiff < ARTERIAL_DECAY_PRESSURE_DIFF_TOLERANCE_MMHG ) && + ( venousDecayDiff < VENOUS_DECAY_PRESSURE_DIFF_TOLERANCE_MMHG ) ) || + ( getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) != TRUE ) ) { decayedArterialPressure = arterialPressure; decayedVenousPressure = venousPressure; @@ -1399,16 +1404,17 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsStabilityState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE; - F32 arterialStabilityDiff = 0; - F32 venousStabilityDiff = 0; + F32 arterialStabilityDiff = 0.0F; + F32 venousStabilityDiff = 0.0F; if ( ( TRUE == didTimeout( pressureSelfTestStabilityStartTime, STABILTY_PRESSURE_SELF_TEST_TIME ) ) ) { arterialStabilityDiff = fabs( getFilteredArterialPressure() - decayedArterialPressure ); venousStabilityDiff = fabs( getFilteredVenousPressure() - decayedVenousPressure ); - if ( ( arterialStabilityDiff < ARTERIAL_STABILITY_PRESSURE_DIFF_TOLERANCE_MMHG ) && - ( venousStabilityDiff < VENOUS_STABILITY_PRESSURE_DIFF_TOLERANCE_MMHG ) ) + if ( ( ( arterialStabilityDiff < ARTERIAL_STABILITY_PRESSURE_DIFF_TOLERANCE_MMHG ) && + ( venousStabilityDiff < VENOUS_STABILITY_PRESSURE_DIFF_TOLERANCE_MMHG ) ) || + ( getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) != TRUE ) ) { pressureSelfTestNormalizedStartTime = getMSTimerCount(); setValvePosition( VBV, VALVE_POSITION_B_OPEN ); @@ -1442,8 +1448,8 @@ { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE; - F32 const arterialPressureDiff = fabs( getFilteredArterialPressure() - previousNormalArterialPressure ); - F32 const venousPressureDiff = fabs( getFilteredVenousPressure() - previousNormalVenousPressure ); + F32 arterialPressureDiff = fabs( getFilteredArterialPressure() - previousNormalArterialPressure ); + F32 venousPressureDiff = fabs( getFilteredVenousPressure() - previousNormalVenousPressure ); #ifndef _RELEASE_ if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) @@ -1470,8 +1476,9 @@ } // After VBT opened, start looking to see if pressures normalize - if ( ( STATE_OPEN == getValveAirTrapStatus() ) && - ( arterialPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) && ( venousPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) ) + if ( ( ( STATE_OPEN == getValveAirTrapStatus() ) && ( arterialPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) && + ( venousPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) ) || + ( getTestConfigStatus( TEST_CONFIG_ENABLE_WET_CARTRIDGE_USE ) != TRUE ) ) { dryPressureTestsCompleted = TRUE; state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE;