Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -r5aa0b08cb09b06af807687fe03db5137e388da82 -r95e32e6462b952f744f77c7e56f00bffdf8ec5bd --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 5aa0b08cb09b06af807687fe03db5137e388da82) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 95e32e6462b952f744f77c7e56f00bffdf8ec5bd) @@ -41,11 +41,11 @@ #define CONCENTRATE_PUMP_SPD_OUT_OF_RANGE_TOL_WHEN_SLOW_MLPM 1.0F ///< Concentrate pump speed out of range tolerance when slow in mL/min. #define CONCENTRATE_PUMP_LOW_SPEED_THRESHOLD_MLPM 10.0F ///< Concentrate pump low speed threshold in mL/min. #define CONCENTRATE_PUMP_ZERO_FLOW_RATE 0xFFFF ///< Pulse width value when zero flow rate or pump is off. -#ifdef __PUMPTEST__ -#define PISTON_PUMP_REV_PER_ML 700.0F ///< Revolution count for 1ml volume delivery. -#define CONCENTRATE_PUMP_VOLUME_PER_REV ( CONCENTRATE_PUMP_STEP_PER_REV / PISTON_PUMP_REV_PER_ML ) ///< Volume output every revolution (mL). -#else +#ifndef __PUMPTEST__ #define CONCENTRATE_PUMP_VOLUME_PER_REV 0.1F ///< Volume output every revolution (mL). +#else +#define PISTON_PUMP_STEPS_PER_ML 342.0F ///< Revolution count for 1ml volume delivery. +#define CONCENTRATE_PUMP_VOLUME_PER_REV ( CONCENTRATE_PUMP_STEP_PER_REV / PISTON_PUMP_STEPS_PER_ML ) ///< Volume output every revolution (mL). #endif #define CONCENTRATE_PUMP_PULSE_PER_REV 2.0F ///< Number of pulses generate for every revolution. #define CONCENTRATE_PUMP_STEP_PER_REV 200.0F ///< Number of steps for every revolution. @@ -58,7 +58,7 @@ ( CONCENTRATE_PUMP_STEP_PER_REV * \ CONCENTRATE_PUMP_MICRO_STEPS_PER_STEP ) ) ///< Convert volume in to number of revolutions needed. #ifdef __PUMPTEST__ -#define PISTON_PUMP_VOLUME_TO_REVOLUTION ( PISTON_PUMP_REV_PER_ML * CONCENTRATE_PUMP_MICRO_STEPS_PER_STEP ) ///< Convert volume in to number of revolutions needed. +#define PISTON_PUMP_VOLUME_TO_REVOLUTION ( PISTON_PUMP_STEPS_PER_ML * CONCENTRATE_PUMP_MICRO_STEPS_PER_STEP ) ///< Convert volume in to number of revolutions needed. #endif #define CONCENTRATE_PUMP_STEP_PERIOD_RESOLUTION ( 0.50F / ( US_PER_SECOND * SEC_PER_MIN ) ) ///< Convert step period resolution (0.50 us) to minute. @@ -505,10 +505,10 @@ //Update target revolution count if ( targetVolume_ml > 0.0 ) { -#ifdef __PUMPTEST__ - pumpTargetRevCnt[ pumpId ].data = (U32)( targetVolume_ml * PISTON_PUMP_VOLUME_TO_REVOLUTION ); -#else +#ifndef __PUMPTEST__ pumpTargetRevCnt[ pumpId ].data = (U32)( targetVolume_ml * CONCENTRATE_PUMP_VOLUME_TO_REVOLUTION ); +#else + pumpTargetRevCnt[ pumpId ].data = (U32)( targetVolume_ml * PISTON_PUMP_VOLUME_TO_REVOLUTION ); #endif if ( CONCENTRATEPUMPS_CP1_ACID == pumpId ) { @@ -790,7 +790,7 @@ //concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].controlSet |= CONCENTRATE_PUMP_CONTROL_ENABLE_MASK; //setFPGABicarbPumpControl( concentratePumps[ CONCENTRATEPUMPS_CP2_BICARB ].controlSet ); } - +#ifndef __PUMPTEST__ // Park concentrate pump too if requested if ( TRUE == parkPump ) { @@ -806,6 +806,7 @@ } concentratePumps[ pumpId ].isConcPumpParkInProgress = TRUE; } +#endif } /*********************************************************************//** @@ -1313,7 +1314,9 @@ { // Handle start command if ( ( TRUE == payload.startStop ) && +#ifndef __PUMPTEST__ ( ( payload.speed >= CONCENTRATE_PUMP_MIN_SPEED ) && ( payload.speed <= CONCENTRATE_PUMP_MAX_SPEED ) ) && +#endif ( payload.volume > 0.0 ) ) { setConcentratePumpTargetSpeed( (CONCENTRATE_PUMPS_T)payload.pumpID, payload.speed, payload.volume ); Index: firmware/App/Controllers/PistonPumpControl.c =================================================================== diff -u -rf2ff7172c4501384cf3694d95ad836fb5b477012 -r95e32e6462b952f744f77c7e56f00bffdf8ec5bd --- firmware/App/Controllers/PistonPumpControl.c (.../PistonPumpControl.c) (revision f2ff7172c4501384cf3694d95ad836fb5b477012) +++ firmware/App/Controllers/PistonPumpControl.c (.../PistonPumpControl.c) (revision 95e32e6462b952f744f77c7e56f00bffdf8ec5bd) @@ -31,8 +31,8 @@ // ********** private definitions ********** #define PISTON_PUMP_CONTROL_DATA_PUBLISH_INTERVAL ( 1000 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the piston pump control data published. -#define PISTON_PUMP_FILL_PERIOD ( 2000 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the piston pump filling cycle time -#define PISTON_PUMP_DISPENSE_PERIOD ( 2000 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the piston pump dispense cycle time +#define PISTON_PUMP_FILL_PERIOD ( 4000 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the piston pump filling cycle time +#define PISTON_PUMP_DISPENSE_PERIOD ( 4000 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the piston pump dispense cycle time #define PISTON_PUMP_MIN_SPEED 3.0F ///< Piston pump minimum speed in ml/min. #define PISTON_PUMP_MAX_SPEED 48.0F ///< Maximum speed for piston pump in mL/min @@ -185,8 +185,8 @@ { case PISTONPUMPS_ACID: // Valves assocaited to Acid concentrate Pumps - setValveState( UFI1, (VALVE_STATE_NAMES_T)inletValveState ); - setValveState( UFI2, (VALVE_STATE_NAMES_T)outletValveState ); + setValveState( VHO, (VALVE_STATE_NAMES_T)inletValveState ); + setValveState( VTD, (VALVE_STATE_NAMES_T)outletValveState ); break; case PISTONPUMPS_BICARB: @@ -251,6 +251,12 @@ pistonPumpVolumeinMl[ pumpId ] = 0.0F; pistonPumpSetSpeed[ pumpId ] = 0.0F; pistonPumpExecState[ pumpId ] = PISTON_PUMP_OFF_STATE; + + // Close Inlet and Outlet valve + pistonPumpInletOutletValveControl( pumpId, TRUE, TRUE ); + + //Stop the pump + requestConcentratePumpOff( (CONCENTRATE_PUMPS_T)pumpId, FALSE ); } else { @@ -272,10 +278,10 @@ PISTON_PUMP_EXEC_STATE_T state = PISTON_PUMP_OFF_STATE; // Close Inlet and Outlet valve - pistonPumpInletOutletValveControl( pumpId, TRUE, TRUE ); + //pistonPumpInletOutletValveControl( pumpId, TRUE, TRUE ); //Stop the pump - requestConcentratePumpOff( (CONCENTRATE_PUMPS_T)pumpId, FALSE ); + //requestConcentratePumpOff( (CONCENTRATE_PUMPS_T)pumpId, FALSE ); // Initiate piston pump control if ( pistonPumpCycleCount[ pumpId ] > 0 ) Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r5aa0b08cb09b06af807687fe03db5137e388da82 -r95e32e6462b952f744f77c7e56f00bffdf8ec5bd --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 5aa0b08cb09b06af807687fe03db5137e388da82) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 95e32e6462b952f744f77c7e56f00bffdf8ec5bd) @@ -143,7 +143,7 @@ MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST, #ifdef __PUMPTEST__ MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST, - MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST + MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST, #endif };