Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -rdd8d00b02a7565f3c5ce70040ae3b1bc40b4fe37 -r6b100c26db1b03b8507ce2f79c11f45f34715b11 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision dd8d00b02a7565f3c5ce70040ae3b1bc40b4fe37) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 6b100c26db1b03b8507ce2f79c11f45f34715b11) @@ -48,6 +48,15 @@ #define DIP_DRAIN_DG_FLOW_RATE_ML_MIN 60 ///< DG drain inlet pump flow rate in mL/min. #define DIP_DRAIN_DG_RUNTIME_MS ( 40 * MS_PER_SECOND ) ///< DG drain inlet pump run time in ms. +// Concentrates values +#define ACID_1251_1_K 1.0F ///< Acid 1251_1 potassium concentrate. +#define ACID_1251_0_K 2.0F ///< Acid 1251_0 potassium concentrate. +#define ACID_1251_9_K 3.0F ///< Acid 1251_9 potassium concentrate. + +#define ACID_TYPES_CA 2.5F ///< Acid types calcium concentrate. +#define ACID_TYPES_BICARB 33 ///< Acid type bicarb concentrate. +#define ACID_TYPES_NA 137 ///< Acid type sodium concentrate. + /// Post-Treatment drain reservoirs state machine. typedef enum Drain_States { @@ -86,6 +95,7 @@ static DRAIN_STATE_T handleDrainReservoirSwitchState( void ); static DRAIN_STATE_T handleDrainReservoirStartDrainState( void ); static DRAIN_STATE_T handleDrainReservoirDrainState( void ); +static void setTreatmentLogsConcentrates( void ); /*********************************************************************//** * @brief @@ -233,6 +243,8 @@ treatmentLogData.acidConcentrate = getTreatmentParameterU32( TREATMENT_PARAM_ACID_CONCENTRATE ); treatmentLogData.bicarbConcentrate = getTreatmentParameterU32( TREATMENT_PARAM_BICARB_CONCENTRATE ); + setTreatmentLogsConcentrates(); + treatmentLogData.dialysateTemperature_degC = getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ); treatmentLogData.dialyzerType = getTreatmentParameterU32( TREATMENT_PARAM_DIALYZER_TYPE ); treatmentLogData.treatmentStartDateAndTime = getTreatmentStartTimeStamp(); @@ -712,7 +724,43 @@ return state; } +/*********************************************************************//** + * @brief + * The setTreatmentLogsConcentrates function sets the corresponding values + * of the concentrations in the treatment logs. + * @details Inputs: none + * @details Outputs: treatmentLogData + * @return none + *************************************************************************/ +static void setTreatmentLogsConcentrates( void ) +{ + ACID_CONCENTRATE_TYPE_T acidType = (ACID_CONCENTRATE_TYPE_T)getTreatmentParameterU32( TREATMENT_PARAM_ACID_CONCENTRATE ); + treatmentLogData.calciumConcentration = ACID_TYPES_CA; + treatmentLogData.bicarbonateConcentration = ACID_TYPES_BICARB; + treatmentLogData.sodiumConcentration = ACID_TYPES_NA; + + switch ( acidType ) + { + case ACID_CONC_TYPE_FRESENIUS_08_1251_1: + treatmentLogData.potassiumConcentration = ACID_1251_1_K; + break; + + case ACID_CONC_TYPE_FRESENIUS_08_2251_0: + treatmentLogData.potassiumConcentration = ACID_1251_0_K; + break; + + case ACID_CONC_TYPE_FRESENIUS_08_3251_9: + treatmentLogData.potassiumConcentration = ACID_1251_9_K; + break; + + default: + // Do nothing + break; + } +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/