Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r5070f8552a200e15dcc2ca0532db10fba9dc8c6b -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 5070f8552a200e15dcc2ca0532db10fba9dc8c6b) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -1145,7 +1145,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 } bpMCDir = ( getMeasuredBloodPumpMCSpeed() >= 0.0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r5070f8552a200e15dcc2ca0532db10fba9dc8c6b -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 5070f8552a200e15dcc2ca0532db10fba9dc8c6b) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -1122,7 +1122,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 } dipMCDir = ( getMeasuredDialInPumpMCSpeed() >= 0.0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); Index: firmware/App/HDCommon.h =================================================================== diff -u -r5070f8552a200e15dcc2ca0532db10fba9dc8c6b -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 5070f8552a200e15dcc2ca0532db10fba9dc8c6b) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -5,13 +5,13 @@ * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * -* @file HDCommon.h +* @file HDCommon.h * -* @author (last) Sean Nash -* @date (last) 14-Oct-2020 +* @author (last) Sean Nash +* @date (last) 14-Oct-2020 * -* @author (original) Sean -* @date (original) 27-Feb-2020 +* @author (original) Sean +* @date (original) 27-Feb-2020 * ***************************************************************************/ @@ -25,7 +25,7 @@ #define HD_VERSION_MAJOR 0 #define HD_VERSION_MINOR 6 #define HD_VERSION_MICRO 0 -#define HD_VERSION_BUILD 0 +#define HD_VERSION_BUILD 85 // ********** development build switches ********** @@ -56,7 +56,8 @@ #define DISABLE_SYRINGE_PUMP 1 // Disable syringe pump functionality #define ALWAYS_ALLOW_SYRINGE_PUMP_CMDS 1 // Allow syringe pump commands at any time except when pump is busy #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 DISABLE_UF_ALARMS 1 // Do not error on HD ultrafiltration checks + #define DISABLE_DIALYSATE_TEMP_CHECK 1 // Disable dialysate temperature check #define DISABLE_VALVE_ALARMS 1 // Do not error on HD valve position #define SKIP_CAL_CHECK 1 // // #define RUN_PUMPS_OPEN_LOOP 1 // BP and DPi pumps will be run open loop (no flow sensor feedback) @@ -70,7 +71,7 @@ #define DISABLE_OCCLUSION_SELF_TEST 1 // Skip occlusion sensor self-test. // #define SKIP_CARTRIDGE_REMOVAL 1 // Skip cartridge removal check // #define DISABLE_FPGA_COUNTER_CHECKS 1 // Disable alarms associated with FPGA read/error counters -// #define DISABLE_VOLTAGE_MONITOR 1 // Disable voltage monitoring/alarms + #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 Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r0237b2fc49d60b6602bac35ce43831b37f294c81 -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 0237b2fc49d60b6602bac35ce43831b37f294c81) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -376,6 +376,10 @@ case ALARM_ACTION_END_TREATMENT: if ( HD_PRE_TREATMENT_PRIME_STATE > currentPreTreatmentState ) { + if ( HD_PRE_TREATMENT_WATER_SAMPLE_STATE == currentPreTreatmentState ) + { + cmdDGSampleWater( SAMPLE_WATER_CMD_END ); + } requestNewOperationMode( MODE_STAN ); } else Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r935694e8acbb551be64549e014d1f1963cf6240d -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 935694e8acbb551be64549e014d1f1963cf6240d) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -151,12 +151,12 @@ U16 bloodOcclusionData; ///< Reg 276. Blood pump occlusion sensor data. U08 bloodOcclusionReadCount; ///< Reg 278. Blood pump occlusion sensor read count. U08 bloodOcclusionErrorCount; ///< Reg 279. Blood pump occlusion sensor error count. - U16 dialysateInOcclusionData; ///< Reg 280. Dialysate inlet pump occlusion sensor data. - U08 dialysateInOcclusionReadCount; ///< Reg 282. Dialysate inlet pump occlusion sensor read count. - U08 dialysateInOcclusionErrorCount; ///< Reg 283. Dialysate inlet pump occlusion sensor error count. - U16 dialysateOutOcclusionData; ///< Reg 284. Dialysate outlet pump occlusion sensor data. - U08 dialysateOutOcclusionReadCount; ///< Reg 286. Dialysate outlet pump occlusion sensor read count. - U08 dialysateOutOcclusionErrorCount; ///< Reg 287. Dialysate outlet pump occlusion sensor error count. + U16 obsolete1; ///< Reg 280. Unused. + U08 obsolete2; ///< Reg 282. Unused. + U08 obsolete3; ///< Reg 283. Unused. + U16 obsolete4; ///< Reg 284. Unused. + U08 obsolete5; ///< Reg 286. Unused. + U08 obsolete6; ///< Reg 287. Unused. U16 bloodPumpHallSensorCount; ///< Reg 288. Blood pump hall sensor count. U08 bloodPumpHallSensorStatus; ///< Reg 290. Blood pump hall sensor status. U08 dialInPumpHallSensorStatus; ///< Reg 291. Dialysate inlet pump hall sensor status. @@ -1540,32 +1540,6 @@ /*********************************************************************//** * @brief - * The getFPGADialInPumpOcclusion function gets the latest dialysate - * inlet occlusion reading. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return last dialysate inlet occlusion reading - *************************************************************************/ -U16 getFPGADialInPumpOcclusion( void ) -{ - return fpgaSensorReadings.dialysateInOcclusionData; -} - -/*********************************************************************//** - * @brief - * The getFPGADialOutPumpOcclusion function gets the latest dialysate - * outlet occlusion reading. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return last dialysate outlet occlusion reading - *************************************************************************/ -U16 getFPGADialOutPumpOcclusion( void ) -{ - return fpgaSensorReadings.dialysateOutOcclusionData; -} - -/*********************************************************************//** - * @brief * The getFPGABloodPumpOcclusionReadCounter function gets the latest blood * pump occlusion read counter. * @details Inputs: fpgaSensorReadings @@ -1579,32 +1553,6 @@ /*********************************************************************//** * @brief - * The getFPGADialInPumpOcclusionReadCounter function gets the latest dialysate - * inlet pump occlusion read counter. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return last dialysate inlet pump occlusion read counter - *************************************************************************/ -U08 getFPGADialInPumpOcclusionReadCounter( void ) -{ - return fpgaSensorReadings.dialysateInOcclusionReadCount; -} - -/*********************************************************************//** - * @brief - * The getFPGADialOutPumpOcclusionReadCounter function gets the latest dialysate - * outlet pump occlusion read counter. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return last dialysate outlet pump occlusion read counter - *************************************************************************/ -U08 getFPGADialOutPumpOcclusionReadCounter( void ) -{ - return fpgaSensorReadings.dialysateOutOcclusionReadCount; -} - -/*********************************************************************//** - * @brief * The getFPGABloodPumpOcclusionErrorCounter function gets the latest blood * pump occlusion error counter. * @details Inputs: fpgaSensorReadings @@ -1618,32 +1566,6 @@ /*********************************************************************//** * @brief - * The getFPGADialInPumpOcclusionErrorCounter function gets the latest dialysate - * inlet pump occlusion error counter. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return last dialysate inlet pump occlusion error counter - *************************************************************************/ -U08 getFPGADialInPumpOcclusionErrorCounter( void ) -{ - return fpgaSensorReadings.dialysateInOcclusionErrorCount; -} - -/*********************************************************************//** - * @brief - * The getFPGADialOutPumpOcclusionErrorCounter function gets the latest dialysate - * outlet pump occlusion error counter. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return last dialysate outlet pump occlusion error counter - *************************************************************************/ -U08 getFPGADialOutPumpOcclusionErrorCounter( void ) -{ - return fpgaSensorReadings.dialysateOutOcclusionErrorCount; -} - -/*********************************************************************//** - * @brief * The getFPGAArterialPressure function gets the latest arterial pressure reading. * High byte indicates alarm status for ADC channel. * Low 24-bits are channel reading. Subtract 2^23 from low 24 bits to get Index: firmware/App/Services/FPGA.h =================================================================== diff -u -r935694e8acbb551be64549e014d1f1963cf6240d -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/Services/FPGA.h (.../FPGA.h) (revision 935694e8acbb551be64549e014d1f1963cf6240d) +++ firmware/App/Services/FPGA.h (.../FPGA.h) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -90,14 +90,8 @@ U16 getFPGAVenousPressureTemperature( void ); U08 getFPGAVenousPressureReadCounter( void ); U16 getFPGABloodPumpOcclusion( void ); -U16 getFPGADialInPumpOcclusion( void ); -U16 getFPGADialOutPumpOcclusion( void ); U08 getFPGABloodPumpOcclusionReadCounter( void ); -U08 getFPGADialInPumpOcclusionReadCounter( void ); -U08 getFPGADialOutPumpOcclusionReadCounter( void ); U08 getFPGABloodPumpOcclusionErrorCounter( void ); -U08 getFPGADialInPumpOcclusionErrorCounter( void ); -U08 getFPGADialOutPumpOcclusionErrorCounter( void ); void setFPGASyringePumpControlFlags( U08 bitFlags ); void setFPGASyringePumpADCandDACControlFlags( U08 bitFlags ); Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r5070f8552a200e15dcc2ca0532db10fba9dc8c6b -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 5070f8552a200e15dcc2ca0532db10fba9dc8c6b) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -195,7 +195,7 @@ if ( TRUE == isAlarmActive( ALARM_ID_DG_COMM_TIMEOUT ) ) { - clearAlarm( ALARM_ID_DG_COMM_TIMEOUT ); + clearAlarmCondition( ALARM_ID_DG_COMM_TIMEOUT ); } } Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r5070f8552a200e15dcc2ca0532db10fba9dc8c6b -r38b5b0408730290c3ad591711ba1613e85045cd5 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 5070f8552a200e15dcc2ca0532db10fba9dc8c6b) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 38b5b0408730290c3ad591711ba1613e85045cd5) @@ -2254,7 +2254,7 @@ TEMPERATURE_SENSORS_DATA_T payload; memcpy( &payload, message->payload, sizeof( TEMPERATURE_SENSORS_DATA_T ) ); - setDialysateTemperatureReadings( payload.inletDialysate, payload.outletRedundant ); + setDialysateTemperatureReadings( payload.TDi, payload.TRo ); } // TODO - what to do if invalid payload length? // TODO - how to know if DG stops sending these? @@ -5163,6 +5163,7 @@ if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) { memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) { result = testSetBatteryRemainingPercentOverride( payload.state.u32 );