Index: firmware/App/Controllers/ConcentratePumps.h =================================================================== diff -u -rdedf0cbae7f010d314c430f06834114213e18f2c -r352df4446493c8e071cc8e05fca8f191ac1bfba7 --- firmware/App/Controllers/ConcentratePumps.h (.../ConcentratePumps.h) (revision dedf0cbae7f010d314c430f06834114213e18f2c) +++ firmware/App/Controllers/ConcentratePumps.h (.../ConcentratePumps.h) (revision 352df4446493c8e071cc8e05fca8f191ac1bfba7) @@ -30,9 +30,20 @@ */ // ********** public definitions ********** - +#ifdef __DIENER_CONC_PUMP__ +// For 100 RPM, Diener pump delivers 40ml/min,so restricing 300 RPM for now to maintain accuracy. We may allow up to 500 RPM +// that yields 200 ml/min, but as speed increases, accuracy may drop. +#define CONCENTRATE_PUMP_MAX_SPEED 60.0F ///< Optimal speed for concentrate pump in mL/min +#define UF_PUMP_SPEED 100.0F ///< 100 ml/min, runs at 250 RPM +#else #define CONCENTRATE_PUMP_MAX_SPEED 48.0F ///< Maximum speed for concentrate pump in mL/min +#define UF_PUMP_SPEED 40.0F ///< 40 ml/min, runs at 400 RPM +#endif +#define DEFAULT_ACID_VOLUME_ML 0.67F ///< Acid concentrate volume in ml. +#define DEFAULT_BICARB_VOLUME_ML 1.15F ///< Bicarb concentrate volume in ml. +#define DOSING_CONT_VOLUME 0xFFFF ///< Volume set to 0xFFFF enables contineous delivery based on the speed set. + #define PARK_CONC_PUMPS TRUE ///< For park parameter to requestConcentratePumpOff(). #define NO_PARK_CONC_PUMPS FALSE ///< For park parameter to requestConcentratePumpOff(). @@ -42,6 +53,7 @@ D11_PUMP = 0, ///< Acid concentrate pump CONCENTRATEPUMPS_FIRST = D11_PUMP, ///< First concentrate pump in list D10_PUMP, ///< Bicarbonate concentrate pump + D76_PUMP, ///< Ultrafilteration pump NUM_OF_CONCENTRATE_PUMPS ///< Number of concentrate pumps } CONCENTRATE_PUMPS_T; @@ -66,6 +78,13 @@ BOOL d10_PumpParked; ///< Concentrate pump D10_Pump parked status BOOL d11_PumpParkFault; ///< Concentrate pump D11_Pump park fault status BOOL d10_PumpParkFault; ///< Concentrate pump D10_Pump park fault status + F32 d76_PumpTargetSpeed; ///< Concentrate pump D76_Pump target speed + F32 d76_PumpCurrentSetSpeed; ///< Concentrate pump D76_Pump current set speed + F32 d76_PumpMeasuredSpeed; ///< Concentrate pump D76_Pump measured speed + U32 d76_PumpTargetRevCount; ///< Concentrate pump D76_Pump target revolution count + U32 d76_PumpMeasuredRevCount; ///< Concentrate pump D76_Pump measured revolution count + U32 d76_PumpState; ///< Concentrate pump D76_Pump current state + F32 d76_PumpPulseUS; ///< Concentrate pump D76_Pump pulse in microseconds } CONCENTRATE_PUMP_DATA_T; // ********** public function prototypes ********** @@ -90,7 +109,7 @@ U16 getConcPumpCurrentMeasuredRevolutionCount( CONCENTRATE_PUMPS_T pumpId ); BOOL handleConcentratePumpParkRequest( void ); BOOL isConcPumpParkInProgress( CONCENTRATE_PUMPS_T pumpId ); -BOOL IsConcentratePumpDosingCompleted( void ); +BOOL isConcentratePumpDosingCompleted( CONCENTRATE_PUMPS_T pumpId ); BOOL testConcentratePumpDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testConcentratePumpTargetSpeedOverride( MESSAGE_T *message );