diff --git a/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings b/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings index 3ed0dfa9..f941901b 100644 --- a/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings +++ b/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings @@ -1,6 +1,16 @@  PCB + False + False + False + False + False + False + False True + False + False + True True True True diff --git a/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.Designer.cs b/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.Designer.cs index 35eb9698..7b7384bc 100644 --- a/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.Designer.cs +++ b/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -574,6 +574,24 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw.Properties { } } + /// + /// Looks up a localized string similar to Interface does not support this FW version. + /// + internal static string StrInterfaceDoesNotSupportFwVersion { + get { + return ResourceManager.GetString("StrInterfaceDoesNotSupportFwVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Interface fully supports this FW version. + /// + internal static string StrInterfaceSupportsFwVersion { + get { + return ResourceManager.GetString("StrInterfaceSupportsFwVersion", resourceCulture); + } + } + /// /// Looks up a localized string similar to ERROR: Failed to restore items after change of language!. /// @@ -638,11 +656,20 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw.Properties { } /// - /// Looks up a localized string similar to Remaining life time:. + /// Looks up a localized string similar to Remaining life time FW:. /// - internal static string StrLifeTimeRemainingYears { + internal static string StrLifeTimeRemainingYearsFw { get { - return ResourceManager.GetString("StrLifeTimeRemainingYears", resourceCulture); + return ResourceManager.GetString("StrLifeTimeRemainingYearsFw", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remaining life time SW:. + /// + internal static string StrLifeTimeRemainingYearsSw { + get { + return ResourceManager.GetString("StrLifeTimeRemainingYearsSw", resourceCulture); } } diff --git a/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.resx b/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.resx index e33e2d48..e91abe63 100644 --- a/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.resx +++ b/ServiceFwUpdate/UI/ServiceFwUpdateSw/Properties/Resources.resx @@ -478,6 +478,12 @@ Files restored to meter: + + Interface fully supports this FW version + + + Interface does not support this FW version + ERROR: File readout failed! @@ -676,8 +682,11 @@ Drained battery load: - - Remaining life time: + + Remaining life time SW: + + + Remaining life time FW: years diff --git a/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs index b7920eff..bb4c9f0a 100644 --- a/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs +++ b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs @@ -3987,6 +3987,9 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder /// /// - Selector for register restore. /// + /// + /// - Avoid multiple identical search items. + /// private void gridViewCordonelsSelection_CellClick(Object sender, DataGridViewCellEventArgs e) { try @@ -4086,35 +4089,40 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder } // fill search masks for FW package selection if (!string.IsNullOrEmpty(cordSearch.Diameter) && - cordSearch.Diameter != Constants.StrUnknown) + cordSearch.Diameter != Constants.StrUnknown && + _sizeSearchItems.All(X => X != cordSearch.Diameter)) { _sizeSearchItems.Add(cordSearch.Diameter); } // fill search masks for FW package selection if (!string.IsNullOrEmpty(cordSearch.RadioFrequency) && - cordSearch.RadioFrequency != Constants.StrUnknown) + cordSearch.RadioFrequency != Constants.StrUnknown && + _radioSearchItems.All(x => x != cordSearch.RadioFrequency)) { _radioSearchItems.Add(cordSearch.RadioFrequency); } // fill search masks for FW package selection if (!string.IsNullOrEmpty(cordSearch.Region) && - cordSearch.Region != Constants.StrUnknown) + cordSearch.Region != Constants.StrUnknown && + _regionSearchItems.All(x => x != cordSearch.Region)) { _regionSearchItems.Add(cordSearch.Region); } // fill search masks for FW package selection if (!string.IsNullOrEmpty(cordSearch.CoreRevision) && - cordSearch.CoreRevision != Constants.StrUnknown) + cordSearch.CoreRevision != Constants.StrUnknown && + _coreSearchItems.All( x => x != cordSearch.CoreRevision)) { _coreSearchItems.Add(cordSearch.CoreRevision); } // fill search masks for FW package selection if (!string.IsNullOrEmpty(cordSearch.Metrology) && - cordSearch.Metrology != Constants.StrUnknown) + cordSearch.Metrology != Constants.StrUnknown && + _metrologySearchItems.All(x => x != cordSearch.Metrology)) { _metrologySearchItems.Add(cordSearch.Metrology); } diff --git a/ServiceFwUpdate/Ui/ServiceFwUpdateSw/FrmServiceFwUpdateSw.cs b/ServiceFwUpdate/Ui/ServiceFwUpdateSw/FrmServiceFwUpdateSw.cs index b703b07d..7a09e76f 100644 --- a/ServiceFwUpdate/Ui/ServiceFwUpdateSw/FrmServiceFwUpdateSw.cs +++ b/ServiceFwUpdate/Ui/ServiceFwUpdateSw/FrmServiceFwUpdateSw.cs @@ -1543,6 +1543,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw /// /// - Initial. /// + /// + /// - FW life time calculation has higher priority. + /// private void CalculateLifeTime(ProcessState successExitState, ProcessState errorExitState = ProcessState.Error) { @@ -1553,14 +1556,20 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw if (GenesisStatusHandler.BuildLifeTimeInformation(_currentGenesis, status, out _)) { - var lifeTimeInfo = new List + var lifeTimeInfo = new List(); + lifeTimeInfo.Add($"{Resources.StrLifeTimeDrainedBattery} {status.DrainedBatteryLoadPercent:F2} %"); + if (status.FwCalculatedRemainingLifeTimeYears != null) { - $"{Resources.StrLifeTimeDrainedBattery} {status.DrainedBatteryLoadPercent:F2} %", - $"{Resources.StrLifeTimeRemainingYears} {status.RemainingLifeTimeYears:F2} " + - $"{Resources.StrLifeTimeYears}" - }; + lifeTimeInfo.Add($"{Resources.StrLifeTimeRemainingYearsFw} {status.FwCalculatedRemainingLifeTimeYears:F2} " + + $"{Resources.StrLifeTimeYears}"); + } + else + { + lifeTimeInfo.Add($"{Resources.StrLifeTimeRemainingYearsSw} {status.RemainingLifeTimeYears:F2} " + + $"{Resources.StrLifeTimeYears}"); + } - LogStringList(Resources.StrLifeTimeCalculation, lifeTimeInfo, Resources.StrLifeTimeCalculationSucceeded); + LogStringList(Resources.StrLifeTimeCalculation, lifeTimeInfo, Resources.StrLifeTimeCalculationSucceeded); _processState = successExitState; } else @@ -2488,6 +2497,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw /// /// - FW version added. /// + /// + /// - Interface info added. + /// private void LogInstalledMeterFw() { if (_currentGenesis == null) @@ -2495,6 +2507,9 @@ namespace Xylem.ServiceFwUpdate.Ui.ServiceFwUpdateSw LogText($"PCB ID: {_currentGenesis.PcbId}"); LogText($"{Resources.StrMessageCustomerSerialNumber} {_customerSerialNumber}"); LogText($"FW Version: {_currentGenesis.FwVersion}"); + LogText($"Interface Version: {_currentGenesis.InterfaceInfo.InterfaceVersion}"); + LogText(_currentGenesis.InterfaceSupportsFwVersion ? Resources.StrInterfaceSupportsFwVersion : + Resources.StrInterfaceDoesNotSupportFwVersion); LogText($"{Resources.StrMessageSystemCoreRevision} {_currentGenesis.StrCoreRevision}"); LogText($"{Resources.StrMessageSystemRegion} {_currentGenesis.Region}"); LogText($"{Resources.StrMessageSystemRadio} {_currentGenesis.RadioFrequencyMhz}"); diff --git a/ServiceFwUpdate/Ui/ServiceFwUpdateSw/Properties/Resources.de.resx b/ServiceFwUpdate/Ui/ServiceFwUpdateSw/Properties/Resources.de.resx index 90739bde..05df88c5 100644 --- a/ServiceFwUpdate/Ui/ServiceFwUpdateSw/Properties/Resources.de.resx +++ b/ServiceFwUpdate/Ui/ServiceFwUpdateSw/Properties/Resources.de.resx @@ -478,6 +478,12 @@ Wiederhergestellte Dateien im Zähler: + + Das Interface unterstützt diese FW version voll + + + Das Interface unterstützt nicht diese FW version + FEHLER: Dateien lesen fehlgeschlagen! @@ -676,8 +682,11 @@ Verbrauchte Batterieladung: - - Verbleibende Restlaufzeit: + + Verbleibende Restlaufzeit SW: + + + Verbleibende Restlaufzeit FW: Jahre