Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r799f26bec11423fa4894a8e01ebc50bf0e5f4a32 -r322747d530c1b8205be257557e53dcfe9caad50a --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 799f26bec11423fa4894a8e01ebc50bf0e5f4a32) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 322747d530c1b8205be257557e53dcfe9caad50a) @@ -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 isTreatementParamUpdated; ///< To indicate change in treatment parameters +static BOOL isTreatmentParamUpdated; ///< To indicate change in treatment parameters // ********** private function prototypes ********** @@ -75,7 +75,7 @@ static DD_GEND_MODE_STATE_T handleGenDProduceDialysateState( void ); static DD_GEND_MODE_STATE_T handleGenDDialysateDeliveryState( void ); static DD_GEND_MODE_STATE_T handleGenDDialysateDeliveryPauseState( void ); -static F32 getGenDilaysateTargetTemperature( void ); +static F32 getGenDialysateTargetTemperature( void ); static void publishGenDialysateModeData( void ); /*********************************************************************//** @@ -108,7 +108,7 @@ genDialysateDataPublishInterval.override = OVERRIDE_RESET; genDialysateDataPublicationTimerCounter = 0; lastDialTargetTemperatureSet = 0.0F; - isTreatementParamUpdated = FALSE; + isTreatmentParamUpdated = FALSE; //Initialize balancing chamber module initBalanceChamber(); @@ -140,7 +140,7 @@ *************************************************************************/ void execGenDialysateMonitor( void ) { - // Read temperature and conducitivity + // Read temperature and conductivity //F32 hydChamberTemperature = getTemperatureValue( D4_TEMP ); //F32 biCarbConductivity = getConductivityValue( D17_COND ); //F32 acidBicarbMixConductivity = getConductivityValue( D29_COND ); @@ -178,20 +178,20 @@ valveControlForBCClosedState(); setHydValvesStatetoClosedState(); setUFValvesStatetoClosedState(); - setValveState( M4_VALV, VALVE_STATE_OPEN ); //M4 + setValveState( M4_VALV, VALVE_STATE_OPEN ); // Get the target temperature from TD targetHydChamberFluidTemp.data = getTDTargetDialysateTemperature(); // Turn on the primary heater - setHeaterTargetTemperature( D5_HEAT, getGenDilaysateTargetTemperature() ); + setHeaterTargetTemperature( D5_HEAT, getGenDialysateTargetTemperature() ); startHeater( D5_HEAT ); - lastDialTargetTemperatureSet = getGenDilaysateTargetTemperature(); + lastDialTargetTemperatureSet = getGenDialysateTargetTemperature(); break; case DD_GEND_HYD_CHAMBER_PRESSURE_CHECK_STATE: // Open up VHo valve - setValveState( D14_VALV, VALVE_STATE_OPEN ); //D14 + setValveState( D14_VALV, VALVE_STATE_OPEN ); // Start timer for hyd chamber negative pressure check state hydChamberPressureCheckStartTimeMS = getMSTimerCount(); // Start D12/DGP pump @@ -207,24 +207,11 @@ // Start the timer for spent dialysate pressure check spentDialPressureCheckStartTimeMS = getMSTimerCount(); - // Open all balancing chamber valves for free flow - //valveControlForBCOpenState(); + // Open only fresh side balancing chamber valves + valveControlForBCFreshSideOnlyOpenState(); - // Open fresh balancing chamber valves D19,D20,D21,D22 - setValveState( D19_VALV, VALVE_STATE_OPEN ); - setValveState( D20_VALV, VALVE_STATE_OPEN ); - setValveState( D21_VALV, VALVE_STATE_OPEN ); - setValveState( D22_VALV, VALVE_STATE_OPEN ); - - // Close spent side valves D23,D24,D25,D26 - setValveState( D23_VALV, VALVE_STATE_CLOSED ); - setValveState( D25_VALV, VALVE_STATE_CLOSED ); - setValveState( D24_VALV, VALVE_STATE_CLOSED ); - setValveState( D26_VALV, VALVE_STATE_CLOSED ); - - // Make sure valves are in correct position - setValveState( D53_VALV, VALVE_STATE_OPEN ); // Drain valve : D53 + 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 @@ -296,12 +283,7 @@ } // Update any dynamic treatment parameter changes - if ( TRUE == isTreatementParamUpdated ) - { - updateTreatementSettings(); - //reset the flag - isTreatementParamUpdated = FALSE; - } + updateTreatmentSettings(); // execute current gen dialysate state switch ( genDialysateState ) @@ -364,7 +346,6 @@ // Read floater switch BOOL result = FALSE; LEVEL_STATE_T floaterLevel = getLevelStatus( D6_LEVL ); - //LEVEL_STATE_T spentDialLevel = getLevelStatus( D46_LEVL ); // Get the target temperature from TD targetHydChamberFluidTemp.data = getTDTargetDialysateTemperature(); @@ -373,7 +354,7 @@ if ( LEVEL_STATE_HIGH == floaterLevel ) { // Get the target dialysate temperature - F32 targetTemperature = getGenDilaysateTargetTemperature(); + F32 targetTemperature = getGenDialysateTargetTemperature(); //turn off inlet water valve setValveState( D3_VALV, VALVE_STATE_CLOSED ); @@ -530,7 +511,7 @@ execBalancingChamberControl(); //if the produced dialysate is good and TD asks for dialysate delivery - // move to next state + //move to next state if ( ( TRUE == getDialGoodToDeliverStatus() ) && ( FALSE == getTDDialyzerBypass() ) ) { setModeGenDStateTransition( DD_GEND_DIALYSATE_DELIVERY_STATE ); @@ -599,35 +580,41 @@ /*********************************************************************//** * @brief - * The setTreatementParamUpdate function sets the flag to indicate one or more + * The setTreatmentParamUpdate function sets the flag to indicate one or more * treatement parameters updated. * gen dialysate mode. * @details \b Inputs: none - * @details \b Outputs: isTreatementParamUpdated + * @details \b Outputs: isTreatmentParamUpdated * @return none *************************************************************************/ -void setTreatementParamUpdate( void ) +void setTreatmentParamUpdate( void ) { - isTreatementParamUpdated = TRUE; + isTreatmentParamUpdated = TRUE; } /*********************************************************************//** * @brief - * The updateTreatementSettings function updates the switching rate post the + * The updateTreatmentSettings function updates the switching rate post the * treatement parameters updated during treatement. - * @details \b Inputs: none - * @details \b Outputs: balChamberSwitchingPeriod. + * @details \b Inputs: isTreatmentParamUpdated + * @details \b Outputs: balChamberSwitchingPeriod,isTreatmentParamUpdated. * @return none *************************************************************************/ -void updateTreatementSettings( void ) +void updateTreatmentSettings( void ) { - // Update the Balancing chamber switching rate based on dialysis rate - updateBalChamberSwitchingPeriod(); + // Update any dynamic treatment parameter changes + if ( TRUE == isTreatmentParamUpdated ) + { + // Update the Balancing chamber switching rate based on dialysis rate + updateBalChamberSwitchingPeriod(); - //TODO: update others parameters setting as needed. + //TODO: update others parameters setting as needed. + + //reset the flag + isTreatmentParamUpdated = FALSE; + } } - /*********************************************************************//** * @brief * The getDialGoodToDeliverStatus function gets the dialysate good to deliver @@ -638,13 +625,8 @@ *************************************************************************/ U32 getDialGoodToDeliverStatus( void ) { - U32 result = isDialysateGoodtoDeliver.data; + U32 result = getU32OverrideValue( &isDialysateGoodtoDeliver ); - if ( OVERRIDE_KEY == isDialysateGoodtoDeliver.override ) - { - result = isDialysateGoodtoDeliver.ovData; - } - return result; } @@ -658,13 +640,8 @@ *************************************************************************/ U32 getDialDeliveryProgressStatus( void ) { - U32 result = isDialDeliveryInProgress.data; + U32 result = getU32OverrideValue( &isDialDeliveryInProgress ); - if ( OVERRIDE_KEY == isDialDeliveryInProgress.override ) - { - result = isDialDeliveryInProgress.ovData; - } - return result; } @@ -678,34 +655,24 @@ *************************************************************************/ static U32 getGenDilaysateDataPublishInterval( void ) { - U32 result = genDialysateDataPublishInterval.data; + U32 result = getU32OverrideValue( &genDialysateDataPublishInterval ); - if ( OVERRIDE_KEY == genDialysateDataPublishInterval.override ) - { - result = genDialysateDataPublishInterval.ovData; - } - return result; } /*********************************************************************//** * @brief - * The getGenDilaysateTargetTemperature function gets the target dialysate + * The getGenDialysateTargetTemperature function gets the target dialysate * temperature. - * @details \b Inputs: getGenDilaysateTargetTemperature + * @details \b Inputs: getGenDialysateTargetTemperature * @details \b Outputs: none * @return the target dialysate temperature for the treatment. *************************************************************************/ -static F32 getGenDilaysateTargetTemperature( void ) +static F32 getGenDialysateTargetTemperature( void ) { - F32 result = targetHydChamberFluidTemp.data; + F32 temp = getF32OverrideValue( &targetHydChamberFluidTemp ); - if ( OVERRIDE_KEY == targetHydChamberFluidTemp.override ) - { - result = targetHydChamberFluidTemp.ovData; - } - - return result; + return temp; } /*********************************************************************//** @@ -807,10 +774,10 @@ * value of the hydraulics chamber fluid temperature. * @return TRUE if override successful, FALSE if not *************************************************************************/ -//BOOL testGenDHydChamberFluidTempOverride( MESSAGE_T *message ) -//{ -// BOOL result = f32Override( message, &targetHydChamberFluidTemp ); -// -// return result; -//} +BOOL testGenDHydChamberFluidTempOverride( MESSAGE_T *message ) +{ + BOOL result = f32Override( message, &targetHydChamberFluidTemp ); + + return result; +} /**@}*/