Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r96a23b8fe38dda9442cd6f052aeb3eadca198e4b -rbd594d51a6487960035f36d516c801de1b4aaff9 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 96a23b8fe38dda9442cd6f052aeb3eadca198e4b) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision bd594d51a6487960035f36d516c801de1b4aaff9) @@ -447,6 +447,7 @@ checkBloodPumpRotor(); } +#ifndef DISABLE_PUMP_FLOW_CHECKS // check flow sensor signal strength when appropriate TODO - in pre-treatment, must be far enough along for fluid to be in tubing if ( MODE_TREA == opMode || ( MODE_PRET == opMode && FALSE ) ) @@ -455,7 +456,8 @@ BOOL outOfRange = ( sigStrength < MIN_FLOW_SIG_STRENGTH ? TRUE : FALSE ); checkPersistentAlarm( PERSISTENT_ALARM_BLOOD_FLOW_SIGNAL_STRENGTH, outOfRange, sigStrength ); - } + } +#endif // publish blood flow data on interval publishBloodFlowData(); Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r96a23b8fe38dda9442cd6f052aeb3eadca198e4b -rbd594d51a6487960035f36d516c801de1b4aaff9 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 96a23b8fe38dda9442cd6f052aeb3eadca198e4b) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision bd594d51a6487960035f36d516c801de1b4aaff9) @@ -413,6 +413,7 @@ checkDialInPumpRotor(); } +#ifndef DISABLE_PUMP_FLOW_CHECKS // check flow sensor signal strength when appropriate TODO - in pre-treatment, must be far enough along for fluid to be in tubing if ( MODE_TREA == opMode || ( MODE_PRET == opMode && FALSE ) ) @@ -422,6 +423,7 @@ checkPersistentAlarm( PERSISTENT_ALARM_DIALYSATE_FLOW_SIGNAL_STRENGTH, outOfRange, sigStrength ); } +#endif // publish dialIn flow data on interval publishDialInFlowData(); Index: firmware/App/HDCommon.h =================================================================== diff -u -r6eb873c4bc96fb22e85ac23aeee1c37e5366d731 -rbd594d51a6487960035f36d516c801de1b4aaff9 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 6eb873c4bc96fb22e85ac23aeee1c37e5366d731) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision bd594d51a6487960035f36d516c801de1b4aaff9) @@ -47,6 +47,7 @@ #define DISABLE_PUMP_FLOW_CHECKS 1 // do not error on HD pump flow checks #define DISABLE_PUMP_SPEED_CHECKS 1 // do not error on HD pump speed checks #define DISABLE_PUMP_DIRECTION_CHECKS 1 // do not error on HD pump direction checks + #define DISABLE_SALINE_BOLUS_CHECKS 1 // do not error on HD saline bolus checks #define DISABLE_PRESSURE_CHECKS 1 // do not error on HD pressure checks #define DISABLE_UF_ALARMS 1 // do not error on HD ultrafiltration checks // #define RUN_PUMPS_OPEN_LOOP 1 // BP and DPi pumps will be run open loop (no flow sensor feedback) Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -r96a23b8fe38dda9442cd6f052aeb3eadca198e4b -rbd594d51a6487960035f36d516c801de1b4aaff9 --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision 96a23b8fe38dda9442cd6f052aeb3eadca198e4b) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision bd594d51a6487960035f36d516c801de1b4aaff9) @@ -964,12 +964,14 @@ bolusSalineLastMotorCount = bldPumpMotorCount; bolusSalineVolumeDelivered_Safety = ( (F32)bolusSalineMotorCount * VOLUME_PER_BP_MOTOR_REV_ML ); // TODO - include upstream pressure compensation to this calc +#ifndef DISABLE_SALINE_BOLUS_CHECKS // TODO - check for empty saline bag if ( 0 ) { - // TODO - empty saline bag alarm + SET_ALARM_WITH_1_F32_DATA( ALARM_ID_EMPTY_SALINE_BAG, 0.0 ); // TODO - give data supporting empty bag detection errorFound = TRUE; } +#endif // determine if we've reached maximum saline delivery volume if ( ( totalSalineVolumeDelivered >= (F32)MAX_SALINE_VOLUME_DELIVERED ) ) @@ -984,8 +986,10 @@ // if safety thinks we've under-delivered the bolus, throw a fault if ( bolusSalineVolumeDelivered_Safety < ( bolusTargetVolume * MIN_SALINE_BOLUS_VOLUME_PCT ) ) { - // TODO - fault +#ifndef DISABLE_SALINE_BOLUS_CHECKS + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE, bolusTargetVolume, bolusSalineVolumeDelivered_Safety ); errorFound = TRUE; +#endif } bolusSalineVolumeDelivered = 0.0; result = SALINE_BOLUS_STATE_IDLE; @@ -1000,9 +1004,11 @@ // determine if safety thinks we've over-delivered the bolus else if ( bolusSalineVolumeDelivered_Safety > ( bolusTargetVolume * MAX_SALINE_BOLUS_VOLUME_PCT ) ) { - // TODO - fault +#ifndef DISABLE_SALINE_BOLUS_CHECKS + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE, bolusTargetVolume, bolusSalineVolumeDelivered_Safety ); errorFound = TRUE; result = SALINE_BOLUS_STATE_IDLE; +#endif } } Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r6c6d0ab1b4e4299541d92f7b6cc89c421b01438a -rbd594d51a6487960035f36d516c801de1b4aaff9 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 6c6d0ab1b4e4299541d92f7b6cc89c421b01438a) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision bd594d51a6487960035f36d516c801de1b4aaff9) @@ -283,12 +283,11 @@ treatmentTimeMS = 0; lastTreatmentTimeStamp = getMSTimerCount(); - #ifndef DISABLE_UI_TREATMENT_WORKFLOW presTreatmentTimeSecs = SEC_PER_MIN * getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); presBloodFlowRate = getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ); presDialysateFlowRate = getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ); - presMaxUFVolumeML = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ); + presMaxUFVolumeML = getTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME ) / (F32)ML_PER_LITER; presUFRate = presMaxUFVolumeML / (F32)getTreatmentParameterU32( TREATMENT_PARAM_TREATMENT_DURATION ); #else // TODO - test code Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -r6c6d0ab1b4e4299541d92f7b6cc89c421b01438a -rbd594d51a6487960035f36d516c801de1b4aaff9 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 6c6d0ab1b4e4299541d92f7b6cc89c421b01438a) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision bd594d51a6487960035f36d516c801de1b4aaff9) @@ -163,7 +163,7 @@ stagedParams[ param ].uInt = 0; } #ifndef DISABLE_UI_TREATMENT_WORKFLOW - setTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME, 600 ); + setTreatmentParameterF32( TREATMENT_PARAM_UF_VOLUME, 0.6 ); #endif // zero original parameter values Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r96a23b8fe38dda9442cd6f052aeb3eadca198e4b -rbd594d51a6487960035f36d516c801de1b4aaff9 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 96a23b8fe38dda9442cd6f052aeb3eadca198e4b) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision bd594d51a6487960035f36d516c801de1b4aaff9) @@ -149,6 +149,8 @@ { ALARM_PRIORITY_HIGH, ALM_ESC_4_MIN, ALARM_ID_BLOOD_SITTING_WARNING, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE }, // ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT { ALARM_PRIORITY_HIGH, ALM_ESC_4_MIN, ALARM_ID_BLOOD_SITTING_WARNING, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE }, // ALARM_ID_BLOOD_FLOW_SIGNAL_STRENGTH_TOO_LOW { ALARM_PRIORITY_HIGH, ALM_ESC_4_MIN, ALARM_ID_BLOOD_SITTING_WARNING, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, TRUE }, // ALARM_ID_DIALYSATE_FLOW_SIGNAL_STRENGTH_TOO_LOW + { ALARM_PRIORITY_HIGH, ALM_ESC_4_MIN, ALARM_ID_BLOOD_SITTING_WARNING, FALSE, TRUE , FALSE, FALSE, FALSE, FALSE, FALSE, FALSE }, // ALARM_ID_EMPTY_SALINE_BAG + { ALARM_PRIORITY_HIGH, 0, ALARM_ID_NO_ALARM, TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE }, // ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE }; // *** This declaration will cause a compiler error if alarmTable does not have same # of alarms as the Alarm_List enumeration.