Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -rcf0f5e54c1a7af4d8a739cbd677d899d95e4019b -recfe9ec722ad63e9db99cb3fd6c2843693d058a4 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision cf0f5e54c1a7af4d8a739cbd677d899d95e4019b) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision ecfe9ec722ad63e9db99cb3fd6c2843693d058a4) @@ -1070,7 +1070,9 @@ if ( lastBloodPumpDirectionCount != dirErrorCnt ) { lastBloodPumpDirectionCount = dirErrorCnt; +#ifndef DISABLE_PUMP_DIRECTION_CHECKS SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR, (U32)HD_PUMP_BLOOD_PUMP ) +#endif } #endif bpMCDir = ( getMeasuredBloodPumpMCSpeed() >= 0.0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -rcf0f5e54c1a7af4d8a739cbd677d899d95e4019b -recfe9ec722ad63e9db99cb3fd6c2843693d058a4 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision cf0f5e54c1a7af4d8a739cbd677d899d95e4019b) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision ecfe9ec722ad63e9db99cb3fd6c2843693d058a4) @@ -1003,7 +1003,9 @@ if ( lastDialInPumpDirectionCount != dirErrorCnt ) { lastDialInPumpDirectionCount = dirErrorCnt; +#ifndef DISABLE_PUMP_DIRECTION_CHECKS SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR, (U32)HD_PUMP_DIALYSATE_INLET_PUMP ) +#endif } #endif Index: firmware/App/Controllers/DialOutFlow.c =================================================================== diff -u -rcf0f5e54c1a7af4d8a739cbd677d899d95e4019b -recfe9ec722ad63e9db99cb3fd6c2843693d058a4 --- firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision cf0f5e54c1a7af4d8a739cbd677d899d95e4019b) +++ firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision ecfe9ec722ad63e9db99cb3fd6c2843693d058a4) @@ -891,7 +891,9 @@ if ( lastDialOutPumpDirectionCount != dirErrorCnt ) { lastDialOutPumpDirectionCount = dirErrorCnt; +#ifndef DISABLE_PUMP_DIRECTION_CHECKS SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR, (U32)HD_PUMP_DIALYSATE_OUTLET_PUMP ) +#endif } dopMCDir = ( getMeasuredDialOutPumpMCSpeed() >= 0.0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -rcf0f5e54c1a7af4d8a739cbd677d899d95e4019b -recfe9ec722ad63e9db99cb3fd6c2843693d058a4 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision cf0f5e54c1a7af4d8a739cbd677d899d95e4019b) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision ecfe9ec722ad63e9db99cb3fd6c2843693d058a4) @@ -582,11 +582,11 @@ if ( bpOccl > ( OCCLUSION_THRESHOLD_OFFSET + bloodPumpOcclusionAfterCartridgeInstall ) ) { signalBloodPumpHardStop(); // Stop pump immediately - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_OCCLUSION_BLOOD_PUMP, bpOccl ) + //SET_ALARM_WITH_1_U32_DATA( ALARM_ID_OCCLUSION_BLOOD_PUMP, bpOccl ) } else if ( bpOccl < ( OCCLUSION_CLEAR_THRESHOLD_OFFSET + bloodPumpOcclusionAfterCartridgeInstall ) ) { - clearAlarmCondition( ALARM_ID_OCCLUSION_BLOOD_PUMP ); + //clearAlarmCondition( ALARM_ID_OCCLUSION_BLOOD_PUMP ); } #endif } Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -ra3741a7adf533bbc6683d9c4f3efbcfa9e989ba7 -recfe9ec722ad63e9db99cb3fd6c2843693d058a4 --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision a3741a7adf533bbc6683d9c4f3efbcfa9e989ba7) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision ecfe9ec722ad63e9db99cb3fd6c2843693d058a4) @@ -90,8 +90,9 @@ #define TEN_PCT_OVER_ALLOWANCE 1.1 ///< Allow 10 percent over target before alarming on over travel. #define FIVE_PCT_OVER_ALLOWANCE 1.05 ///< Allow 5 percent over target before alarming on over travel. -/// Expected position of empty in relation to home postion. -#define SYRINGE_PUMP_EMPTY_POS ( SYRINGE_ENCODER_COUNTS_PER_ML * 10.84 ) +/// Expected position of empty in relation to home position. +#define SYRINGE_PUMP_EMPTY_POS ( SYRINGE_ENCODER_COUNTS_PER_ML * 10.84 ) ///< get syringe volume from home to empty (11 mL is placeholder) + /// Margin of error for empty position determination. #define SYRINGE_PUMP_EMPTY_POS_MARGIN ( SYRINGE_ENCODER_COUNTS_PER_ML * 0.5 ) /// Minimum retract position. @@ -1149,6 +1150,9 @@ { SYRINGE_PUMP_STATE_T result = SYRINGE_PUMP_OFF_STATE; + isPersistentAlarmTriggered( ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR, FALSE ); // reset direction alarm persistence when pump is off + isPersistentAlarmTriggered( ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR, FALSE ); // reset direction alarm persistence when pump is off + #ifndef DISABLE_SYRINGE_PUMP_ALARMS // Check position is not changing while stopped if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR, ( syringePumpLastPosition != getSyringePumpPosition() ) ) ) Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -rcf0f5e54c1a7af4d8a739cbd677d899d95e4019b -recfe9ec722ad63e9db99cb3fd6c2843693d058a4 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision cf0f5e54c1a7af4d8a739cbd677d899d95e4019b) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision ecfe9ec722ad63e9db99cb3fd6c2843693d058a4) @@ -58,7 +58,7 @@ #define WET_SELF_TEST_FIRST_DISPLACEMENT_TARGET_VOLUME_ML 100.0 ///< Target of first displacement volume in ml. #define WET_SELF_TEST_SECOND_DISPLACEMENT_TARGET_VOLUME_ML 600.0 ///< Target of second displacement volume in ml. #define WET_SELF_TEST_INTEGRATED_VOLUME_TOLERANCE 5.0 ///< Tolerance on integrated volume in percentage. -#define WET_SELF_TEST_DISPLACEMENT_TOLERANCE_G 12.0 ///< Tolerance in the load cell readings of the displacement in grams (2%). +#define WET_SELF_TEST_DISPLACEMENT_TOLERANCE_G 25.0 ///< Tolerance in the load cell readings of the displacement in grams (2%). #define WET_SELF_TEST_DISPLACEMENT_TIME_MS ( SEC_PER_MIN * MS_PER_SECOND ) ///< Time to displace dialysate in wet self-test in ms. #define RESERVOIR_SETTLE_TIME_MS ( 4 * MS_PER_SECOND ) ///< Time allotted for reservoir to settle in ms. @@ -324,7 +324,7 @@ } else { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT, currentNoCartSelfTestsState ); +// SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT, currentNoCartSelfTestsState ); } } } @@ -831,10 +831,10 @@ { state = DRY_SELF_TESTS_OCCLUSION_SENSORS_STATE; } - else - { - activateAlarmNoData( ALARM_ID_INSTALL_NEW_CARTRIDGE ); - } +// else +// { +// activateAlarmNoData( ALARM_ID_INSTALL_NEW_CARTRIDGE ); +// } if ( TRUE == doesAlarmStatusIndicateStop() ) { @@ -1168,7 +1168,9 @@ if ( ( BUBBLE_NOT_DETECTED == ADABubbleStatus ) && ( BUBBLE_NOT_DETECTED == ADVBubbleStatus ) ) #endif { +#ifndef IGNORE_BLOOD_LEAK_SELF_TEST zeroBloodLeak(); +#endif state = WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE; *result = SELF_TEST_STATUS_PASSED; } @@ -1194,7 +1196,9 @@ { WET_SELF_TESTS_STATE_T state = WET_SELF_TESTS_BLOOD_LEAK_DETECTOR_STATE; +#ifndef IGNORE_BLOOD_LEAK_SELF_TEST if ( SELF_TEST_STATUS_PASSED == getBloodLeakSelfTestStatus() ) +#endif { settleStartTime = getMSTimerCount(); state = WET_SELF_TESTS_FIRST_DISPLACEMENT_SETUP_STATE;