Index: firmware/App/Modes/ModeFill.c =================================================================== diff -u -ra265ac3cc10384a1119240d21f57833c9cb33c5b -rf565edd6de62272b1c18fe425e37bc2128aa5832 --- firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision a265ac3cc10384a1119240d21f57833c9cb33c5b) +++ firmware/App/Modes/ModeFill.c (.../ModeFill.c) (revision f565edd6de62272b1c18fe425e37bc2128aa5832) @@ -8,7 +8,7 @@ * @file ModeFill.c * * @author (last) Dara Navaei -* @date (last) 21-Oct-2022 +* @date (last) 11-Nov-2022 * * @author (original) Leonardo Baloa * @date (original) 19-Nov-2019 @@ -38,6 +38,7 @@ #include "TaskGeneral.h" #include "TemperatureSensors.h" #include "Timers.h" +#include "Utilities.h" #include "UVReactors.h" #include "Valves.h" @@ -232,6 +233,7 @@ { checkRORejectionRatio(); checkDialysateTemperatureSensors(); + setHeaterTargetTemperature( DG_PRIMARY_HEATER, getPrimaryHeaterTargetTemperature() ); fillState = ( TRUE == areInletWaterConditionsAlarmsActive() ? DG_FILL_MODE_STATE_PAUSED : fillState ); @@ -745,14 +747,22 @@ static DG_FILL_MODE_STATE_T handleDeliverDialysateState( void ) { DG_ACID_CONCENTRATES_RECORD_T acid; - F32 acidMix; DG_BICARB_CONCENTRATES_RECORD_T bicarb; - F32 bicarbMix; - DG_FILL_MODE_STATE_T result = DG_FILL_MODE_STATE_DELIVER_DIALYSATE; - DG_RESERVOIR_ID_T inactiveReservoir = getInactiveReservoir(); - F32 acidConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD1_SENSOR ); - F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); + F32 acidMix = 0.0F; + F32 bicarbMix = 0.0F; + DG_FILL_MODE_STATE_T result = DG_FILL_MODE_STATE_DELIVER_DIALYSATE; + DG_RESERVOIR_ID_T inactiveRsrvr = getInactiveReservoir(); + F32 acidConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD1_SENSOR ); + F32 bicarbConductivity = getConductivityValue( CONDUCTIVITYSENSORS_CD2_SENSOR ); // TODO the systems team will let us know when we can use TD2 in DVT. Until then it is disabled + F32 inletTemperature = getTemperatureValue( (U32)TEMPSENSORS_OUTLET_PRIMARY_HEATER ); //getTemperatureValue( (U32)TEMPSENSORS_CONDUCTIVITY_SENSOR_2 ); +#ifndef _RELEASE_ + if ( HW_CONFIG_BETA == getHardwareConfigStatus() ) + { + inletTemperature = getTemperatureValue( (U32)TEMPSENSORS_OUTLET_PRIMARY_HEATER ); + } +#endif + getAcidConcentrateCalRecord( &acid ); getBicarbConcentrateCalRecord( &bicarb ); @@ -783,7 +793,7 @@ // DG is delivering dialysate keep collecting the sample counter and the measured flow fillStatus.fillSampleCounter += 1; fillStatus.fillFlowRateRunningSum += getMeasuredFlowRateLPM( RO_FLOW_SENSOR ); - fillStatus.fillTemperatureRunningSum += getTemperatureValue( (U32)TEMPSENSORS_OUTLET_PRIMARY_HEATER ); + fillStatus.fillTemperatureRunningSum += inletTemperature; // TODO: Check for open straw door status and alarm if closed // Check if run out of time to fill the reservoir @@ -793,10 +803,10 @@ } // If we've reached our target fill to volume (by weight), we're done filling - go back to generation idle mode // SRSDG 398 - if ( TRUE == hasTargetFillVolumeBeenReached( inactiveReservoir ) ) + if ( TRUE == hasTargetFillVolumeBeenReached( inactiveRsrvr ) ) { F32 filledVolumeML = getReservoirWeight( inactiveRsrvr ) - reservoirBaseWeight; - F32 integratedVolumeToLoadCellReadingPercent = fabs( 1.0F - ( filledVolumeML / getIntegratedVolumeML() ) ); + F32 integratedVolumeToLoadCellReadingPercent = fabs( 1.0F - ( filledVolumeML / integratedVolumeML ) ); F32 avgAcidConductivity = acidConductivityTotal / conductivitySampleCount; F32 avgBicarbConductivity = bicarbConductivityTotal / conductivitySampleCount; F32 acidNormalConductivity = acid.acidConcentrate[ CAL_DATA_ACID_CONCENTRATE_1 ].acidConductivityUSPerCM; @@ -844,7 +854,7 @@ fillStatus.fillFlowRateRunningSum = 0.0F; fillStatus.fillTemperatureRunningSum = 0.0F; fillStatus.fillSampleCounter = 0; - fillStatus.fillLastTemperature = getTemperatureValue( (U32)TEMPSENSORS_OUTLET_PRIMARY_HEATER ); + fillStatus.fillLastTemperature = inletTemperature; calculateHeaterEstimationGain( DG_PRIMARY_HEATER ); requestNewOperationMode( DG_MODE_GENE );