diff --git a/Common/Hardware/WaterMeter/MechanicalMeter/FM2014/FM2014Core/FM2014.cs b/Common/Hardware/WaterMeter/MechanicalMeter/FM2014/FM2014Core/FM2014.cs
index c9206330..5b454007 100644
--- a/Common/Hardware/WaterMeter/MechanicalMeter/FM2014/FM2014Core/FM2014.cs
+++ b/Common/Hardware/WaterMeter/MechanicalMeter/FM2014/FM2014Core/FM2014.cs
@@ -202,7 +202,7 @@ namespace Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core
///
/// Force to decode the entire status even if it is not important for this measurement sequence.
///
- public static Boolean DecodeEntireStatus { get; set; } = false;
+ public static Boolean DecodeEntireStatus { get; set; }
///
/// Reminder of actual ongoing measurement information
@@ -885,7 +885,7 @@ namespace Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core
StatusDecodingMask = 0;
if (measMaskOn) StatusDecodingMask += STATUS_MEASURE_MASK;
if (errorMaskOn) StatusDecodingMask += STATUS_ERROR_MASK;
- if (faultMaskOn) StatusDecodingMask += (STATUS_FAULT1_MASK + STATUS_FAULT2_MASK);
+ if (faultMaskOn) StatusDecodingMask += STATUS_FAULT1_MASK + STATUS_FAULT2_MASK;
}
///
@@ -1439,7 +1439,7 @@ namespace Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core
/// 0 if double impulse deadtime detection is off
///
///
- ///
+ ///
/// - Initial.
///
public static Boolean PulseTimeMeasurement(UInt16? refPulsesRequired = null, UInt16? dutPulsesRequired = null,
@@ -1490,6 +1490,21 @@ namespace Sensus.Common.Hardware.WaterMeter.MechanicalMeter.FM2014.FM2014Core
if (!BuildAndWriteDoubleImpulseDeadtime(firstActiveFm2014))
return false;
+ // START FAKE setup for time measurement!
+ // Setup to get rid of the status message for missing 'Tolerance display attenuation missing' 'T' and
+ // missing 'Scale REF to DUT missing or out of range' 'K' even if these setting don't have any function
+ cmdName = CmdName.CmdSetCurrentOutputAttenuation;
+ if (!Write(cmdName, firstActiveFm2014, firstActiveFm2014.CurrentOutputAttenuation))
+ {
+ return false;
+ }
+ cmdName = CmdName.CmdRefToDutScale;
+ if (!Write(cmdName, firstActiveFm2014, firstActiveFm2014.RefToDutScaleStr))
+ {
+ return false;
+ }
+ // END FAKE setup for time measurement!
+
if (refPulsesRequired != null)
{
cmdName = CmdName.CmdSetRefPulsesRequired;
diff --git a/FM2014TestApp/Ui/Fm2014sTest/FM2014TestBenchWindow.xaml.cs b/FM2014TestApp/Ui/Fm2014sTest/FM2014TestBenchWindow.xaml.cs
index 00618939..b3fbee3f 100644
--- a/FM2014TestApp/Ui/Fm2014sTest/FM2014TestBenchWindow.xaml.cs
+++ b/FM2014TestApp/Ui/Fm2014sTest/FM2014TestBenchWindow.xaml.cs
@@ -1290,19 +1290,19 @@ namespace Sensus.Ui.FM2014TestBench
}
else if (resp.DoubleValue != null)
{
- LogText($"{timeUtcStr} - Ad: {fm2014.Address} - {resp.AnswerStr}: {resp.DoubleValue:F4} {resp.Unit}");
+ LogText($"{timeUtcStr} - Ad: {fm2014.Address} - {resp.AnswerStr}: {resp.DoubleValue:F6} {resp.Unit}");
switch (resp.CmdName)
{
case CmdName.CmdGetRefTimerTicks:
- valueStr = $"{resp.DoubleValue:F4}";
+ valueStr = $"{resp.DoubleValue:F3}";
ucFm2014?.SetValue(CAL_LBL_IDX_REF_MEAS_TMR, valueStr, statusColor);
break;
case CmdName.CmdGetDutTimerTicks:
- valueStr = $"{resp.DoubleValue:F4}";
+ valueStr = $"{resp.DoubleValue:F3}";
ucFm2014?.SetValue(CAL_LBL_IDX_DUT_MEAS_TMR, valueStr, statusColor);
break;
case CmdName.CmdCalculatedDutToRefTolerance:
- valueStr = $"{resp.DoubleValue:F4}";
+ valueStr = $"{resp.DoubleValue:F3}";
ucFm2014?.SetValue(CAL_LBL_IDX_DUT_TO_REF_TOL, valueStr, statusColor);
break;
case CmdName.CmdGetDutToRefToleranceUndamped:
@@ -1418,7 +1418,6 @@ namespace Sensus.Ui.FM2014TestBench
if (refPulsesRequired != null && dutPulsesRequired != null)
{
-
UpdateContentControl(MeasurementLabels[CAL_LBL_IDX_DUT_TO_REF_TOL],
StrLblDutToRefToleranceMeasured);
}
@@ -1443,9 +1442,21 @@ namespace Sensus.Ui.FM2014TestBench
// Set initial required pulses as those are static upon the entire measurement
if (refPulsesRequired != null)
+ {
ucFM2014.SetValue(CAL_LBL_IDX_REF_REQ_PLS, $"{_fm2014Common.RefPulsesRequired:D}");
+ ucFM2014.SetValue(CAL_LBL_IDX_REF_MEAS_TMR, "---");
+ }
+
if (dutPulsesRequired != null)
+ {
ucFM2014.SetValue(CAL_LBL_IDX_DUT_REQ_PLS, $"{_fm2014Common.DutPulsesRequired:D}");
+ ucFM2014.SetValue(CAL_LBL_IDX_DUT_MEAS_TMR, "---");
+ }
+
+ if (refPulsesRequired != null && dutPulsesRequired != null)
+ {
+ ucFM2014.SetValue(CAL_LBL_IDX_DUT_TO_REF_TOL, "---");
+ }
// Set thresholds for tolerance verification
fm2014.DutToRefCalibrationToleranceMax_percent = _fm2014Common.DutToRefCalibrationToleranceMax_percent;
@@ -1505,6 +1516,9 @@ namespace Sensus.Ui.FM2014TestBench
var ucFM2014 = (UcFM2014Device)UcFM2014s[idx];
ucFM2014.EnableMeasurements(REG_MEASURE_COUNT);
fm2014.CurrentOutputDisplayRangeNominal_percent = _fm2014Common.CurrentOutputDisplayRangeNominal_percent;
+ ucFM2014.SetValue(REG_LBL_IDX_REF_FREQU, "---");
+ ucFM2014.SetValue(REG_LBL_IDX_FLOW_RATE, "---");
+ ucFM2014.SetValue(REG_LBL_IDX_DUT_TO_REF_TOL, "---");
}
// Backup if meanwhile anything has changed
diff --git a/FM2014TestApp/Ui/Fm2014sTest/UserControls/UcFM2014Device.xaml b/FM2014TestApp/Ui/Fm2014sTest/UserControls/UcFM2014Device.xaml
index 722916fa..ff5a8a3d 100644
--- a/FM2014TestApp/Ui/Fm2014sTest/UserControls/UcFM2014Device.xaml
+++ b/FM2014TestApp/Ui/Fm2014sTest/UserControls/UcFM2014Device.xaml
@@ -23,13 +23,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+