Index: firmware/App/Controllers/FlowSensors.c =================================================================== diff -u -rdae35bc588959c0205d2cb90c25be1e1d5c32de7 -r7d4711edd7b40cd3e29f43e766f79a8a09586fe9 --- firmware/App/Controllers/FlowSensors.c (.../FlowSensors.c) (revision dae35bc588959c0205d2cb90c25be1e1d5c32de7) +++ firmware/App/Controllers/FlowSensors.c (.../FlowSensors.c) (revision 7d4711edd7b40cd3e29f43e766f79a8a09586fe9) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2022-2023 Diality Inc. - All Rights Reserved. +* Copyright (c) 2022-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 FlowSensors.c * * @author (last) Sean Nash -* @date (last) 07-Mar-2023 +* @date (last) 22-Sep-2023 * * @author (original) Dara Navaei * @date (original) 21-Jul-2022 @@ -144,8 +144,8 @@ flowSensorStatus[ i ].measuredFlowBeforeCalLPM.data = oldest2CurrentEdgeDiff * FLOW_SENSORS_LITERS_PER_PULSES * SEC_PER_MIN; flowSensorStatus[ i ].measuredROFlowWithCPsLPM.data = getCalibrationAppliedFlowLPM( i, flowSensorStatus[ i ].measuredFlowBeforeCalLPM.data ); measFlow = flowSensorStatus[ i ].measuredROFlowWithCPsLPM.data - - ( getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP1_ACID ) / ML_PER_LITER ) - - ( getMeasuredPumpSpeed( CONCENTRATEPUMPS_CP2_BICARB ) / ML_PER_LITER ); + ( getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP1_ACID ) / ML_PER_LITER ) - + ( getMeasuredPumpSpeedMLPM( CONCENTRATEPUMPS_CP2_BICARB ) / ML_PER_LITER ); flowSensorStatus[ i ].measuredFlowLPM.data = MAX( measFlow, 0.0F ); break; @@ -284,7 +284,7 @@ * flow sensors data publish interval. * @details Inputs: none * @details Outputs: flowSensorsDataPublishInterval - * @param: value override flow data publish interval with (in ms) + * @param value override flow data publish interval with (in ms) * @return TRUE if override successful, FALSE if not *************************************************************************/ BOOL testSetFlowDataPublishIntervalOverride( U32 value ) @@ -330,22 +330,33 @@ * flow rate. * @details Inputs: none * @details Outputs: flowSensorStatus - * @param: sensorId the Id of the sensor which its value is overridden. - * @param: value override measured flow rate in LPM + * @param sensorId the Id of the sensor which its value is overridden. + * @param value override measured flow rate in LPM + * @param raw override pre-calibrated, raw value, or post-calibrated values. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testSetMeasuredFlowRateOverride( U32 sensorId, F32 flowLPM ) +BOOL testSetMeasuredFlowRateOverride( U32 sensorId, F32 flowLPM, BOOL raw ) { BOOL result = FALSE; if ( sensorId < NUM_OF_FLOW_SENSORS ) { if ( TRUE == isTestingActivated() ) { - flowSensorStatus[ sensorId ].measuredFlowLPM.ovInitData = flowSensorStatus[ sensorId ].measuredFlowLPM.data; - flowSensorStatus[ sensorId ].measuredFlowLPM.ovData = flowLPM; - flowSensorStatus[ sensorId ].measuredFlowLPM.override = OVERRIDE_KEY; - result = TRUE; + if ( TRUE == raw ) + { + flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.ovInitData = flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.data; + flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.ovData = flowLPM; + flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.override = OVERRIDE_KEY; + result = TRUE; + } + else + { + flowSensorStatus[ sensorId ].measuredFlowLPM.ovInitData = flowSensorStatus[ sensorId ].measuredFlowLPM.data; + flowSensorStatus[ sensorId ].measuredFlowLPM.ovData = flowLPM; + flowSensorStatus[ sensorId ].measuredFlowLPM.override = OVERRIDE_KEY; + result = TRUE; + } } } @@ -358,7 +369,7 @@ * of the measured flow rate. * @details Inputs: none * @details Outputs: flowSensorStatus - * @param: sensorId the Id of the sensor which its value is reset. + * @param sensorId the Id of the sensor which its value is reset. * @return TRUE if override successful, FALSE if not *************************************************************************/ BOOL testResetMeasuredFlowRateOverride( U32 sensorId ) @@ -373,6 +384,12 @@ flowSensorStatus[ sensorId ].measuredFlowLPM.override = OVERRIDE_RESET; flowSensorStatus[ sensorId ].measuredFlowLPM.ovInitData = 0.0F; flowSensorStatus[ sensorId ].measuredFlowLPM.ovData = 0.0F; + + flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.data = flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.ovInitData; + flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.override = OVERRIDE_RESET; + flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.ovInitData = 0.0F; + flowSensorStatus[ sensorId ].measuredFlowBeforeCalLPM.ovData = 0.0F; + result = TRUE; } }