Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -rfab0257d4913c021698418277e742c2a61e0368e -r8ebab816fadec93b2f3c6a42f15a07c26b3a4f59 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision fab0257d4913c021698418277e742c2a61e0368e) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision 8ebab816fadec93b2f3c6a42f15a07c26b3a4f59) @@ -8,7 +8,7 @@ * @file ModeFill.c * * @author (last) Dara Navaei -* @date (last) 02-Jun-2023 +* @date (last) 09-Aug-2023 * * @author (original) Leonardo Baloa * @date (original) 19-Nov-2019 @@ -61,7 +61,7 @@ #define FILL_MODE_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the fill mode data is published on the CAN bus. #define DIALYSATE_FILL_TIME_OUT ( 5 * SEC_PER_MIN * MS_PER_SECOND ) ///< Time out period when reservoir is not filled with correct dialysate. -#define CONC_PUMPS_PRIME_AT_MAX_SPEED_TIME_OUT_MS ( 8 * MS_PER_SECOND ) ///< Concentrate pumps prime at maximum speed timeout in milliseconds. +#define CONC_PUMPS_PRIME_AT_MAX_SPEED_TIME_OUT_MS ( 7 * MS_PER_SECOND ) ///< Concentrate pumps prime at maximum speed timeout in milliseconds. #define CONC_PUMPS_PRIME_CHECK_COND_SNSRS_TIME_OUT_MS ( 10 * MS_PER_SECOND ) ///< Concentrate pumps prime check conductivity sensors timeout in milliseconds. #define CONC_PUMPS_PRIME_MAX_ALLOWED_PRIME_TIME_OUT_MS ( 25 * MS_PER_SECOND ) ///< Concentrate pumps prime maximum allowed timeout in prime in milliseconds. @@ -175,7 +175,6 @@ static BOOL areInletWaterConditionsAlarmsActive( void ); static BOOL areConductivityAlarmsActive( void ); static void handleDialysateMixing( F32 measuredROFlowRate_mL_min, F32 acidMixingRatio, F32 bicarbMixingRatio ); -static void setFillInfoToRTCRAM( void ); static BOOL isValueWithinPercentRange( F32 testValue, F32 baseValue, F32 percentFactor ); static void publishFillModeData( void ); @@ -432,8 +431,7 @@ *************************************************************************/ F32 getIntegratedVolumeML( void ) { - - F32 integratedVolume = getF32OverrideValue(&integratedVolumeML); + F32 integratedVolume = getF32OverrideValue( &integratedVolumeML ); return integratedVolume; } @@ -877,8 +875,8 @@ integratedVolumeML.data += getMeasuredROFlowRateWithConcPumpsLPM() * ML_PER_LITER * FLOW_INTEGRATOR; } - usedAcidVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; - usedBicarbVolumeML.data += getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; + usedAcidVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ) * FLOW_INTEGRATOR; + usedBicarbVolumeML.data += getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ) * FLOW_INTEGRATOR; acidConductivityTotal += acidConduSPerCM; bicarbConductivityTotal += bicarbConduSPerCM; conductivitySampleCount++; @@ -944,6 +942,8 @@ { setBadAvgConductivityDetectedFlag( TRUE ); // signal idle bad avg conductivity detected setThisFisrtFillFlag( TRUE ); + resetChemicalUsedVolumeML( BICARB ); + resetChemicalUsedVolumeML( ACID ); SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_FILL_CONDUCTIVITY_OUT_OF_RANGE, avgBicarbConduSPerCM, bicarbNormalConduSPerCM ); // trigger replace bottles alarm #1 clearAlarm( ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT ); // clear this alarm before triggering in case previous fill was bad and still active from before activateAlarmNoData ( ALARM_ID_DG_CREATING_DIALYSATE_PLEASE_WAIT ); @@ -1200,24 +1200,6 @@ /*********************************************************************//** * @brief - * The setFillInfoToRTCRAM function writes the fill information to the RTC - * RAM at the end of each fill. This information is used for dialysate temperature - * control. - * @details Inputs: fillStatus.fillFlowRateAverage - * @details Outputs: none - * @return none - *************************************************************************/ -static void setFillInfoToRTCRAM( void ) -{ - DG_HEATERS_RECORD_T record; - - record.averageFillFlow = fillStatus.fillFlowRateAverageLPM; - - setHeatersInfoRecord( (U08*)&record, sizeof( DG_HEATERS_RECORD_T ) ); -} - -/*********************************************************************//** - * @brief * The publishFillModeData function publishes fill mode data * at the set interval. * @details Inputs: fillModeDataPublicationTimerCounter, fillModeDataPublishInterval