diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs index 40ff68a6..57c94ee9 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs @@ -510,7 +510,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } finally { - var actualProcessMsg = $"{Resources.StrRegisterCompare}: {strRequiredRegisterValue} "; + var actualProcessMsg = string.IsNullOrEmpty(strRequiredRegisterValue) ? "": + $"{Resources.StrRegisterCompare}: {strRequiredRegisterValue} "; OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs($@"{Resources.StrRegisterCompare}" + $@" {ActualRegisterCtr} / {registersCount}", @@ -549,16 +550,15 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Return false if PcbId between initial- and final-read does NOT match return false. /// + /// + /// - Allow final read out as often as called even if done before. + /// public Boolean FinalReadRegisters() { if (_currentGenesis == null) return false; - // deny update of registers if already done - if (_pcbIdFinalRegisterRead == _currentGenesis.PcbId) - return true; - - _pcbIdFinalRegisterRead = _currentGenesis.PcbId; + _pcbIdFinalRegisterRead = _currentGenesis.PcbId; // clear the contents of the restore registers if the water meter backed up was not identical if (_pcbIdInitialRegisterRead != _pcbIdFinalRegisterRead) {