Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -rc05775820109b5e83596c58a3b4248ac6cdb1d65 -r7a754fc23436a42e61e60f66adf1cd0cc8b32ad6 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision c05775820109b5e83596c58a3b4248ac6cdb1d65) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 7a754fc23436a42e61e60f66adf1cd0cc8b32ad6) @@ -281,8 +281,10 @@ // Direction change while pump is running is not allowed if ( ( FALSE == isBloodPumpOn ) || ( 0 == flowRate ) || ( dir == bloodPumpDirectionSet ) ) { +#ifndef NO_PUMP_FLOW_LIMITS // Verify flow rate - if ( flowRate <= MAX_BLOOD_FLOW_RATE ) + if ( flowRate <= MAX_BLOOD_FLOW_RATE ) +#endif { resetBloodFlowMovingAverage(); targetBloodFlowRate = ( dir == MOTOR_DIR_FORWARD ? (S32)flowRate : (S32)flowRate * -1 ); @@ -321,10 +323,12 @@ } result = TRUE; } +#ifndef NO_PUMP_FLOW_LIMITS else // Requested flow rate too high { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_BLOOD_FLOW_SET_TOO_HIGH, flowRate ) - } + } +#endif } return result; Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -rc05775820109b5e83596c58a3b4248ac6cdb1d65 -r7a754fc23436a42e61e60f66adf1cd0cc8b32ad6 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision c05775820109b5e83596c58a3b4248ac6cdb1d65) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 7a754fc23436a42e61e60f66adf1cd0cc8b32ad6) @@ -280,8 +280,10 @@ // Direction change while pump is running is not allowed if ( ( FALSE == isDialInPumpOn ) || ( 0 == flowRate ) || ( dir == dialInPumpDirectionSet ) ) { +#ifndef NO_PUMP_FLOW_LIMITS // Verify flow rate - if ( flowRate <= MAX_DIAL_IN_FLOW_RATE ) + if ( flowRate <= MAX_DIAL_IN_FLOW_RATE ) +#endif { resetDialInFlowMovingAverage(); targetDialInFlowRate = ( dir == MOTOR_DIR_FORWARD ? (S32)flowRate : (S32)flowRate * -1 ); @@ -320,10 +322,12 @@ } result = TRUE; } +#ifndef NO_PUMP_FLOW_LIMITS else // Requested flow rate too high { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_DIAL_IN_FLOW_SET_TOO_HIGH, flowRate ) - } + } +#endif } return result; Index: firmware/App/Controllers/DialOutFlow.c =================================================================== diff -u -rf84cc3084357f615d08db23da2184742bacf41ed -r7a754fc23436a42e61e60f66adf1cd0cc8b32ad6 --- firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision f84cc3084357f615d08db23da2184742bacf41ed) +++ firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision 7a754fc23436a42e61e60f66adf1cd0cc8b32ad6) @@ -240,8 +240,10 @@ // Direction change while pump is running is not allowed if ( ( FALSE == isDialOutPumpOn ) || ( 0 == flowRate ) || ( dir == dialOutPumpDirectionSet ) ) { +#ifndef NO_PUMP_FLOW_LIMITS // Verify flow rate if ( flowRate <= MAX_DIAL_OUT_FLOW_RATE ) +#endif { F32 adjFlow = (F32)flowRate; @@ -286,10 +288,12 @@ } result = TRUE; } +#ifndef NO_PUMP_FLOW_LIMITS else // Requested flow rate too high { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_DIAL_OUT_FLOW_SET_TOO_HIGH, flowRate ) } +#endif } return result; Index: firmware/App/HDCommon.h =================================================================== diff -u -r2ad92f55f437b3b293432f0aba70a5d70924f36b -r7a754fc23436a42e61e60f66adf1cd0cc8b32ad6 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 2ad92f55f437b3b293432f0aba70a5d70924f36b) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 7a754fc23436a42e61e60f66adf1cd0cc8b32ad6) @@ -80,6 +80,7 @@ // #define DISABLE_VOLTAGE_MONITOR 1 // Disable voltage monitoring/alarms #define ALLOW_1_MIN_TREATMENT_DURATION 1 // Allow user to change treatment duration to as low as 1 minute // #define DISABLE_SYRINGE_PUMP_ALARMS 1 // Disable some syringe pump alarms that are triggering intermittently +// #define NO_PUMP_FLOW_LIMITS 1 // Allow any commanded flow rate for peristaltic pumps #include #include