Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r6bbe6e35f9c378ad8dd5be2edebb1cc1acd23d37 -r75ecd5ee8a56b8d9faef07cdeb0a8dc7975ff476 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 6bbe6e35f9c378ad8dd5be2edebb1cc1acd23d37) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 75ecd5ee8a56b8d9faef07cdeb0a8dc7975ff476) @@ -62,7 +62,7 @@ static U32 genDialysateDataPublicationTimerCounter; ///< Used to schedule generate dialysate data publication to CAN bus. static OVERRIDE_U32_T genDialysateDataPublishInterval; ///< Generate dialysate mode data publish interval. static F32 lastDialTargetTemperatureSet; ///< last dialysate target temperature set for heater control -static BOOL isTreatmentParamUpdated; ///< To indicate change in treatment parameters +static BOOL isTreatmentParamUpdated; ///< To indicate change in treatment parameters // ********** private function prototypes ********** @@ -108,7 +108,7 @@ genDialysateDataPublishInterval.override = OVERRIDE_RESET; genDialysateDataPublicationTimerCounter = 0; lastDialTargetTemperatureSet = 0.0F; - isTreatmentParamUpdated = FALSE; + isTreatmentParamUpdated = FALSE; //Initialize balancing chamber module initBalanceChamber(); @@ -190,6 +190,10 @@ break; case DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE: + //Previous state + setValveState( M4_VALV, VALVE_STATE_OPEN ); + startHeater( D5_HEAT ); + // Open up VHo valve setValveState( D14_VALV, VALVE_STATE_OPEN ); // Start timer for hyd chamber negative pressure check state @@ -199,11 +203,23 @@ break; case DD_GEND_FRESH_DIALYSATE_PRESSURE_CHECK_STATE: + //Previous state + setValveState( M4_VALV, VALVE_STATE_OPEN ); + startHeater( D5_HEAT ); + setValveState( D14_VALV, VALVE_STATE_OPEN ); + setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM ); + // Lets be DGP continue running since pressure relief valve was set/ tuned part of priming process hydChamberPressureCheckStartTimeMS = getMSTimerCount(); break; case DD_GEND_SPENT_DIALYSATE_PRESSURE_CHECK_STATE: + //Previous state + setValveState( M4_VALV, VALVE_STATE_OPEN ); + startHeater( D5_HEAT ); + setValveState( D14_VALV, VALVE_STATE_OPEN ); + setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM ); + // Start the timer for spent dialysate pressure check spentDialPressureCheckStartTimeMS = getMSTimerCount(); @@ -221,16 +237,31 @@ break; case DD_GEND_PRODUCE_DIALYSATE_STATE: - //Close previously opened BC valves - valveControlForBCClosedState(); - - // Make sure bypass valve open condition + //Previous state + setValveState( M4_VALV, VALVE_STATE_OPEN ); + startHeater( D5_HEAT ); + setValveState( D14_VALV, VALVE_STATE_OPEN ); + setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM ); + setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve setValveState( D35_VALV, VALVE_STATE_CLOSED ); // VDI setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve + setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM ); + + //Close previously opened BC valves + valveControlForBCClosedState(); + break; case DD_GEND_DIALYSATE_DELIVERY_STATE: + //Previous state + setValveState( M4_VALV, VALVE_STATE_OPEN ); + startHeater( D5_HEAT ); + setValveState( D14_VALV, VALVE_STATE_OPEN ); + setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM ); + setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve + setDialysatePumpTargetRPM( D48_PUMP, SPENT_DIAL_PUMP_INITIAL_RPM ); + // Disable bypass valve setValveState( D34_VALV, VALVE_STATE_CLOSED ); // Bypass valve setValveState( D35_VALV, VALVE_STATE_OPEN ); // VDI @@ -247,6 +278,11 @@ stopHeater( D5_HEAT ); stopHeater( D45_HEAT ); + //Enable bypass valve + setValveState( D35_VALV, VALVE_STATE_CLOSED ); // VDI + setValveState( D40_VALV, VALVE_STATE_CLOSED ); // VDO + setValveState( D34_VALV, VALVE_STATE_OPEN ); // Bypass valve + //close the DD - water inlet and drain valves? break;