Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -rc4a199308f24cb8f6c805928b433903d95b59c6d -r5aa0b08cb09b06af807687fe03db5137e388da82 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision c4a199308f24cb8f6c805928b433903d95b59c6d) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 5aa0b08cb09b06af807687fe03db5137e388da82) @@ -41,8 +41,12 @@ #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 #define CONCENTRATE_PUMP_VOLUME_PER_REV 0.1F ///< 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. #define CONCENTRATE_PUMP_HALL_SENSE_PERIOD_RESOLUTION 100.0F ///< Hall sense period resolution in microseconds. @@ -53,6 +57,9 @@ #define CONCENTRATE_PUMP_VOLUME_TO_REVOLUTION ( ( 1 / CONCENTRATE_PUMP_VOLUME_PER_REV ) * \ ( 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. +#endif #define CONCENTRATE_PUMP_STEP_PERIOD_RESOLUTION ( 0.50F / ( US_PER_SECOND * SEC_PER_MIN ) ) ///< Convert step period resolution (0.50 us) to minute. /// Volume output per pulse. @@ -498,7 +505,11 @@ //Update target revolution count if ( targetVolume_ml > 0.0 ) { +#ifdef __PUMPTEST__ + pumpTargetRevCnt[ pumpId ].data = (U32)( targetVolume_ml * PISTON_PUMP_VOLUME_TO_REVOLUTION ); +#else pumpTargetRevCnt[ pumpId ].data = (U32)( targetVolume_ml * CONCENTRATE_PUMP_VOLUME_TO_REVOLUTION ); +#endif if ( CONCENTRATEPUMPS_CP1_ACID == pumpId ) { setFPGACPARevolutionCount( getConcPumpTargetRevolutionCount( pumpId ) );