From 4b825dc094e6aa731dd2a8d20c91fe77ea229c93 Mon Sep 17 00:00:00 2001 From: Thomas Wiedebusch Date: Thu, 19 Sep 2024 15:32:33 +0200 Subject: [PATCH] MagFlux: - update empty pipe control bits on (un)check ignore empty pipe --- .../MagFlux/MagFluxCore/MagFluxMeter.cs | 13 +++++++++++++ Common/Ui/MagFluxToolBox/FrmTest.cs | 15 ++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/Common/Hardware/WaterMeter/MagFlux/MagFluxCore/MagFluxMeter.cs b/Common/Hardware/WaterMeter/MagFlux/MagFluxCore/MagFluxMeter.cs index 792844db..73fbe8c4 100644 --- a/Common/Hardware/WaterMeter/MagFlux/MagFluxCore/MagFluxMeter.cs +++ b/Common/Hardware/WaterMeter/MagFlux/MagFluxCore/MagFluxMeter.cs @@ -1098,6 +1098,19 @@ namespace Xylem.Common.Hardware.WaterMeter.MagFlux.MagFluxCore return pcbId; } /// + /// Get empty pipe control bits MagFlux + /// + public Boolean GetEmptyPipeControl() + { + var retVal = RequestProtocol.GetEmptyPipeControl(out var epd_cntl_bits); + if (retVal) + { + EpdControlBits = epd_cntl_bits; + } + + return retVal; + } + /// /// Write calibration values to MagFlux /// public void WriteCalibration(List calibrationsCmPerH) diff --git a/Common/Ui/MagFluxToolBox/FrmTest.cs b/Common/Ui/MagFluxToolBox/FrmTest.cs index a0f044aa..ac6b0bd4 100644 --- a/Common/Ui/MagFluxToolBox/FrmTest.cs +++ b/Common/Ui/MagFluxToolBox/FrmTest.cs @@ -636,7 +636,20 @@ namespace Xylem.Common.Ui.MagFluxToolBox private void cbxIgnoreEmptyPipeStatus_CheckedChanged(Object sender, EventArgs e) { var retVal = _magFluxMeter?.SetIgnoreFailOnEmptyPipeOnHealthy(cbxIgnoreEmptyPipeStatus.Checked); - cbxIgnoreEmptyPipeStatus.ForeColor = retVal == null || (Boolean) retVal == false ? Color.Red : SystemColors.ControlText; + if (retVal != null && (Boolean)retVal) + { + cbxIgnoreEmptyPipeStatus.ForeColor = SystemColors.ControlText; + if (_magFluxMeter != null && _magFluxMeter.GetEmptyPipeControl()) + { + cbxStatus10.Checked = (_magFluxMeter?.EpdControlBits & 0x01) == 0x01; + cbxStatus11.Checked = (_magFluxMeter?.EpdControlBits & 0x02) == 0x02; + cbxStatus12.Checked = (_magFluxMeter?.EpdControlBits & 0x04) == 0x04; + } + } + else + { + cbxIgnoreEmptyPipeStatus.ForeColor = Color.Red; + } } private void cbxSimulatedFlow_CheckedChanged(Object sender, EventArgs e)