Index: firmware/App/Controllers/ConcentratePumps.h =================================================================== diff -u -r3461c140ba07e74863dee1d4c51d0119076fecf8 -r7d0fd5ed6b9db0479af90477e5108f6d3fa8df17 --- firmware/App/Controllers/ConcentratePumps.h (.../ConcentratePumps.h) (revision 3461c140ba07e74863dee1d4c51d0119076fecf8) +++ firmware/App/Controllers/ConcentratePumps.h (.../ConcentratePumps.h) (revision 7d0fd5ed6b9db0479af90477e5108f6d3fa8df17) @@ -1,24 +1,25 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. * * 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 ConcentratePumps.h +* @file ConcentratePumps.h * -* @author (last) Quang Nguyen -* @date (last) 30-Sep-2020 +* @author (last) Dara Navaei +* @date (last) 09-Apr-2024 * -* @author (original) Quang Nguyen -* @date (original) 30-Sep-2020 +* @author (original) Quang Nguyen +* @date (original) 22-Oct-2020 * ***************************************************************************/ #ifndef __CONCENTRATEPUMPS_H__ #define __CONCENTRATEPUMPS_H__ #include "DGCommon.h" +#include "NVDataMgmt.h" /** * @defgroup ConcentratePumps ConcentratePumps @@ -30,21 +31,38 @@ // ********** public definitions ********** +#define CONCENTRATE_PUMP_MAX_SPEED 48.0F ///< Maximum speed for concentrate pump in mL/min + +#define PARK_CONC_PUMPS TRUE ///< For park parameter to requestConcentratePumpOff(). +#define NO_PARK_CONC_PUMPS FALSE ///< For park parameter to requestConcentratePumpOff(). + /// Enumeration of concentrate pumps. typedef enum ConcentratePumps { - CONCENTRATEPUMPS_CP1 = 0, ///< Acid concentrate pump - CONCENTRATEPUMPS_CP2, ///< Bicarbonate concentrate pump - NUM_OF_CONCENTRATE_PUMPS ///< Number of concentrate pumps + + CONCENTRATEPUMPS_CP1_ACID = 0, ///< Acid concentrate pump + CONCENTRATEPUMPS_FIRST = CONCENTRATEPUMPS_CP1_ACID, ///< First concentrate pump in list + CONCENTRATEPUMPS_CP2_BICARB, ///< Bicarbonate concentrate pump + NUM_OF_CONCENTRATE_PUMPS ///< Number of concentrate pumps } CONCENTRATE_PUMPS_T; /// Concentrate pump data struct. typedef struct { - F32 cp1TargetSpeed; ///< Concentrate pump CP1 target speed - F32 cp1MeasuredSpeed; ///< Concentrate pump CP1 measured speed - F32 cp2TargetSpeed; ///< Concentrate pump CP2 target speed - F32 cp2MeasuredSpeed; ///< Concentrate pump CP2 measured speed + F32 cp1CurrentSetSpeed; ///< Concentrate pump CP1 current set speed + F32 cp1MeasuredSpeed; ///< Concentrate pump CP1 measured speed + F32 cp2CurrentSetSpeed; ///< Concentrate pump CP2 current set speed + F32 cp2MeasuredSpeed; ///< Concentrate pump CP2 measured speed + U32 cp1State; ///< Concentrate pump CP1 current state + U32 cp2State; ///< Concentrate pump CP2 current state + F32 cp1PulseUS; ///< Concentrate pump CP1 pulse in microseconds + F32 cp2PulseUS; ///< Concentrate pump CP2 pulse in microseconds + F32 cp1TargetSpeed; ///< Concentrate pump CP1 target speed + F32 cp2TargetSpeed; ///< Concentrate pump CP2 target speed + BOOL cp1Parked; ///< Concentrate pump CP1 parked status + BOOL cp2Parked; ///< Concentrate pump CP2 parked status + BOOL cp1ParkFault; ///< Concentrate pump CP1 park fault status + BOOL cp2ParkFault; ///< Concentrate pump CP2 park fault status } CONCENTRATE_PUMP_DATA_T; // ********** public function prototypes ********** @@ -53,16 +71,29 @@ void execConcentratePumpMonitor( void ); void execConcentratePumpController( void ); -void requestConcentratePumpsOn( CONCENTRATE_PUMPS_T pumpId ); -void requestConcentratePumpsOff( CONCENTRATE_PUMPS_T pumpId ); +SELF_TEST_STATUS_T execConcenratePumpsSelfTest( void ); +void requestConcentratePumpOn( CONCENTRATE_PUMPS_T pumpId ); +void requestConcentratePumpOff( CONCENTRATE_PUMPS_T pumpId, BOOL park ); + void setConcentratePumpTargetSpeed( CONCENTRATE_PUMPS_T pumpId, F32 targetSpeed_ml_min ); +F32 getConcentratePumpTargetFlowMLPM( CONCENTRATE_PUMPS_T pumpId ); +F32 getMeasuredPumpSpeedMLPM( CONCENTRATE_PUMPS_T pumpId ); +BOOL getConcPumpIsParked( CONCENTRATE_PUMPS_T pumpId ); +BOOL getConcPumpParkIsFaulted( CONCENTRATE_PUMPS_T pumpId ); +BOOL handleConcentratePumpParkRequest( void ); +BOOL isConcPumpParkInProgress( CONCENTRATE_PUMPS_T pumpId ); BOOL testSetConcentratePumpDataPublishIntervalOverride( U32 value ); BOOL testResetConcentratePumpDataPublishIntervalOverride( void ); BOOL testSetConcentratePumpTargetSpeedOverride( U32 pumpId, F32 value ); BOOL testSetConcentratePumpMeasuredSpeedOverride( U32 pumpId, F32 value ); BOOL testResetConcentratePumpMeasuredSpeedOverride( U32 pumpId ); +BOOL testSetConcentratePumpParkedOverride( U32 pumpId, U32 value ); +BOOL testResetConcentratePumpParkedOverride( U32 pumpId ); +BOOL testSetConcentratePumpParkCmdFaultedOverride( U32 pumpId, U32 value ); +BOOL testResetConcentratePumpParkCmdFaultedOverride( U32 pumpId ); +BOOL testSetConcentratePumpParkCommand( U32 pumpId ); /**@}*/