Index: firmware/App/Controllers/DialysatePumps.c =================================================================== diff -u -ra8a9efaaea2ba9f38705b4ec2d47ff1252c833e2 -r724b64673b719eaac10b0c9dd839ad9675274911 --- firmware/App/Controllers/DialysatePumps.c (.../DialysatePumps.c) (revision a8a9efaaea2ba9f38705b4ec2d47ff1252c833e2) +++ firmware/App/Controllers/DialysatePumps.c (.../DialysatePumps.c) (revision 724b64673b719eaac10b0c9dd839ad9675274911) @@ -258,9 +258,10 @@ * @details \b Alarms: ALARM_ID_DD_SOFTWARE_FAULT when invalid pump id supplied. * @param pumpId pump id to set the new speed. * @param rpm new dialysate pump target RPM + * @param isOpenLoopControlEnabled dialysate pump control method * @return TRUE if new target RPM is set, FALSE if not *************************************************************************/ -BOOL setDialysatePumpTargetRPM( DIALYSATE_PUMPS_T pumpId, U32 rpm ) +BOOL setDialysatePumpTargetRPM( DIALYSATE_PUMPS_T pumpId, U32 rpm, BOOL isOpenLoopControlEnabled ) { BOOL result = FALSE; @@ -280,6 +281,9 @@ pumpTargetSpeed[ pumpId ].data = MAX_DIALYSATE_PUMP_RPM; } + // Open loop or close loop control + isDialPumpOpenLoopEnabled[ pumpId ] = isOpenLoopControlEnabled; + //handle target speed update when pump is running if ( DIALYSATE_PUMP_CONTROL_TO_TARGET_STATE == dialysatePumps[ pumpId ].dialysatePumpState ) { @@ -1135,9 +1139,7 @@ if ( ( TRUE == payload.startStop ) && ( ( payload.rpm >= MIN_DIALYSATE_PUMP_RPM ) && ( payload.rpm <= MAX_DIALYSATE_PUMP_RPM ) ) ) { - setDialysatePumpTargetRPM( (DIALYSATE_PUMPS_T)payload.pumpID, payload.rpm ); - // Pump control - isDialPumpOpenLoopEnabled[payload.pumpID] = payload.pumpControl; + setDialysatePumpTargetRPM( (DIALYSATE_PUMPS_T)payload.pumpID, payload.rpm, (BOOL)payload.pumpControl ); result = TRUE; }