Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r6d05f4b1484a9271d8cf3b529dbb7e5080e7c954 -rfa0ab419491364c1d2a28caf216e20175181372d --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 6d05f4b1484a9271d8cf3b529dbb7e5080e7c954) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision fa0ab419491364c1d2a28caf216e20175181372d) @@ -1273,7 +1273,7 @@ HD_FLOW_SENSORS_CAL_RECORD_T cal = getHDFlowSensorsCalibrationRecord(); // Retrieve blood flow sensor calibration data and check for sensor connected status - if ( BFM_SENSOR_PARAM_CORRUPT_STATUS != getFPGABloodFlowMeterStatus() ) + if ( BFM_SENSOR_PARAM_CORRUPT_STATUS != bfmStatus ) { bloodFlowCalGain = cal.hdFlowSensors[ CAL_DATA_HD_BLOOD_FLOW_SENSOR ].gain; bloodFlowCalOffset = cal.hdFlowSensors[ CAL_DATA_HD_BLOOD_FLOW_SENSOR ].offset; Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r6419179374edcd65da462de84e8aeaefb7e20320 -rfa0ab419491364c1d2a28caf216e20175181372d --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 6419179374edcd65da462de84e8aeaefb7e20320) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision fa0ab419491364c1d2a28caf216e20175181372d) @@ -1230,7 +1230,7 @@ // Get the flow sensors calibration record HD_FLOW_SENSORS_CAL_RECORD_T cal = getHDFlowSensorsCalibrationRecord(); - if ( DFM_SENSOR_PARAM_CORRUPT_STATUS != getFPGADialysateFlowMeterStatus() ) + if ( DFM_SENSOR_PARAM_CORRUPT_STATUS != dfmStatus ) { dialInFlowCalGain = cal.hdFlowSensors[ CAL_DATA_HD_DIALYZER_FLOW_SENSOR ].gain; dialInFlowCalOffset = cal.hdFlowSensors[ CAL_DATA_HD_DIALYZER_FLOW_SENSOR ].offset; Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r6419179374edcd65da462de84e8aeaefb7e20320 -rfa0ab419491364c1d2a28caf216e20175181372d --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 6419179374edcd65da462de84e8aeaefb7e20320) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision fa0ab419491364c1d2a28caf216e20175181372d) @@ -270,7 +270,7 @@ { U32 fpgaArtPres = getFPGAArterialPressure(); S32 artPres = (S32)( fpgaArtPres & MASK_OFF_U32_MSB ) - 0x800000; // Subtract 2^23 from low 24 bits to get signed reading - U08 artPresAlarm = (U08)( fpgaArtPres >> 24 ); // High byte is alarm code for arterial pressure + U08 artPresAlarm = (U08)( fpgaArtPres >> SHIFT_24_BITS ); // High byte is alarm code for arterial pressure U16 fpgaVenPres = getFPGAVenousPressure(); U16 venPres = fpgaVenPres & 0x3FFF; // 14-bit data U08 venPresStatus = (U08)( fpgaVenPres >> 14 ); // High 2 bits is status code for venous pressure Index: firmware/App/Controllers/SyringePump.c =================================================================== diff -u -r5fef605363d4f8023b3db2989b097b6c5f58db1a -rfa0ab419491364c1d2a28caf216e20175181372d --- firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision 5fef605363d4f8023b3db2989b097b6c5f58db1a) +++ firmware/App/Controllers/SyringePump.c (.../SyringePump.c) (revision fa0ab419491364c1d2a28caf216e20175181372d) @@ -67,11 +67,11 @@ #define SYRINGE_PUMP_PRIME_RATE 635.0 ///< Prime rate is 0.5 mm ^ 2 x PI x 450 mm = 0.353 mL / 2s = 635 mL/hr. #define SYRINGE_PUMP_MAX_RATE 11000.0 ///< Maximum rate of the syringe pump (in mL/hr). -#define SYRINGE_PUMP_RATE_ALARM_PERSISTENCE ( 3000 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump speed check alarms. -#define SYRINGE_PUMP_DIR_ALARM_PERSISTENCE ( 1000 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump direction check alarms. -#define SYRINGE_PUMP_OFF_ALARM_PERSISTENCE ( 500 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump off check alarms. -#define SYRINGE_PUMP_OCCLUSION_ALARM_PERSISTENCE ( 30 / TASK_PRIORITY_INTERVAL ) ///< Alarm persistence period for syringe pump occlusion alarms. -#define SYRINGE_PUMP_ADC_READ_PERSISTENCE ( 100 / TASK_PRIORITY_INTERVAL ) ///< Syringe pump ADC stale read alarm persistence time (100 ms). +#define SYRINGE_PUMP_RATE_ALARM_PERSISTENCE 3000 ///< Alarm persistence period (in ms) for syringe pump speed check alarms. +#define SYRINGE_PUMP_DIR_ALARM_PERSISTENCE 1000 ///< Alarm persistence period (in ms) for syringe pump direction check alarms. +#define SYRINGE_PUMP_OFF_ALARM_PERSISTENCE 500 ///< Alarm persistence period (in ms) for syringe pump off check alarms. +#define SYRINGE_PUMP_OCCLUSION_ALARM_PERSISTENCE 30 ///< Alarm persistence period (in ms) for syringe pump occlusion alarms. +#define SYRINGE_PUMP_ADC_READ_PERSISTENCE 100 ///< Syringe pump ADC stale read alarm persistence time (in ms). #define STEPS_TO_MICROSTEPS( s ) ( (s) * 32.0 ) ///< Macro conversion from steps to microsteps. #define MICROSTEPS_TO_STEPS( m ) ( (m) / 32.0 ) ///< Macro conversion from microsteps to steps. Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r6419179374edcd65da462de84e8aeaefb7e20320 -rfa0ab419491364c1d2a28caf216e20175181372d --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 6419179374edcd65da462de84e8aeaefb7e20320) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision fa0ab419491364c1d2a28caf216e20175181372d) @@ -519,9 +519,9 @@ } // If retries for commands exceeds limit, fault - if ( fpgaCommRetryCount > MAX_COMM_ERROR_RETRIES ) + if ( ( fpgaCommRetryCount > MAX_COMM_ERROR_RETRIES ) || ( fpgaSensorReadings.errorCountProcessor > MAX_COMM_ERROR_RETRIES ) ) { - activateAlarmNoData( ALARM_ID_FPGA_COMM_TIMEOUT ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_FPGA_COMM_TIMEOUT, fpgaCommRetryCount, (U32)fpgaSensorReadings.errorCountProcessor ) } // Reset comm flags after processing incoming responses