Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -rc76b19226ffe463dbaa428f6af0659561d05db9f -rc5586e0292b8e988e89a7304f63be32afcad1466 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision c76b19226ffe463dbaa428f6af0659561d05db9f) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision c5586e0292b8e988e89a7304f63be32afcad1466) @@ -148,7 +148,13 @@ if ( ++concentratePumpMonitorTimerCounter >= getPublishConcentratePumpDataInterval() ) { CONCENTRATE_PUMP_DATA_T data; + U08 const fpgaConcentratePumpsFault = getFPGAConcentratePumpsFault(); + if ( 0 != (U32)fpgaConcentratePumpsFault ) + { + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DG_CONCENTRATE_PUMP_FAULT, fpgaConcentratePumpsFault ); + } + calcMeasuredPumpsSpeed( CONCENTRATEPUMPS_CP1_ACID, getFPGACP1HallSensePulseWidth() ); calcMeasuredPumpsSpeed( CONCENTRATEPUMPS_CP2_BICARB, getFPGACP2HallSensePulseWidth() ); @@ -157,10 +163,10 @@ data.cp2CurrentSetSpeed = concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].currentPumpSpeed; data.cp2MeasuredSpeed = getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ); +#ifndef DISABLE_DIALYSATE_CHECK F32 const cp1Error = fabs( getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) - concentratePumps[ CONCENTRATEPUMPS_CP1_ACID ].currentPumpSpeed ) / concentratePumps[ CONCENTRATEPUMPS_CP1_ACID ].currentPumpSpeed; F32 const cp2Error = fabs( getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) - concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].currentPumpSpeed ) / concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].currentPumpSpeed; -#ifndef DISABLE_DIALYSATE_CHECK checkPersistentAlarm( ALARM_ID_CP1_SPEED_CONTROL_ERROR, cp1Error > CONCENTRATE_PUMP_ERROR_TOLERANCE, cp1Error, CONCENTRATE_PUMP_ERROR_TOLERANCE ); checkPersistentAlarm( ALARM_ID_CP2_SPEED_CONTROL_ERROR, cp2Error > CONCENTRATE_PUMP_ERROR_TOLERANCE, cp2Error, CONCENTRATE_PUMP_ERROR_TOLERANCE ); #endif