Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r9ff57b5ab7490ee5bbc2c51b25f738ee6c569ec1 -r4a80b214d221c1f64feb215d828a10d8fddbaf4d --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 9ff57b5ab7490ee5bbc2c51b25f738ee6c569ec1) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 4a80b214d221c1f64feb215d828a10d8fddbaf4d) @@ -44,7 +44,7 @@ #define GEN_DIALYSATE_DATA_PUBLISH_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the gen dialysate mode data published. //Testing -#define DELAY_BYPASS_STATE_AT_START_UP ( 1 * MS_PER_SECOND ) ///< Provide a bypass state start up delay to stabilize pump speed etc., +#define DELAY_BYPASS_STATE_AT_START_UP ( 3 * MS_PER_SECOND ) ///< Provide a bypass state start up delay to stabilize pump speed etc., /// Payload record structure for Gen dialysate execution state set request typedef struct { @@ -60,7 +60,6 @@ static OVERRIDE_U32_T pendingStopDDGenDialRequest; ///< Flag indicating TD has requested DD stop the generate dialysate (Overridable). 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 //Testing static U32 bypassStateDelayStartTimeMS; ///< Delay balancing chamber switching for a second to preapre pump steady state. @@ -107,7 +106,6 @@ genDialysateDataPublishInterval.ovInitData = 0; genDialysateDataPublishInterval.override = OVERRIDE_RESET; genDialysateDataPublicationTimerCounter = 0; - lastDialTargetTemperatureSet = 0.0F; isTreatmentParamUpdated = FALSE; //Testing bypassStateDelayStartTimeMS = 0; @@ -184,7 +182,6 @@ // Turn on the primary heater setHeaterTargetTemperature( D5_HEAT, getGenDialysateTargetTemperature() ); startHeater( D5_HEAT ); - lastDialTargetTemperatureSet = getGenDialysateTargetTemperature(); setValveState( D14_VALV, VALVE_STATE_OPEN ); //Testing : Enable close loop once testing is complete @@ -206,6 +203,9 @@ case DD_GEND_DIALYSATE_DELIVERY_STATE: //Previous state setValveState( M4_VALV, VALVE_STATE_OPEN ); + // Get the target temperature from TD + targetHydChamberFluidTemp.data = getTDTargetDialysateTemperature(); + setHeaterTargetTemperature( D5_HEAT, getGenDialysateTargetTemperature() ); startHeater( D5_HEAT ); setValveState( D14_VALV, VALVE_STATE_OPEN ); //setDialysatePumpTargetRPM( D12_PUMP, FRESH_DIAL_PUMP_INITIAL_RPM, FALSE ); @@ -334,25 +334,12 @@ //Make sure Water Inlet Valve is open setValveState( M4_VALV, VALVE_STATE_OPEN ); - // Get the target temperature from TD - targetHydChamberFluidTemp.data = getTDTargetDialysateTemperature(); - // High level is met if ( LEVEL_STATE_HIGH == floaterLevel ) { - // Get the target dialysate temperature - F32 targetTemperature = getGenDialysateTargetTemperature(); - //turn off inlet water valve setValveState( D3_VALV, VALVE_STATE_CLOSED ); - if ( lastDialTargetTemperatureSet != targetTemperature ) - { - // Update the target temperature for heater control - setHeaterTargetTemperature( D5_HEAT, targetTemperature ); - lastDialTargetTemperatureSet = targetTemperature; - } - // Water level reached high. result = TRUE; } @@ -527,9 +514,14 @@ // Update any dynamic treatment parameter changes if ( TRUE == isTreatmentParamUpdated ) { - // Update the Balancing chamber switching rate based on dialysis rate + // Update the balancing chamber switching rate based on dialysis rate updateBalChamberSwitchingPeriod(); + // Get the target temperature from TD + targetHydChamberFluidTemp.data = getTDTargetDialysateTemperature(); + // Update the target temperature for heater control + setHeaterTargetTemperature( D5_HEAT, getGenDialysateTargetTemperature() ); + //TODO: update others parameters setting as needed. //reset the flag