Index: firmware/App/Controllers/FlowSensors.c =================================================================== diff -u -r59357d3831aa60f17ccdfbe0eef1a005935b9a58 -r89d02f3aa9ad5f3de6cc85bebefb7add0a0dda89 --- firmware/App/Controllers/FlowSensors.c (.../FlowSensors.c) (revision 59357d3831aa60f17ccdfbe0eef1a005935b9a58) +++ firmware/App/Controllers/FlowSensors.c (.../FlowSensors.c) (revision 89d02f3aa9ad5f3de6cc85bebefb7add0a0dda89) @@ -334,18 +334,28 @@ * @param: value override measured flow rate in LPM * @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; + } } } @@ -373,6 +383,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; } } Index: firmware/App/Controllers/FlowSensors.h =================================================================== diff -u -rfc78b1e5af6d7ab8f7656b410c4cacdfd76a49e6 -r89d02f3aa9ad5f3de6cc85bebefb7add0a0dda89 --- firmware/App/Controllers/FlowSensors.h (.../FlowSensors.h) (revision fc78b1e5af6d7ab8f7656b410c4cacdfd76a49e6) +++ firmware/App/Controllers/FlowSensors.h (.../FlowSensors.h) (revision 89d02f3aa9ad5f3de6cc85bebefb7add0a0dda89) @@ -56,7 +56,7 @@ BOOL testSetFlowDataPublishIntervalOverride( U32 value ); BOOL testResetFlowDataPublishIntervalOverride( void ); -BOOL testSetMeasuredFlowRateOverride( U32 sensorId, F32 flowLPM ); +BOOL testSetMeasuredFlowRateOverride( U32 sensorId, F32 flowLPM, BOOL raw ); BOOL testResetMeasuredFlowRateOverride( U32 sensorId ); /**@}*/ Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r8912f5ad5d579105c721ce283c9deaa517eec7e1 -r89d02f3aa9ad5f3de6cc85bebefb7add0a0dda89 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 8912f5ad5d579105c721ce283c9deaa517eec7e1) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 89d02f3aa9ad5f3de6cc85bebefb7add0a0dda89) @@ -77,6 +77,13 @@ TEST_OVERRIDE_ARRAY_PAYLOAD_T ovRecord; ///< Test override array payload. BOOL flag; ///< Flag. } LC_OVERRIDE_PAYLOAD_T; + +/// Flow Sensor override payload structure +typedef struct +{ + TEST_OVERRIDE_ARRAY_PAYLOAD_T ovRecord; ///< Test override array payload. + BOOL flag; ///< Flag. +} FS_OVERRIDE_PAYLOAD_T; #pragma pack(pop) // ********** private data ********** @@ -2306,16 +2313,16 @@ *************************************************************************/ void handleTestMeasuredFlowOverrideRequest( MESSAGE_T *message ) { - TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + FS_OVERRIDE_PAYLOAD_T payload; BOOL result = FALSE; // verify payload length - if ( sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) == message->hdr.payloadLen ) + if ( sizeof( FS_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) { - memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); + memcpy( &payload, message->payload, sizeof( FS_OVERRIDE_PAYLOAD_T ) ); if ( FALSE == payload.reset ) { - result = testSetMeasuredFlowRateOverride( payload.index, payload.state.f32 ); + result = testSetMeasuredFlowRateOverride( payload.index, payload.state.f32, payload.flag ); } else {