Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -rdd9b6a7b7259bea3d954674457d3ff7a2babf5ec -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision dd9b6a7b7259bea3d954674457d3ff7a2babf5ec) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision cd5be724d5a3ba7457e761191d82f278654d7f5c) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2020-2023 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file Dialysis.c * * @author (last) Sean Nash -* @date (last) 16-Aug-2023 +* @date (last) 11-Oct-2023 * * @author (original) Sean * @date (original) 15-Jan-2020 @@ -40,8 +40,8 @@ // ********** private definitions ********** -#define MAX_UF_VOLUME_ACCURACY_ERROR_ML 100.0F ///< Maximum ultrafiltration volume accuracy error in mL over the entire treatment. -#define MAX_UF_RATE_ACCURACY_ERROR_ML_MIN 10.0F ///< Maximum ultrafiltration rate accuracy error in mL/min over use of single reservoir during treatment. +#define MAX_UF_VOLUME_ACCURACY_ERROR_ML 100.0F ///< Maximum ultrafiltration volume accuracy error in mL over the entire treatment. +#define LOAD_CELL_PRIMARY_BACKUP_MAX_ALLOWED_DRIFT_GRAMS 20.0F ///< Reservoir load cell drift difference allowed /// Saline bolus data broadcast interval (ms/task time) count. static const U32 SALINE_BOLUS_DATA_PUB_INTERVAL = ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); @@ -523,7 +523,7 @@ /*********************************************************************//** * @brief * The pauseUF function pauses ultrafiltration. - * @details Inputs: currentDialysisState, currentUFState + * @details Inputs: currentDialysisState, currentUFState, setUFRate * @details Outputs: currentUFState, outlet pump set point * @return TRUE if pause successful, FALSE if not *************************************************************************/ @@ -538,10 +538,12 @@ ( DIALYSIS_UF_STATE == currentDialysisState ) && ( UF_RUNNING_STATE == currentUFState ) ) { result = TRUE; - sendTreatmentLogEventData( UF_PAUSE_EVENT, setUFRate, 0.0 ); + if ( setUFRate > 0.0 ) + { + sendTreatmentLogEventData( UF_PAUSE_EVENT, setUFRate, 0.0 ); + } // Go to UF paused state currentUFState = UF_PAUSED_STATE; - sendTreatmentLogEventData( UF_START_RESUME_EVENT, UF_RUNNING_STATE, UF_PAUSED_STATE ); } else { @@ -572,7 +574,7 @@ /*********************************************************************//** * @brief * The resumeUF function resumes ultrafiltration. - * @details Inputs: currentDialysisState, currentUFState + * @details Inputs: currentDialysisState, currentUFState, setUFRate * @details Outputs: currentUFState, outlet pump set point * @return TRUE if resume successful, FALSE if not *************************************************************************/ @@ -587,12 +589,14 @@ ( DIALYSIS_UF_STATE == currentDialysisState ) && ( UF_PAUSED_STATE == currentUFState ) ) { result = TRUE; - sendTreatmentLogEventData( UF_START_RESUME_EVENT, 0.0, setUFRate ); + if ( setUFRate > 0.0 ) + { + sendTreatmentLogEventData( UF_START_RESUME_EVENT, 0.0, setUFRate ); + } // Restart UF time accumulation for reference volume calculation lastUFTimeStamp = getMSTimerCount(); // Go to UF running state currentUFState = UF_RUNNING_STATE; - sendTreatmentLogEventData( UF_START_RESUME_EVENT, UF_PAUSED_STATE, UF_RUNNING_STATE ); } else {