Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -r7336ffd91e991f7156b01a7f15ed2afd85b62f80 -rd4e5e5e155cd938823ee8eb8b090355e1fcc37a2 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 7336ffd91e991f7156b01a7f15ed2afd85b62f80) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision d4e5e5e155cd938823ee8eb8b090355e1fcc37a2) @@ -58,6 +58,7 @@ } CONCENTRATE_PUMP_STATE_T; // ********** private data ********** + static CONCENTRATE_PUMP_STATE_T concentratePumpState; ///< Concentrate pump module current state. static BOOL isPumpOnRequested; ///< Flag indicates a request to turn concentrate pumps on. static BOOL isPumpOffRequested; ///< Flag indicates a request to turn concentrate pumps off. @@ -109,6 +110,7 @@ { if ( ++concentratePumpMonitorTimerCounter >= getPublishConcentratePumpDataInterval() ) { + CONCENTRATE_PUMP_DATA_T data; concentratePumpMonitorTimerCounter = 0U; F32 const cp1PulseWidthInSecond = (F32)( getFPGACP1HallSensePulseWidth() * CONCENTRATE_PUMP_HALL_SENSE_PERIOD_RESOLUTION ) / US_PER_SECOND; @@ -117,7 +119,12 @@ F32 const cp1SpeedMlPerMin = ( 1 / cp1PulseWidthInSecond ) * CONCENTRATE_PUMP_VOLUME_PER_PULSE * SEC_PER_MIN; F32 const cp2SpeedMlPerMin = ( 1 / cp2PulseWidthInSecond ) * CONCENTRATE_PUMP_VOLUME_PER_PULSE * SEC_PER_MIN; - broadcastConcentratePumpData( getConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP1 ), cp1SpeedMlPerMin, getConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP2 ), cp2SpeedMlPerMin ); + data.cp1TargetSpeed = getConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP1 ); + data.cp1MeasuredSpeed = cp1SpeedMlPerMin; + data.cp2TargetSpeed = getConcentratePumpTargetSpeed( CONCENTRATEPUMPS_CP2 ); + data.cp2MeasuredSpeed = cp2SpeedMlPerMin; + + broadcastConcentratePumpData( &data ); } } @@ -135,9 +142,11 @@ case CONCENTRATE_PUMP_OFF_STATE: concentratePumpState = handleConcentratePumpOffState(); break; + case CONCENTRATE_PUMP_ON_STATE: concentratePumpState = handleConcentratePumpOnState(); break; + default: SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_CONCENTRATE_PUMP_EXEC_INVALID_STATE, concentratePumpState ) concentratePumpState = CONCENTRATE_PUMP_OFF_STATE; @@ -329,6 +338,14 @@ return state; } +/*********************************************************************//** + * @brief + * The getConcentratePumpTargetSpeed function gets the concentrate pump + * target speed for a given pump id. + * @details Inputs: pumpTargetSpeed + * @details Outputs: none + * @return the current concentrate pump target speed. + *************************************************************************/ static F32 getConcentratePumpTargetSpeed( CONCENTRATE_PUMPS_T pumpId ) { F32 result = 0.0;