diff --git a/Common/.shared/SharedAssemblyInfo.cs b/Common/.shared/SharedAssemblyInfo.cs index 0a78fd7b..29e428e1 100644 --- a/Common/.shared/SharedAssemblyInfo.cs +++ b/Common/.shared/SharedAssemblyInfo.cs @@ -14,5 +14,5 @@ using System.Reflection; //[assembly: AssemblyVersion("1.2.*.0")] -[assembly: AssemblyVersion("2.2.0.*")] -[assembly: AssemblyFileVersion("2.2.0.0")] \ No newline at end of file +[assembly: AssemblyVersion("2.2.1.*")] +[assembly: AssemblyFileVersion("2.2.1.0")] \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs index 5c85e31d..93bb419f 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs @@ -2050,43 +2050,64 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore } - public Boolean StoreAllApps() + /// + /// Executes all StoreConfiguration and StoreCalibration for each application. + /// + /// true if all configurations are stored + /// + /// - Initial + /// + /// + /// - Corrected logic to enter write and read loop, + /// - Removed SENSUSRADIO from read check as it returns NULL on read of StoreConfiguration. + /// + public Boolean StoreAllConfigurations() { var overallResult = true; - var retryLeft = 3; - foreach (var a in _configRegister.MeterRegisterDic.Where(a => a.Key.RegisterName.ToLower() == "storeconfiguration")) + foreach (var a in _configRegister.MeterRegisterDic.Where(a => + a.Key.RegisterName.ToLower() == "storeconfiguration" || + a.Key.RegisterName.ToLower() == "storecalibration")) { var done = false; - while (retryLeft > 0 && done) + //retries for each register access + var retryLeft = 3; + + while (retryLeft > 0 && !done) { - var result = WriteRegister(a.Key.GetIdent(), 1, true, false); + var result = WriteRegister(a.Key.GetIdent(), 1); if (!result) { - retryLeft = retryLeft - 1; + retryLeft -= 1; if (retryLeft == 0) { overallResult = false; - } continue; } Thread.Sleep(100); - var resultRead = ReadRegister(a.Key.GetIdent()); - if (resultRead == null || !resultRead.ToList().All(ra => ra == 0x00)) + if (a.Key.AppName == "SENSUSRADIO") { - retryLeft = retryLeft - 1; + done = true; + continue; + } + + var resultRead = ReadRegister(a.Key.GetIdent()); + if (resultRead == null || resultRead.ToList().Any(ra => ra != 0x00)) + { + retryLeft -= 1; if (retryLeft == 0) { overallResult = false; } + continue; } + done = true; Thread.Sleep(100); } - } return overallResult; diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs index fca6fae3..2d033a2c 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs @@ -136,7 +136,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore if (_currentGenesis == null && _pcbIdPostUpdate != _pcbIdPreUpdate) return false; // write store configuration to all applications - _currentGenesis?.StoreAllApps(); + _currentGenesis?.StoreAllConfigurations(); return true; } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs index e336bb41..1305c066 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisFile/MeterFwUpdate.cs @@ -957,6 +957,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile /// /// - Set file write timeout to default. /// + /// + /// - Store all configurations before the update. + /// public Boolean UpdatePreparation() { _actualOperation = ""; @@ -989,6 +992,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile _genesisMeter.WriteRegister(item.Key, item.Value); } + //store all configuration parameters + if (!_genesisMeter.StoreAllConfigurations()) return false; + //remove the update stop action StopUpdateProcess = false; return true; diff --git a/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionProcessShippingMode.cs b/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionProcessShippingMode.cs index 20605428..8951663b 100644 --- a/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionProcessShippingMode.cs +++ b/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionProcessShippingMode.cs @@ -50,7 +50,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions var useRadio = true; if (useRadio) { - if (Meter.StoreAllApps()) + if (Meter.StoreAllConfigurations()) { var writeList = new List(); @@ -84,7 +84,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions } else { - if (Meter.StoreAllApps()) + if (Meter.StoreAllConfigurations()) { base.currentProcessState = ProductionProcessState.Done; return; diff --git a/Common/Ui/GenesisToolBox/FrmAlarmMng.cs b/Common/Ui/GenesisToolBox/FrmAlarmMng.cs index 43bd46a2..5fa6e492 100644 --- a/Common/Ui/GenesisToolBox/FrmAlarmMng.cs +++ b/Common/Ui/GenesisToolBox/FrmAlarmMng.cs @@ -404,7 +404,7 @@ namespace Xylem.Common.Ui.GenesisToolBox var useRadio = true; if (useRadio) { - if (Meter.StoreAllApps()) + if (Meter.StoreAllConfigurations()) { var writeList = new List(); diff --git a/Common/Ui/GenesisToolBox/FrmConfigurations.cs b/Common/Ui/GenesisToolBox/FrmConfigurations.cs index 5f04b998..732afce0 100644 --- a/Common/Ui/GenesisToolBox/FrmConfigurations.cs +++ b/Common/Ui/GenesisToolBox/FrmConfigurations.cs @@ -230,7 +230,7 @@ namespace Xylem.Common.Ui.GenesisToolBox setActionResult(_currentGenesis.WriteRegister("METROLOGYASST_PulseWeight", PulseWeight)); - setActionResult(_currentGenesis.StoreAllApps()); + setActionResult(_currentGenesis.StoreAllConfigurations()); setActionResult(_currentGenesis.WriteRegister("SENSUSRADIO_SYSTEMSTATE", 0xFF, true, false)); @@ -292,7 +292,7 @@ namespace Xylem.Common.Ui.GenesisToolBox setActionResult(_currentGenesis.WriteRegister("GENESISFLOW_DisplayPow10", 253)); setActionResult(_currentGenesis.WriteRegister("GENESISFLOW_DisplayUnits", 0)); setActionResult(_currentGenesis.WriteRegister("METROLOGYASST_FlowUnits", 1)); - setActionResult(_currentGenesis.StoreAllApps()); + setActionResult(_currentGenesis.StoreAllConfigurations()); setActionResult(_currentGenesis.WriteRegister("SENSUSRADIO_SYSTEMSTATE", 0xFF, true, false)); } } diff --git a/Common/Ui/GenesisToolBox/FrmFwUpdate.cs b/Common/Ui/GenesisToolBox/FrmFwUpdate.cs index 55bc8e52..93f650b2 100644 --- a/Common/Ui/GenesisToolBox/FrmFwUpdate.cs +++ b/Common/Ui/GenesisToolBox/FrmFwUpdate.cs @@ -1804,7 +1804,7 @@ namespace Xylem.Common.Ui.GenesisToolBox _currentGenesis.WriteRegister("GENESISFLOW_TriggerIdle", (UInt32)0, true, false); - _currentGenesis.StoreAllApps(); + _currentGenesis.StoreAllConfigurations(); _currentGenesis.Logout(); diff --git a/Common/Ui/GenesisToolBox/FrmParameterization.cs b/Common/Ui/GenesisToolBox/FrmParameterization.cs index 0f293715..cd832318 100644 --- a/Common/Ui/GenesisToolBox/FrmParameterization.cs +++ b/Common/Ui/GenesisToolBox/FrmParameterization.cs @@ -190,7 +190,7 @@ namespace Xylem.Common.Ui.GenesisToolBox } _currentGenesis.WriteRegister("SENSUSRADIO_SYSTEMSTATE", 0xFF, true, false); - _currentGenesis.StoreAllApps(); + _currentGenesis.StoreAllConfigurations(); if (success) { MessageBox.Show("success"); diff --git a/Common/Ui/GenesisToolBox/frmMainForm.Designer.cs b/Common/Ui/GenesisToolBox/frmMainForm.Designer.cs index 4c43cc3c..b6196a50 100644 --- a/Common/Ui/GenesisToolBox/frmMainForm.Designer.cs +++ b/Common/Ui/GenesisToolBox/frmMainForm.Designer.cs @@ -291,7 +291,7 @@ this.button3.TabIndex = 19; this.button3.Text = "button3"; this.button3.UseVisualStyleBackColor = true; - //this.button3.Click += new System.EventHandler(this.button3_Click); + this.button3.Click += new System.EventHandler(this.button3_Click); // // BtnFileSplit // diff --git a/Common/Ui/GenesisToolBox/frmMainForm.cs b/Common/Ui/GenesisToolBox/frmMainForm.cs index 83b3880a..a31e22d3 100644 --- a/Common/Ui/GenesisToolBox/frmMainForm.cs +++ b/Common/Ui/GenesisToolBox/frmMainForm.cs @@ -369,5 +369,10 @@ namespace Xylem.Common.Ui.GenesisToolBox form.Closed += Form_Closed; Hide(); } + + private void button3_Click(object sender, EventArgs e) + { + + } } } diff --git a/Common/Ui/GenesisToolBox/frmRegisterStore.cs b/Common/Ui/GenesisToolBox/frmRegisterStore.cs index 502d65cf..a2b6a1aa 100644 --- a/Common/Ui/GenesisToolBox/frmRegisterStore.cs +++ b/Common/Ui/GenesisToolBox/frmRegisterStore.cs @@ -1745,7 +1745,7 @@ namespace Xylem.Common.Ui.GenesisToolBox { _currentGenesis = ((GenesisMeter)me); - var resultAll = _currentGenesis.StoreAllApps(); + var resultAll = _currentGenesis.StoreAllConfigurations(); if (resultAll) { btnStoreAll.BackColor = Color.Green; @@ -1943,7 +1943,7 @@ namespace Xylem.Common.Ui.GenesisToolBox Task.Factory.StartNew(() => { - if (_currentGenesis.StoreAllApps()) + if (_currentGenesis.StoreAllConfigurations()) { try { @@ -2010,7 +2010,7 @@ namespace Xylem.Common.Ui.GenesisToolBox Task.Factory.StartNew(() => { - if (_currentGenesis.StoreAllApps()) + if (_currentGenesis.StoreAllConfigurations()) { try {