Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r6f2218c22e666aec059afbd60f3d0d268b305ad0 -r5153afc318dad6b9a469aaba20b8746994f5c70d --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 6f2218c22e666aec059afbd60f3d0d268b305ad0) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 5153afc318dad6b9a469aaba20b8746994f5c70d) @@ -117,6 +117,8 @@ static F32 treatmentBloodFlowRateTotal_mL_min; ///< Blood flow rate total per treatment logged every second. static F32 treatmentDialysateFlowRateTotal_mL_min; ///< Dialysate flow rate total per treatment logged every second. static F32 treatmentDialysateTempTotal_degree_C; ///< Dialysate temperature total per treatment logged every second. +static F32 treatmentArterialPressureTotal_mmHg; ///< Arterial pressure total per treatment logged every second. +static F32 treatmentVenousPressureTotal_mmHg; ///< Venous pressure total per treatment logged every second. static BOOL sendLastTreatmentPeriodicData; ///< Flag determines if HD needs to send the last treatment periodic data. static U32 treatmentStartTimeStamp; ///< Treatment start timestampt for logging purpose. @@ -181,6 +183,8 @@ treatmentBloodFlowRateTotal_mL_min = 0.0; treatmentDialysateFlowRateTotal_mL_min = 0.0; treatmentDialysateTempTotal_degree_C = 0.0; + treatmentArterialPressureTotal_mmHg = 0.0; + treatmentVenousPressureTotal_mmHg = 0.0; sendLastTreatmentPeriodicData = FALSE; treatmentStartTimeStamp = getRTCTimestamp(); @@ -414,6 +418,48 @@ /*********************************************************************//** * @brief + * The getTreatmentAvgArterialPressure function returns the average arterial + * pressure collected through out the treatment. + * @details Inputs: treatmentTimeMS, treatmentArterialPressureTotal_mmHg + * @details Outputs: none + * @return the average arterial pressure + *************************************************************************/ +F32 getTreatmentAvgArterialPressure( void ) +{ + U32 const numberOfDataPoint = ( treatmentTimeMS / TREATMENT_PERIODIC_DATA_LOG_INTERVAL ); + F32 result = 0.0; + + if ( numberOfDataPoint > 0 ) + { + result = ( treatmentArterialPressureTotal_mmHg / numberOfDataPoint ); + } + + return result; +} + +/*********************************************************************//** + * @brief + * The getTreatmentAvgVenousPressure function returns the average venous + * pressure collected through out the treatment. + * @details Inputs: treatmentTimeMS, treatmentVenousPressureTotal_mmHg + * @details Outputs: none + * @return the average venous pressure + *************************************************************************/ +F32 getTreatmentAvgVenousPressure( void ) +{ + U32 const numberOfDataPoint = ( treatmentTimeMS / TREATMENT_PERIODIC_DATA_LOG_INTERVAL ); + F32 result = 0.0; + + if ( numberOfDataPoint > 0 ) + { + result = ( treatmentVenousPressureTotal_mmHg / numberOfDataPoint ); + } + + return result; +} + +/*********************************************************************//** + * @brief * The getTreatmentStartTimeStamp function returns the treatment start * time stamp. * @details Inputs: treatmentStartTimeStamp @@ -1391,15 +1437,20 @@ if ( timeElapsedSinceLastCollect_ms >= TREATMENT_PERIODIC_DATA_LOG_INTERVAL ) { + F32 const arterialPres = getMeasuredArterialPressure(); + F32 const venousPres = getMeasuredArterialPressure(); + lastTreatmentPeriodicDataCollectTimeStamp = treatmentTimeMS; bloodFlowRateSum_mL_min += getMeasuredBloodFlowRate(); dialysateFlowRateSum_mL_min += getMeasuredDialInFlowRate(); - arterialPressureSum_mmHg += getMeasuredArterialPressure(); - venousPressureSum_mmHg += getMeasuredVenousPressure(); + arterialPressureSum_mmHg += arterialPres; + venousPressureSum_mmHg += venousPres; treatmentBloodFlowRateTotal_mL_min += getMeasuredBloodFlowRate(); treatmentDialysateFlowRateTotal_mL_min += getMeasuredDialInFlowRate(); treatmentDialysateTempTotal_degree_C += getDialysateTemperature(); + treatmentArterialPressureTotal_mmHg += arterialPres; + treatmentVenousPressureTotal_mmHg += venousPres; } if ( ( timeElapsedSinceLastPublish_ms >= TREATMENT_PERIODIC_DATA_PUB_INTERVAL ) || ( TRUE == sendLastTreatmentPeriodicData ) )