Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r0665a32e26dd466378e6ea6fda940353afc691f1 -r52412b5ae4d6087c1363676430942360f751dd7d --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 0665a32e26dd466378e6ea6fda940353afc691f1) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 52412b5ae4d6087c1363676430942360f751dd7d) @@ -85,8 +85,6 @@ static const U32 BP_DIRECTION_ERROR_PERSIST = ( 250 ); /// Persist time period (in ms) blood pump rotor speed too fast error condition. static const U32 BP_MAX_ROTOR_SPEED_ERROR_PERSIST = ( 1 * MS_PER_SECOND ); -/// Persist time (in ms) blood flow rate out of range error condition. -static const U32 BP_MAX_FLOW_RATE_OUT_OF_RANGE_PERSIST = (1 * MS_PER_SECOND); #define BP_MAX_CURR_WHEN_STOPPED_MA 150.0F ///< Motor controller current should not exceed this when pump should be stopped. #define BP_MAX_CURR_WHEN_RUNNING_MA 2000.0F ///< Motor controller current should not exceed this when pump should be running. @@ -219,7 +217,6 @@ static void checkBloodPumpDirection( void ); static void checkBloodPumpSpeeds( void ); static void checkBloodPumpMCCurrent( void ); -static void checkBloodPumpFlowRate( void ); static F32 calcBloodFlow( void ); static void resetBloodPumpRPMMovingAverage( void ); @@ -264,7 +261,6 @@ initTimeWindowedCount( TIME_WINDOWED_COUNT_BP_COMMUTATION_ERROR, BP_COMMUTATION_ERROR_MAX_CNT, BP_COMMUTATION_ERROR_TIME_WIN_MS ); initPersistentAlarm( ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH, 0, BP_MAX_ROTOR_SPEED_ERROR_PERSIST ); initPersistentAlarm( ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK, 0, BP_MAX_CURR_ERROR_DURATION_MS ); - initPersistentAlarm( ALARM_ID_HD_BLOOD_FLOW_OUT_OF_RANGE, 0, BP_MAX_FLOW_RATE_OUT_OF_RANGE_PERSIST ); } /*********************************************************************//** @@ -580,9 +576,8 @@ checkBloodPumpDirection(); // Check pump controller current checkBloodPumpMCCurrent(); - // Check pump speeds and flow + // Check pump speeds checkBloodPumpSpeeds(); - checkBloodPumpFlowRate(); // Check for home position, zero/low speed checkBloodPumpRotor(); } @@ -1273,30 +1268,6 @@ } } -/*********************************************************************//** - * @brief - * The checkBloodPumpFlowRate function checks the measured blood flow rate - * is in range. - * @details Inputs: measuredBloodFlowRate - * @details Outputs: alarm may be triggered - * @return none - *************************************************************************/ -static void checkBloodPumpFlowRate( void ) -{ -#ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_PUMP_FLOW_CHECKS ) != SW_CONFIG_ENABLE_VALUE ) -#endif - { - F32 flow = getMeasuredBloodFlowRate(); - - // Range check on measure BP flow rate. - if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_BLOOD_FLOW_OUT_OF_RANGE, ( flow > BP_MAX_FLOW_RATE ) || ( flow < BP_MIN_FLOW_RATE ) ) ) - { - SET_ALARM_WITH_1_F32_DATA( ALARM_ID_HD_BLOOD_FLOW_OUT_OF_RANGE, flow ); - } - } -} - /*********************************************************************//** * @brief * The execBloodFlowTest function executes the state machine for the Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r0665a32e26dd466378e6ea6fda940353afc691f1 -r52412b5ae4d6087c1363676430942360f751dd7d --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 0665a32e26dd466378e6ea6fda940353afc691f1) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 52412b5ae4d6087c1363676430942360f751dd7d) @@ -83,8 +83,6 @@ static const U32 DIP_ROTOR_ERROR_PERSIST_ROTATION_MIN = 3; /// Persist time (task intervals) pump direction error condition. static const U32 DIP_DIRECTION_ERROR_PERSIST = (250 / TASK_PRIORITY_INTERVAL); -/// Persist time (task intervals) dialysate flow rate out of range error condition. -static const U32 DIP_MAX_FLOW_RATE_OUT_OF_RANGE_PERSIST = (1 * MS_PER_SECOND); /// Time threshold to trigger an alarm if Dialysate flow data has not arrived within 3 seconds static const U32 DIP_DIALYSATE_FLOW_DATA_ALARM_THRESHOLD = ((3 * MS_PER_SECOND) / TASK_PRIORITY_INTERVAL); @@ -234,9 +232,9 @@ static void updateDialInPumpSpeedAndDirectionFromHallSensors( void ); static void checkDialInPumpRotor( void ); static void checkDialInPumpDirection( void ); -static void checkDialInPumpSpeeds( void ); +static void checkDialInPumpSpeeds( void ); +static void checkDialInPumpFlowRate( void ); static void checkDialInPumpMCCurrent( void ); -static void checkDialInPumpFlowRate( void ); static F32 calcDialInFlow( void ); static F32 dialysateInPumpRPMFromTargetFlowRate( F32 QdTarget ); static F32 dialysateInPumpPWMFromTargetFlowRate( F32 QdTarget ); @@ -274,8 +272,7 @@ DIP_P_COEFFICIENT, DIP_I_COEFFICIENT, MIN_DIAL_IN_PUMP_PWM_DUTY_CYCLE, MAX_DIAL_IN_PUMP_PWM_DUTY_CYCLE ); - // Initialize persistent alarm for flow sensor signal strength too low - initPersistentAlarm( ALARM_ID_HD_DIAL_IN_FLOW_OUT_OF_RANGE, 0, DIP_MAX_FLOW_RATE_OUT_OF_RANGE_PERSIST ); + // Initialize persistent alarms initPersistentAlarm( ALARM_ID_HD_DIAL_IN_FLOW_CHECK_FAILURE, 0, DIP_NO_FLOW_CHK_PERSIST ); initTimeWindowedCount( TIME_WINDOWED_COUNT_DIP_COMMUTATION_ERROR, DIP_COMMUTATION_ERROR_MAX_CNT, DIP_COMMUTATION_ERROR_TIME_WIN_MS ); } @@ -1406,17 +1403,6 @@ { F32 flow = getMeasuredDialInFlowRate(); - // Range check on measure DPi flow rate. - if ( ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_DIAL_IN_FLOW_OUT_OF_RANGE, ( flow > DIP_MAX_FLOW_RATE ) || ( flow < DIP_MIN_FLOW_RATE ) ) ) ) - { -#ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_PUMP_FLOW_CHECKS ) != SW_CONFIG_ENABLE_VALUE ) -#endif - { - SET_ALARM_WITH_1_F32_DATA( ALARM_ID_HD_DIAL_IN_FLOW_OUT_OF_RANGE, flow ); - } - } - // Check DG Dialysate flow rate if ( ( TRUE == isDialInPumpRunning() ) && ( dialInPumpControlMode != PUMP_CONTROL_MODE_OPEN_LOOP ) ) {