diff --git a/Common/.shared/SharedAssemblyInfo.cs b/Common/.shared/SharedAssemblyInfo.cs index bd28db6d..38ebda7a 100644 --- a/Common/.shared/SharedAssemblyInfo.cs +++ b/Common/.shared/SharedAssemblyInfo.cs @@ -13,4 +13,4 @@ using System.Reflection; // //[assembly: AssemblyVersion("1.2.*.0")] -[assembly: AssemblyVersion("2.8.13.*")] +[assembly: AssemblyVersion("2.8.14.*")] diff --git a/Common/Common.sln.DotSettings b/Common/Common.sln.DotSettings index 8861e626..f85013f2 100644 --- a/Common/Common.sln.DotSettings +++ b/Common/Common.sln.DotSettings @@ -1,6 +1,17 @@  True + True + True + True + True + False + True + True + True + Enabled + True Left + True True HINT diff --git a/Common/CommonCore.Configuration/CommonCore.Configuration.csproj b/Common/CommonCore.Configuration/CommonCore.Configuration.csproj index fb275dff..1d012508 100644 --- a/Common/CommonCore.Configuration/CommonCore.Configuration.csproj +++ b/Common/CommonCore.Configuration/CommonCore.Configuration.csproj @@ -116,7 +116,6 @@ Properties\SharedAssemblyInfo.cs - diff --git a/Common/CommonCore.Configuration/ServiceUrls.cs b/Common/CommonCore.Configuration/ServiceUrls.cs index 76eae864..70dca582 100644 --- a/Common/CommonCore.Configuration/ServiceUrls.cs +++ b/Common/CommonCore.Configuration/ServiceUrls.cs @@ -7,219 +7,200 @@ namespace Xylem.Common.CommonCore.Configuration /// /// Urls for data base accesses /// - public static class ServiceUrls_oldBackup - + public static class ServiceUrls { +//#if URI_OLD_DNS // this is defined in build configuration 'VPN_Debug' as the new DNS cannot be reached via VPN +// private const String ServerDns = "http://sla12iis01.emea.sensus.net"; +//#else + private const String ServerDns = "http://delaz1web01.world.fluidtechnology.net"; +//#endif - private const String DefaultInspectCordonelRequirementInfoUrl = - "http://sla12iis01.emea.sensus.net/LaaProductionWeb/"; + private static readonly String DefaultInspectCordonelRequirementInfoUrl = + $"http://sla12iis01.emea.sensus.net/LaaProductionWeb/"; // return code: 404 not found, 400 Error with text, 200 okay - private const String DefaultEolDataForSentinelServiceUrl = - "http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/eolprogress/"; + private static readonly String DefaultEolDataForSentinelServiceUrl = + $"http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/eolprogress/"; - private const String DefaultGetPcbIdsFromSafeServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetPcbIdsFromSafe?ContainerDbId="; + private static readonly String DefaultGetPcbIdsFromSafeServiceUrl = + $"{ServerDns}/MeterProcessState/GetPcbIdsFromSafe?ContainerDbId="; - private const String DefaultAddPcbIdsToSafeServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/AddPcbIdsToSafe?ContainerDbId="; + private static readonly String DefaultGetExportDataServiceUrl = + $"{ServerDns}/MeterProcessState/api/Password/GetExportData?PcbId="; + private static readonly String DefaultGetCordonelMappingServiceUrl = + $"{ServerDns}/MeterProcessState/api/Order/GetCordonelMapping?PcbId="; + private static readonly String DefaultAddPcbIdsToSafeServiceUrl = + $"{ServerDns}/MeterProcessState/AddPcbIdsToSafe?ContainerDbId="; - private const String DefaultDownloadFilesPartsServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/GetFileParts?ParentFileId="; + private static readonly String DefaultGetOrderOverviewServiceUrl = + $"{ServerDns}/MeterProcessState/api/FinalCheck/GetOrderOverview?ProductionOrderNumber="; - private const String DefaultGetLutUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/GetLutFiles"; + private static readonly String DefaultGetOrderDetailsServiceUrl = + $"{ServerDns}/MeterProcessState/api/FinalCheck/GetOrderDetails?ProductionOrderNumber="; - private const String DefaultListAllFwPackagesServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=1"; + private static readonly String DefaultDownloadFilesPartsServiceUrl = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetFileParts?ParentFileId="; - private const String DefaultListAllSwPackagesServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=5"; + private static readonly String DefaultGetLutUrl = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetLutFiles"; - private const String DefaultListAllConfigFilePackagesServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=6"; + private static readonly String DefaultListAllFwPackagesServiceUrl = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=1"; - private const String DefaultListAllFwUpdateSafesServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=4"; + private static readonly String DefaultListAllSwPackagesServiceUrl = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=5"; - private const String DefaultSetCordonelAppVersionServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/ProccesState/SetCordonelProgress?PcbId="; + private static readonly String DefaultListAllConfigFilePackagesServiceUrl = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=6"; - private const String DefaultGetCordonelRequirementInfoUrl = + private static readonly String DefaultListAllFwUpdateSafesServiceUrl = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetFwFiles?FileIsForDeveloperOnly=false&FileCategoryID=4"; + + private static readonly String DefaultSetCordonelAppVersionServiceUrl = + $"{ServerDns}/MeterProcessState/api/ProccesState/SetCordonelProgress?PcbId="; + + private static readonly String DefaultGetCordonelRequirementInfoUrl = "http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/requirements/pcbid/"; - private const String DefaultGetCordonelAppVersionServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/ProccesState/GetCordonelAppVersion?PcbId="; + private static readonly String DefaultGetCordonelAppVersionServiceUrl = + $"{ServerDns}/MeterProcessState/api/ProccesState/GetCordonelAppVersion?PcbId="; - private const String DefaultListAllCordonelCustomersWithFilterServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Order/GetCordonelCustomers?FilterName="; + private static readonly String DefaultListAllCordonelCustomersWithFilterServiceUrl = + $"{ServerDns}/MeterProcessState/api/Order/GetCordonelCustomers?FilterName="; - private const String DefaultListAllCordonelCustomerOrdersServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Order/GetCustomersCordonelOrders?CustomerNumber="; + private static readonly String DefaultListAllCordonelCustomerOrdersServiceUrl = + $"{ServerDns}/MeterProcessState/api/Order/GetCustomersCordonelOrders?CustomerNumber="; - private const String DefaultListCordonelOrderDetailsServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Order/GetCordonelOrderDetails?OrderNr="; + private static readonly String DefaultListCordonelOrderDetailsServiceUrl = + $"{ServerDns}/MeterProcessState/api/Order/GetCordonelOrderDetails?OrderNr="; - private const String DefaultListAllOrderCordonelsServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Order/GetCordonelOrderList?CustomerOrderNumber="; + private static readonly String DefaultListAllOrderCordonelsServiceUrl = + $"{ServerDns}/MeterProcessState/api/Order/GetCordonelOrderList?CustomerOrderNumber="; - private const String DefaultDownloadFwUpdateSafeServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetFWUpdateSafeContainerContent?SafeContainerId="; + private static readonly String DefaultDownloadFwUpdateSafeServiceUrl = + $"{ServerDns}/MeterProcessState/GetFWUpdateSafeContainerContent?SafeContainerId="; - private const String DefaultListAllFwUpdateSafesForUserServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetFWUpdateSafeContainers?UserId="; + private static readonly String DefaultListAllFwUpdateSafesForUserServiceUrl = + $"{ServerDns}/MeterProcessState/GetFWUpdateSafeContainers?UserId="; - private const String DefaultFileContentDownloadServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetFileContent?FileId="; + private static readonly String DefaultFileContentDownloadServiceUrl = + $"{ServerDns}/MeterProcessState/GetFileContent?FileId="; - private const String DefaultFwUpdateReportUploadServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/PostFWUpdateReportFile"; + private static readonly String DefaultFwUpdateReportUploadServiceUrl = + $"{ServerDns}/MeterProcessState/PostFWUpdateReportFile"; - private const String DefaultFwUpdateReportDownloadServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetFWUpdateReportFile?"; + private static readonly String DefaultFwUpdateReportDownloadServiceUrl = + $"{ServerDns}/MeterProcessState/GetFWUpdateReportFile?"; - private const String DefaultFwUpdateSafeContainerUploadServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/PostFWUpdateSafeOdd"; + private static readonly String DefaultFwUpdateSafeContainerUploadServiceUrl = + $"{ServerDns}/MeterProcessState/PostFWUpdateSafeOdd"; - private const String DefaultEditFwUpdateUserValidityServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/EditUserValidity?Id="; + private static readonly String DefaultEditFwUpdateUserValidityServiceUrl = + $"{ServerDns}/MeterProcessState/EditUserValidity?Id="; - private const String DefaultRefreshFwUpdateUsersHardwareIdServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/RefreshUsersHardwareId?Id="; + private static readonly String DefaultRefreshFwUpdateUsersHardwareIdServiceUrl = + $"{ServerDns}/MeterProcessState/RefreshUsersHardwareId?Id="; - private const String DefaultRefreshFwUpdateUsersPasswordHashServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/RefreshUsersPasswordHash?Id="; + private static readonly String DefaultRefreshFwUpdateUsersPasswordHashServiceUrl = + $"{ServerDns}/MeterProcessState/RefreshUsersPasswordHash?Id="; - private const String DefaultCreateNewFwUpdateUserServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/AddNewUser?"; + private static readonly String DefaultCreateNewFwUpdateUserServiceUrl = + $"{ServerDns}/MeterProcessState/AddNewUser?"; - private const String DefaultListAllFwUpdateUsersServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetUserList"; + private static readonly String DefaultListAllFwUpdateUsersServiceUrl = + $"{ServerDns}/MeterProcessState/GetUserList"; - private const String DefaultListAllFwUpdateBuilderOperatorsServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetAllBuilderOperator"; + private static readonly String DefaultListAllFwUpdateBuilderOperatorsServiceUrl = + $"{ServerDns}/MeterProcessState/GetAllBuilderOperator"; - private const String DefaultGetFwUpdateUserByIdServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetUserList?Id="; + private static readonly String DefaultGetFwUpdateUserByIdServiceUrl = + $"{ServerDns}/MeterProcessState/GetUserList?Id="; - private const String DefaultGetFwUpdateUserByLoginNameServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/GetUserList?LogInName="; + private static readonly String DefaultGetFwUpdateUserByLoginNameServiceUrl = + $"{ServerDns}/MeterProcessState/GetUserList?LogInName="; - private const String DefaultRegisterWatchServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/RegisterWatch/"; + private static readonly String DefaultRegisterWatchServiceUrl = + $"{ServerDns}/MeterProcessState/api/RegisterWatch/"; - private const String DefaultGenesisGetOrderNumberServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Password/ordernumber?PcbId="; + private static readonly String DefaultGenesisGetOrderNumberServiceUrl = + $"{ServerDns}/MeterProcessState/api/Password/ordernumber?PcbId="; - private const String DefaultGenesisGetRadioAddressServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Password/radioadress?PcbId="; + private static readonly String DefaultGenesisGetRadioAddressServiceUrl = + $"{ServerDns}/MeterProcessState/api/Password/radioadress?PcbId="; - private const String DefaultGenesisGetKeySetIdServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Password/getkeysetid?PcbId="; + private static readonly String DefaultGenesisGetKeySetIdServiceUrl = + $"{ServerDns}/MeterProcessState/api/Password/getkeysetid?PcbId="; - private const String DefaultGenesisGetPasswordServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Password/GetPassword?PcbId="; + private static readonly String DefaultGenesisSetPickingStateServiceUrl = + $"{ServerDns}/MeterProcessState/api/ProccesState/SetPickingState?PcbID="; - private const String DefaultGenesisSetPasswordServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Password/setpassword?PcbId="; + private static readonly String DefaultGenesisGetPasswordServiceUrl = + $"{ServerDns}/MeterProcessState/api/Password/GetPassword?PcbId="; - private const String DefaultGenesisPasswordContainerServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Password/GetPasswordHashFileContent?PcbId="; + private static readonly String DefaultGenesisSetPasswordServiceUrl = + $"{ServerDns}/MeterProcessState/api/Password/setpassword?PcbId="; - private const String DefaultMarriageServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/Marriage/"; + private static readonly String DefaultGenesisPasswordContainerServiceUrl = + $"{ServerDns}/MeterProcessState/api/Password/GetPasswordHashFileContent?PcbId="; - private const String DefaultMeterProcessStateUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/ProccesState/"; + private static readonly String DefaultMarriageServiceUrl = + $"{ServerDns}/MeterProcessState/api/Marriage/"; - private const String DefaultGenesisFinalCheckServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FinalCheck/"; + private static readonly String DefaultMeterProcessStateUrl = + $"{ServerDns}/MeterProcessState/api/ProccesState/"; - private const String DefaultGenesisRadioCheckServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/RadioCheck/"; + private static readonly String DefaultGenesisFinalCheckServiceUrl = + $"{ServerDns}/MeterProcessState/api/FinalCheck/"; - private const String DefaultGetSoftwareStartUpAccessUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/SoftwareAccess/GetVersionIsValid"; + private static readonly String DefaultGenesisRadioCheckServiceUrl = + $"{ServerDns}/MeterProcessState/api/RadioCheck/"; - private const String DefaultSetSoftwareLicenseUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/SoftwareAccess/SetVersionIsValid?Program="; + private static readonly String DefaultGetSoftwareStartUpAccessUrl = + $"{ServerDns}/MeterProcessState/api/SoftwareAccess/GetVersionIsValid"; - private const String DefaultGetSoftwareLicenseUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/SoftwareAccess/GetCurrentVersion?Program="; + private static readonly String DefaultSetSoftwareLicenseUrl = + $"{ServerDns}/MeterProcessState/api/SoftwareAccess/SetVersionIsValid?Program="; - private const String DefaultGenesisCalibrationResult = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/GenesisMeter/PostCalibrationResult"; + private static readonly String DefaultGetSoftwareLicenseUrl = + $"{ServerDns}/MeterProcessState/api/SoftwareAccess/GetCurrentVersion?Program="; - private const String DefaultGetGenesisCalibrationResults = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FinalCheck/CalibrationResults/"; + private static readonly String DefaultGenesisCalibrationResult = + $"{ServerDns}/MeterProcessState/api/GenesisMeter/PostCalibrationResult"; - private const String DefaultGenesisMeter = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/GenesisMeter/"; + private static readonly String DefaultGetGenesisCalibrationResults = + $"{ServerDns}/MeterProcessState/api/FinalCheck/CalibrationResults/"; - private const String DefaultFileContentController = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/"; + private static readonly String DefaultGenesisMeter = + $"{ServerDns}/MeterProcessState/api/GenesisMeter/"; - private const String DefaultKeyServerCustom = + private static readonly String DefaultFileContentController = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/"; + + private static readonly String DefaultKeyServerCustom = "https://nodes.sms-esaap.com/keygenproxy/api/v3/custom/"; - private const String DefaultMeterInfoForTestBench = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/TestBench/GetMeterInfoForTestBench?PcbID="; + private static readonly String DefaultMeterInfoForTestBench = + $"{ServerDns}/MeterProcessState/api/TestBench/GetMeterInfoForTestBench?PcbID="; - private const String DefaultCordonelFwInfoUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/FileUpToDate/GetCordonelFw"; + private static readonly String DefaultCordonelFwInfoUrl = + $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetCordonelFw"; - private const String DefaultDbDataAtEolServiceUrl = - "http://sla12iis01.emea.sensus.net/MeterProcessState/api/fwupdate/databaseateol/"; + private static readonly String DefaultDbDataAtEolServiceUrl = + $"http://sla12iis01.emea.sensus.net/MeterProcessState/api/fwupdate/databaseateol/"; - //private const String DefaultGenesisGetOrderNumberServiceUrl = - // "http://localhost:56011/api/Password/ordernumber?PcbId="; + public static readonly String PressureSensorTestURL_GetTestSpec + = $"{ServerDns}/MeterProcessState/api/CordonelPressureSensorTest/GetTestSpec"; - //private const String DefaultGenesisGetRadioAdressServiceUrl = - // "http://localhost:56011/api/Password/radioadress?PcbId="; - - //private const String DefaultGenesisGetKeySetIdServiceUrl = - // "http://localhost:56011/api/Password/getkeysetid?PcbId="; - - //private const String DefaultGenesisGetPasswordServiceUrl = - // "http://localhost:56011/api/Password/GetPassword?PcbId="; - - //private const String DefaultGenesisSetPasswordServiceUrl = - // "http://localhost:56011/api/Password/setpassword?PcbId="; - - //private const String DefaultGenesisPasswordContainerServiceUrl = - // "http://localhost:56011/api/Password/GetPasswordHashFileContent?PcbId="; - - //private const String DefaultMarriageServiceUrl = - // "http://localhost:56011/api/Marriage/"; - - //private const String DefaultMeterProcessStateUrl = - // "http://localhost:56011/api/ProccesState/"; - - - //private const String DefaultGenesisFinalCheckServiceUrl = - // "http://localhost:56011/api/FinalCheck/"; - - - //private const String DefaultGenesisRadioCheckServiceUrl = - // "http://localhost:56011/api/RadioCheck/"; - - //private const String DefaultGetSoftwareStartUpAccessUrl = - // "http://localhost:56011/api/SoftwareAccess/GetVersionIsValid"; - - - private const String PressureSensorTestURL_GetTestSpec - = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/CordonelPressureSensorTest/GetTestSpec"; - - private const String PressureSensorTestURL_PostTestResults - = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/CordonelPressureSensorTest/PostTestResults"; + public static readonly String PressureSensorTestURL_PostTestResults + = $"{ServerDns}/MeterProcessState/api/CordonelPressureSensorTest/PostTestResults"; /// /// usage: string.Format(CordonelPressureSensorTestURL_GetTestResults, pcbId); /// - private const String PressureSensorTestURL_GetTestResults - = "http://sla12iis01.emea.sensus.net/MeterProcessState/api/CordonelPressureSensorTest/GetTestResults/{0}"; + public static readonly String PressureSensorTestURL_GetTestResults + = $"{ServerDns}/MeterProcessState/api/CordonelPressureSensorTest/GetTestResults/{0}"; public const String LaaProductionAPI #if DEBUG == false // when false uses always the production url. @@ -232,7 +213,7 @@ namespace Xylem.Common.CommonCore.Configuration /// /// GET: test specification for water meter with pressure sensor. /// - public static string GetPressureSensorSpecificationURL + public static String GetPressureSensorSpecificationURL #if DEBUG => "http://localhost:56011/api/CordonelPressureSensorTest/GetTestSpec"; #else @@ -243,7 +224,7 @@ namespace Xylem.Common.CommonCore.Configuration /// /// POST: test result for water meter with pressure sensor. /// - public static string PostPressureSensorResultURL + public static String PostPressureSensorResultURL #if DEBUG => "http://localhost:56011/api/CordonelPressureSensorTest/PostTestResults"; @@ -256,7 +237,7 @@ namespace Xylem.Common.CommonCore.Configuration /// /// GET: a list of test results for the water meter with specified pcbId. /// - public static string PressureSensorResultsURL(this T pcbId) + public static String PressureSensorResultsURL(this T pcbId) { #if DEBUG var url = "http://localhost:56011/api/CordonelPressureSensorTest/GetTestResults/{0}"; @@ -268,7 +249,49 @@ namespace Xylem.Common.CommonCore.Configuration } - + /// + /// Get export data + /// + /// + public static String GetExportDataServiceUrl() + { + return ConfigurationManager.AppSettings["GetExportDataServiceUrl"] ?? + DefaultGetExportDataServiceUrl; + } + + /// + /// Get Cordonel mapping + /// + /// + public static String GetCordonelMappingServiceUrl() + { + return ConfigurationManager.AppSettings["GetCordonelMappingServiceUrl"] ?? + DefaultGetCordonelMappingServiceUrl; + } + + /// + /// Get Cordonel order overview to check the assignment state + /// + /// + public static String GetOrderOverviewServiceUrl() + { + return ConfigurationManager.AppSettings["GetOrderOverviewServiceUrl"] ?? + DefaultGetOrderOverviewServiceUrl; + } + + /// + /// Get Cordonel order details to check for order dependent requirements like + /// - MeterSize, + /// - FrequencyIndicator, + /// - PressurePresent. + /// + /// + public static String GetOrderDetailsServiceUrl() + { + return ConfigurationManager.AppSettings["GetOrderDetailsServiceUrl"] ?? + DefaultGetOrderDetailsServiceUrl; + } + /// /// List all Cordonel FW packages. /// @@ -430,8 +453,8 @@ namespace Xylem.Common.CommonCore.Configuration /// Get all production infos for skip process checks or limits for production like: /// - Battery drained percentage upper limit, /// - Production due date for a special register, - /// - Required life time for assembly line, - /// - Required life time for shipping line. + /// - Required lifetime for assembly line, + /// - Required lifetime for shipping line. /// /// public static String GetCordonelRequirementInfoServiceUrl() @@ -444,11 +467,11 @@ namespace Xylem.Common.CommonCore.Configuration /// Get all production infos for skip process checks or limits for production like: /// - Battery drained percentage upper limit, /// - Production due date for a special register, - /// - Required life time for assembly line, - /// - Required life time for shipping line. + /// - Required lifetime for assembly line, + /// - Required lifetime for shipping line. /// /// - public static String GetCordonelRequirementByFANrInfoServiceUrl(string ponr) + public static String GetCordonelRequirementByFANrInfoServiceUrl(String ponr) { return $"http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/requirements/pono/{ponr}"; } @@ -457,11 +480,11 @@ namespace Xylem.Common.CommonCore.Configuration /// Get all production infos for skip process checks or limits for production like: /// - Battery drained percentage upper limit, /// - Production due date for a special register, - /// - Required life time for assembly line, - /// - Required life time for shipping line. + /// - Required lifetime for assembly line, + /// - Required lifetime for shipping line. /// /// - public static string GetCordonelRequirementByMeterSizeInfoServiceUrl(int size) + public static String GetCordonelRequirementByMeterSizeInfoServiceUrl(Int32 size) { return $"http://sla12iis01.emea.sensus.net/LaaProductionWeb/api/cordonel/requirements/isize/{size}"; } @@ -718,6 +741,16 @@ namespace Xylem.Common.CommonCore.Configuration DefaultGenesisGetKeySetIdServiceUrl; } + /// + /// Genesis get password url + /// + /// + public static String GenesisSetPickingStateServiceUrl() + { + return ConfigurationManager.AppSettings["GenesisSetPickingStateServiceUrl"] ?? + DefaultGenesisSetPickingStateServiceUrl; + } + /// /// Genesis get password url /// @@ -832,21 +865,6 @@ namespace Xylem.Common.CommonCore.Configuration { throw new NotImplementedException(); } - - public static String GetOrderOverviewServiceUrl() - { - throw new NotImplementedException(); - } - - public static String GetCordonelMappingServiceUrl() - { - throw new NotImplementedException(); - } - - public static String GenesisSetPickingStateServiceUrl() - { - throw new NotImplementedException(); - } } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs index 1f752a72..0abf6b55 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs @@ -1645,6 +1645,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Initial, extracted from /// + /// + /// - Excluded register versions explicit specified in the 'configuration.json' as version.exclude list. + /// public void BuildValidMeterRegisters(List> tempConfigRegisters) { if (tempConfigRegisters == null || tempConfigRegisters.Count == 0) @@ -1677,7 +1680,10 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore (registerToCheck.Key.RegisterDetail.Version.Last != null && registerToCheck.Key.RegisterDetail.Version.First != null && registerToCheck.Key.RegisterDetail.Version.First.Value <= currentGroup.Version && - registerToCheck.Key.RegisterDetail.Version.Last.Value >= currentGroup.Version)) + registerToCheck.Key.RegisterDetail.Version.Last.Value >= currentGroup.Version && + ( registerToCheck.Key.RegisterDetail.Version.Exclude == null || + // Exclude named versions + registerToCheck.Key.RegisterDetail.Version.Exclude.All(exVer => exVer != currentGroup.Version)))) { configRegisterListForDebug.Add(registerToCheck.Key.GetIdent()); // Avoid multiple assignment of identical register in dictionary if one has passed the test diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs index 20eb07c0..1bf43e2b 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/RegisterRestorer.cs @@ -121,14 +121,14 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// Registers manually explicit excluded for in-field updatable parameters for the CUST to prevent inadvertent /// modifications resulting in potential MID violations. - /// - /// Defined by M.C., J.L. and A.F. with the file: 'FwUpdateController.cs-GetRecoveryFile()-2507160616.xlsx'. - /// - /// All commands defined here will not be accepted from 'external' to adjust. Program internally, those - /// commands are potentially allowed if those do not change any MID dependent 'values'. /// - /// - /// - SENSUSRADIO_WakeupInterval added to keep radio active after field update if it was active before. + /// + /// Defined by M.C., J.L. and A.F. with the file: 'FwUpdateController.cs-GetRecoveryFile()-2507160616.xlsx'. + /// + /// + /// CUST 2.8.14: + /// - Added: - ’SENSUSRADIO_WakeupInterval’ to keep radio active after CUST run + /// - Removed: - 'GENESISFLOW_SealDisplay' being able to modify display resolution /// private static readonly List _fieldUpdateBlacklist = new List { @@ -190,7 +190,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore "GENESISFLOW_PipeFillingDelay", //46 "GENESISFLOW_ResetAccumulators", //47 "GENESISFLOW_SampleRate", //48 - "GENESISFLOW_SealDisplay", //49 + //"GENESISFLOW_SealDisplay", //49 - 2025-Dec-10 - emoved as needed to modify display resolution A.F., M.C. - CUST_2.8.14 "GENESISFLOW_StartHit", //50 "GENESISFLOW_StoreCalibration", //51 "GENESISFLOW_Timeout", //52 @@ -253,7 +253,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore "SENSUSRADIO_Tfx_Structure", //21 "SENSUSRADIO_UpgFWVersion", //22 "SENSUSRADIO_UtcTimeOffset", //23 - "SENSUSRADIO_WakeupInterval", //24 + "SENSUSRADIO_WakeupInterval", //24 - 2025-Dec-08 - CUST_2.8.14 "SYSTEM_CalendarSeconds", // 1 "SYSTEM_CheckPresence", // 2 @@ -1102,6 +1102,9 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Login/Logout moved here. /// + /// + /// - Redundant OOR message removed. + /// private StatusReturn WriteRegisterParameterSet(List recoveryRegistersDb, Int32 recRegistersCount, MeterRegisters meterRegisters, CancellationToken cancellationToken, Boolean fieldUpdate) { @@ -1153,7 +1156,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore _currentGenesis.WriteLog(errorMessage); OnProcessUpdate?.Invoke(this, new ProcessExecEventArgs( $@"{Resources.StrWriteRegister} {_actualRegisterCtr} / {recRegistersCount}", - overallProcessCtrPercent, Resources.StrRegisterValueOutOfRange + " " + errorMessage)); + overallProcessCtrPercent, errorMessage)); _currentGenesis?.Logout(); return StatusReturn.Failed; } @@ -1207,15 +1210,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - Leave the initial 'RecoveryRegisters' intact. /// - public Boolean RestoreAndCompareRegistersAfterReboot(CancellationToken cancellationToken) + /// + /// - Leave the initial 'FailedComparisonRegisters' intact. + /// + public Boolean RestoreAndCompareRegistersAfterReboot(CancellationToken cancellationToken) { if (!HasRestoreRegistersAfterRebootIfCompareFailed) return false; HasRestoreRegistersAfterRebootIfCompareFailed = false; - FailedComparisonRegisters.Clear(); - // get the pre-defined dictionary var meterRegisters = _currentGenesis.GetConfigRegistersDefinitions(); @@ -1317,7 +1321,6 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore var retVal = true; // build a string list of the registers being able to sort those - //var registerNames = RecoveryRegisters.Select(register => register.RegisterIdent).ToList(); var registerNames = recoveryRegisters.Select(register => register.RegisterIdent).ToList(); // Remove all excluded registers @@ -1630,6 +1633,12 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// - CancellationToken. /// + /// + /// - CancellationToken. + /// + /// + /// - Repaired building of initial register list. + /// public Boolean InitialReadRegisters(CancellationToken cancellationToken) { if (_currentGenesis == null) @@ -1644,7 +1653,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore _pcbIdInitialRegisterRead = _currentGenesis.PcbId; // create a dictionary for final read being able to compare those with the initial read and restored - if (!BuildReadableRegisterDictionary(ref _finalRegisters)) + if (!BuildReadableRegisterDictionary(ref _initialRegisters)) return false; // log to report file the initial register read string diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json b/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json index 1a3a6c1f..8db2482b 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/configuration.json @@ -657,7 +657,7 @@ "id": 9, "version": { "first": 1, - "last": 166 + "last": 167 }, "registers": { "AlarmStatus0": { @@ -678,7 +678,7 @@ "description": "8 bit counts corresponding to alarms 0-3.", "version": { "first": 1, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -719,7 +719,7 @@ "description": "8 bit counts corresponding to alarms 4-7.", "version": { "first": 1, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -779,7 +779,7 @@ "description": "Any set bits manually clear the corresponding alarm.", "version": { "first": 111, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -828,7 +828,7 @@ "description": "8 bit counts corresponding to alarms 8-11.", "version": { "first": 26, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -869,7 +869,7 @@ "description": "8 bit counts corresponding to alarms 12-15.", "version": { "first": 26, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -910,7 +910,7 @@ "description": "8 bit counts corresponding to alarms 16-19.", "version": { "first": 26, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -951,7 +951,7 @@ "description": "8 bit counts corresponding to alarms 20-23.", "version": { "first": 26, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -992,7 +992,7 @@ "description": "8 bit counts corresponding to alarms 24-27.", "version": { "first": 26, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -1033,7 +1033,7 @@ "description": "8 bit counts corresponding to alarms 28-31.", "version": { "first": 26, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -1194,7 +1194,7 @@ "description": "Bit set of those alarms which are being monitored.", "version": { "first": 164, - "last": 166 + "last": 167 }, "values": { "default": 4294967295, @@ -1274,7 +1274,7 @@ "description": "Bit set of those alarms which will generate events.", "version": { "first": 111, - "last": 166 + "last": 167 }, "values": { "default": 4294967295, @@ -1450,7 +1450,7 @@ "description": "Bit set of those alarms which are displayed with IDs and the alarm icon.", "version": { "first": 164, - "last": 166 + "last": 167 }, "values": { "default": 4294967295, @@ -1534,7 +1534,7 @@ "description": "Alarms that have their display automatically cleared", "version": { "first": 111, - "last": 166 + "last": 167 }, "statictype": "static", "production": { @@ -1647,7 +1647,7 @@ "description": "Flow rate above which broken pipe alarm is set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", "version": { "first": 133, - "last": 166 + "last": 167 }, "si_transform": { "remarks": "Cubic Meters per Second: conversion of 1/256 l/h flow rate units, the volume (liters = (1 / 256) * 10^-3 m^3 = 3.90625 * 10^-6 m^3) and time (hours = 3600 s) into SI base units. Flow rate = (3.90625 * 10^-6 m^3) / (3600 s) = 1.085069444 * 10^-9 m^3/s.", @@ -1764,7 +1764,7 @@ "description": "Time threshold for leak alarm in minutes", "version": { "first": 119, - "last": 166 + "last": 167 }, "si_transform": { "remarks": "Seconds: time in minutes ...", @@ -1872,7 +1872,7 @@ "description": "Number of minutes of reverse flow required to set reverse flow alarm", "version": { "first": 143, - "last": 166 + "last": 167 }, "values": { "default": 15, @@ -1928,7 +1928,7 @@ "description": "Timezone in which this application is set to run.", "version": { "first": 24, - "last": 166 + "last": 167 }, "values": { "default": 0, @@ -1976,7 +1976,7 @@ "description": "A name for the arrangement of applications on the meter", "version": { "first": 130, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -2040,7 +2040,7 @@ "description": "The number of times the meter has rebooted", "version": { "first": 111, - "last": 166 + "last": 167 }, "values": { "minimum": 0, @@ -2133,7 +2133,7 @@ "description": "Time threshold for broken pipe alarm in minutes", "version": { "first": 119, - "last": 166 + "last": 167 }, "values": { "default": 180, @@ -2261,7 +2261,7 @@ "description": "Flow rate above which leak alarm can be set in 1/256 l/h. Due to rounding the value read back may not be exactly the value written. This is why the statictype is given as 'approximate'", "version": { "first": 133, - "last": 166 + "last": 167 }, "values": { "default": 6399, @@ -2321,7 +2321,7 @@ "description": "Charge in uAs available in manufacturing (read only)", "version": { "first": 84, - "last": 166 + "last": 167 }, "si_transform": { "remarks": "Coulombs: charge in uAs ...", @@ -2422,7 +2422,7 @@ "description": "High temperature alarm threshold in 0.1°C", "version": { "first": 111, - "last": 166 + "last": 167 }, "si_transform": { "remarks": "Degrees Celsius: temperature in 0.1 degrees C ...", @@ -2511,7 +2511,7 @@ "description": "Time threshold for high temperature alarm in seconds", "version": { "first": 111, - "last": 166 + "last": 167 }, "si_transform": { "remarks": "Seconds: time in seconds ...", @@ -2624,7 +2624,7 @@ "description": "Low temperature alarm threshold in 0.1°C", "version": { "first": 111, - "last": 166 + "last": 167 }, "values": { "default": 20, @@ -2704,7 +2704,7 @@ "description": "Time threshold for low temperature alarm in seconds", "version": { "first": 111, - "last": 166 + "last": 167 }, "values": { "default": 600, @@ -2808,7 +2808,7 @@ "description": "High pressure alarm threshold in Pa", "version": { "first": 122, - "last": 166 + "last": 167 }, "values": { "default": 1600000, @@ -2912,7 +2912,7 @@ "description": "Time threshold for high pressure alarm in seconds", "version": { "first": 119, - "last": 166 + "last": 167 }, "si_transform": { "remarks": "Seconds: ...", @@ -3025,7 +3025,7 @@ "description": "Low pressure alarm threshold in Pa", "version": { "first": 122, - "last": 166 + "last": 167 }, "values": { "default": 30000, @@ -3129,7 +3129,7 @@ "description": "Time threshold for low pressure alarm in seconds", "version": { "first": 119, - "last": 166 + "last": 167 }, "values": { "default": 600, @@ -3204,7 +3204,7 @@ "description": "Store all configuration items in non-volatile memory.", "version": { "first": 131, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -3245,7 +3245,7 @@ "description": "Customer serial number string", "version": { "first": 139, - "last": 166 + "last": 167 }, "statictype": "static", "production": { @@ -3289,7 +3289,7 @@ "description": "Internal backup of calendar seconds", "version": { "first": 145, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -3332,7 +3332,7 @@ "description": "Datetime in seconds since 1/1/2000 00:00:00. Time meter was determined to have been installed. 0 means not installed.", "version": { "first": 147, - "last": 166 + "last": 167 }, "statictype": "infrequentlyupdated", "production": { @@ -3383,7 +3383,7 @@ "description": "Read to view the string used as a decimal point for this locale", "version": { "first": 151, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -3426,7 +3426,7 @@ "description": "Read to view the string used as a thousands separarator for this locale", "version": { "first": 151, - "last": 166 + "last": 167 }, "statictype": "dynamic", "production": { @@ -3469,7 +3469,7 @@ "description": "Test whether the internal login works. Start test by writing '1' then log out to enable the test to run. Log back in and read back this register for result (see status codes)", "version": { "first": 157, - "last": 166 + "last": 167 }, "values": { "minimum": 0, @@ -3514,7 +3514,7 @@ "description": "time threshold in Minutes for NoFlowAlarm trigger NoFlowAlarm trigger; 251002 Clemens: clamp the “last” field to 161 and may need to use the “exclude” versions mechanism if 1.3 development includes work for CORDHW-3124.", "version": { "first": 161, - "last": 161 + "last": 167 }, "values": { "default": 43200, @@ -3562,7 +3562,7 @@ "description": "number of consecutive samples (Minutes) before NoFlow Alarm gets cleared; 251002 Clemens: clamp the “last” field to 161 and may need to use the “exclude” versions mechanism if 1.3 development includes work for CORDHW-3124.", "version": { "first": 161, - "last": 161 + "last": 167 }, "values": { "default": 5, @@ -3610,7 +3610,7 @@ "description": "number of samples for moving average (window size)", "version": { "first": 165, - "last": 166 + "last": 167 }, "values": { "default": 5, @@ -3658,7 +3658,7 @@ "description": "Unitless granularity steps for positive pressure Gradient alarm threshold", "version": { "first": 165, - "last": 166 + "last": 167 }, "values": { "default": 200, @@ -3706,7 +3706,7 @@ "description": "Unitless granularity steps for negative pressure Gradient alarm threshold", "version": { "first": 165, - "last": 166 + "last": 167 }, "values": { "default": 200, @@ -3754,7 +3754,7 @@ "description": "Number of consecutive samples above threshold before Alarm gets triggered", "version": { "first": 165, - "last": 166 + "last": 167 }, "values": { "default": 3, @@ -6545,7 +6545,11 @@ "remarks": "", "region": { "emea": null, - "na": null + "na": { + "values": { + "US2": 19144 + } + } } }, "fieldtool": { @@ -6714,7 +6718,11 @@ "remarks": "", "region": { "emea": null, - "na": null + "na": { + "values": { + "US2": 19144 + } + } } }, "fieldtool": { @@ -6883,7 +6891,11 @@ "remarks": "", "region": { "emea": null, - "na": null + "na": { + "values": { + "US2": 19144 + } + } } }, "fieldtool": { @@ -12075,7 +12087,7 @@ "responsible": [ "roland.drabesch@xylem.com" ], - "remarks": "Display should be sealed at end of manufacture (EMEA only).", + "remarks": "Display should be sealed at end of manufacture (EMEA only). 251210 FieldTool modification enabled: The guidance was that CustTool is allowed to change legally relevant configuration in the field. So we do not require all legally relevant registers to be in the blacklist. This is because the restriction on changing legally relevant configuration in the field is only applied to customer-facing tools. CustTool is considered an internal ‘repair tool’ that must be allowed to make such repairs to legally relevant configuration in the field.", "region": { "emea": { "values": { @@ -12090,7 +12102,7 @@ } }, "fieldtool": { - "reset_permitted": "ro-check" + "reset_permitted": "yes" } }, { @@ -17417,7 +17429,7 @@ "id": 256, "version": { "first": 1, - "last": 365 + "last": 366 }, "builds": { "emea": [ @@ -17496,6 +17508,10 @@ { "id": 365, "fw": "1423" + }, + { + "id": 366, + "fw": "1424" } ], "na": [ @@ -17719,7 +17735,7 @@ "id": 17, "version": { "first": 1, - "last": 77 + "last": 78 }, "registers": { "DataLogContents": { @@ -17770,6 +17786,52 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "This is a copy of DataLogContents from SENSUSRADIO. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 206906379, + "minimum": 201344787, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 206906379 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -17822,6 +17884,53 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Storage Period in minutes of the LOG memory in minutes. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 60 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -17873,6 +17982,52 @@ "fieldtool": { "reset_permitted": "no" } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Averaging period in minutes. It is calculated automatically in SENSURADIO. Don't modify.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 5 + } + } + } + }, + "fieldtool": { + "reset_permitted": "no" + } } ] }, @@ -17924,6 +18079,52 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. Bit Mask of the FDR items to be logged. Don't modify here. Set this parameter in SENSUSRADIO and wait 22 sec for storage in PERIODICLOG", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 206906379, + "minimum": 201344787, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "", + "region": { + "emea": { + "values": { + "default": 206906379 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -17976,6 +18177,53 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A Copy from SENSUSRADIO. The day of month where FDR storage will take place at 00:00. Don't modify here.", + "version": { + "first": 78, + "last": 78 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": false, + "responsible": [ + "jens.schulz@xylem.com", + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please set the desired content in SENSUSRADIO and wait 22 seconds for storage.", + "region": { + "emea": { + "values": { + "default": 1 + } + } + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -17997,7 +18245,7 @@ "description": "A counter used for internal purposes", "version": { "first": 15, - "last": 77 + "last": 78 }, "values": { "default": 0, @@ -18046,7 +18294,7 @@ "description": "A counter to monitor the application resets", "version": { "first": 20, - "last": 77 + "last": 78 }, "values": { "default": 0, @@ -18830,7 +19078,7 @@ "id": 16, "version": { "first": 100, - "last": 553 + "last": 554 }, "registers": { "TxInterval": { @@ -18851,7 +19099,7 @@ "description": "The SensusRF transmission interval in seconds for the BUPs", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 15, @@ -18902,7 +19150,7 @@ "description": "The Open Metering transmission interval in seconds", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 3600, @@ -18953,7 +19201,7 @@ "description": "The Listen After Talk interval as number 'n'. After every 'n' BUPs follows a BUP-LAT", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 3, @@ -19004,7 +19252,7 @@ "description": "The Wake Up interval in seconds 's'. Every 's' seconds will the meter sniff for a WakeUp tone. 's' == 0 means active sending and no sniffing", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 3, @@ -19055,7 +19303,7 @@ "description": "The internal MBus state (Open Metering). A bit oriented value. Do not write if you do not know details", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 7, @@ -19106,7 +19354,7 @@ "description": "A number that shows the radio frequency used. Normally 433 or 868", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 433, @@ -19153,7 +19401,7 @@ "description": "A radio frequency calibration parameter", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19200,7 +19448,7 @@ "description": "A parameter for controling the radio power", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19286,7 +19534,7 @@ "description": "The internal System State of the Radio", "version": { "first": 545, - "last": 553 + "last": 554 }, "values": { "default": 1, @@ -19333,7 +19581,7 @@ "description": "The radio address used by the meter", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19380,7 +19628,7 @@ "description": "The offset the between meter time and UTC for time correction", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19427,7 +19675,7 @@ "description": "The number of bytes sent during meter lifetime", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19474,7 +19722,7 @@ "description": "The number of bytes received during meter lifetime", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19521,7 +19769,7 @@ "description": "The number of resets the application SensusRfRadio has performed over lifetime", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19568,7 +19816,7 @@ "description": "An internal temporary state (enum) regarding the firmwware update", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -19615,7 +19863,7 @@ "description": "The flow value of the leakage (low flow) detection", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 25, @@ -19662,7 +19910,7 @@ "description": "The time in minutes of the leakage (low flow) detection threshold", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 360, @@ -19709,7 +19957,7 @@ "description": "The flow value of the broken pipe (high flow) detection", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 2500, @@ -19756,7 +20004,7 @@ "description": "The time in Minutes of the broken pipe (high flow) detection threshold", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 180, @@ -19803,7 +20051,7 @@ "description": "The pressure value of the maximum (high) pressure alarm", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 160, @@ -19850,7 +20098,7 @@ "description": "The pressure value of the minimum (low) pressure alarm", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 3, @@ -19897,7 +20145,7 @@ "description": "The time in seconds of the maximum (high) pressure alarm threshold", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 600, @@ -19944,7 +20192,7 @@ "description": "The time in seconds of the minimum (low) pressure alarm threshold", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 600, @@ -19991,7 +20239,7 @@ "description": "The period in seconds with which the pressure is measured (fix 60 sec)", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 60, @@ -20038,7 +20286,7 @@ "description": "An enum respresenting the unit of pressure (0= no pressure sensor, 1= MPas, 2= PSI, 3= Bar)", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -20085,7 +20333,7 @@ "description": "The gauge offset of the pressure sensor value in mBar", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -20132,7 +20380,7 @@ "description": "The temperature value of the maximum (high) temperature alarm", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 50, @@ -20179,7 +20427,7 @@ "description": "The temperature value of the minimum (low) temperature alarm", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 2, @@ -20226,7 +20474,7 @@ "description": "The time in Minutes of the maximum (high) temperature alarm threshold", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 600, @@ -20273,7 +20521,7 @@ "description": "The time in Minutes of the minimum (low) temperature alarm threshold", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 600, @@ -20320,7 +20568,7 @@ "description": "The period in seconds with which the temperature is measured (only 60 is valid)", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 60, @@ -20367,7 +20615,7 @@ "description": "An enum respresenting the unit of temperature (1= Celsius, 2= Fahrenheit)", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 1, @@ -20414,7 +20662,7 @@ "description": "An enumerator defining the currently active PulseWidth (0 ... 8 for non testmode values and 9 ... 15 for testmode)", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 4, @@ -20461,7 +20709,7 @@ "description": "A number representing the pulse weight multiplicator 1, 10, 100 or 1000", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 1, @@ -20508,7 +20756,7 @@ "description": "An enum (0 to 3) representing the pulse output mode (0= deactivated, ...)", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 1, @@ -20555,7 +20803,7 @@ "description": "A parameter regarding the non existing current loop output", "version": { "first": 100, - "last": 553 + "last": 554 }, "statictype": "infrequentlyupdated", "production": { @@ -20597,7 +20845,7 @@ "description": "A parameter regarding the non existing current loop output", "version": { "first": 100, - "last": 553 + "last": 554 }, "statictype": "infrequentlyupdated", "production": { @@ -20678,7 +20926,7 @@ "description": "A byte value representing a mask of currently active (1) main alarms. These are the flow and genreral alarms", "version": { "first": 545, - "last": 553 + "last": 554 }, "values": { "default": 207, @@ -20725,7 +20973,7 @@ "description": "A byte value representing a mask of currently active (1) extended alarms. These are the temperature and pressure related alarms", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 60, @@ -20772,7 +21020,7 @@ "description": "A number of days (0 = off) after which alarms are cleared from the alarm byte values when they are no longer active", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 29, @@ -20823,7 +21071,7 @@ "description": "A value in minutes that defines the time the meter will stay in testmode after that mode was started", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -20870,7 +21118,7 @@ "description": "The SensusRF encryption key (16 bytes) of the meter", "version": { "first": 100, - "last": 553 + "last": 554 }, "statictype": "static", "production": { @@ -20912,7 +21160,7 @@ "description": "The SensusRF Authentification PINs (3 PINs of 4 byte each) of the meter", "version": { "first": 100, - "last": 553 + "last": 554 }, "statictype": "static", "production": { @@ -20954,7 +21202,7 @@ "description": "The version of the complete Meter firmware package as represented by application FlexNetVersion", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21001,7 +21249,7 @@ "description": "An array of 9 bytes of freely programmable SensusRF customer Text", "version": { "first": 100, - "last": 553 + "last": 554 }, "statictype": "infrequentlyupdated", "production": { @@ -21043,7 +21291,7 @@ "description": "An uint32_t value representing the meter's system DateTime when the radio had last time sent a telegram", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21090,7 +21338,7 @@ "description": "An uint32_t value representing the meter's system DateTime when the radio had detected first the low-battery status", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21137,7 +21385,7 @@ "description": "A copy of the LowBatDateTime time stamp", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21184,7 +21432,7 @@ "description": "A byte value representing the currently active volume unit used by radio", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 19, @@ -21231,7 +21479,7 @@ "description": "A byte value representing additional information regarding the unit derived from the volume unit when used for flow or alternate volume, 0x1x= liter per sec, 0xx1= kiloLiter", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21278,7 +21526,7 @@ "description": "A byte value normaly never changed regarding general behavior of the firmware related to Over The Air updates", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 1, @@ -21366,7 +21614,7 @@ "description": "A complex structure of 84 bytes related to the Tfx mode of the meter respectively the volume channel", "version": { "first": 550, - "last": 553 + "last": 554 }, "statictype": "dynamic", "production": { @@ -21408,7 +21656,7 @@ "description": "A structure of 4 uint16_t values used for the customer DEWA", "version": { "first": 100, - "last": 553 + "last": 554 }, "statictype": "dynamic", "production": { @@ -21476,6 +21724,48 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "32 Bit Mask of the items to be logged. Minimum items: 0x0C002003 (201344787 - can not be cleared)", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 206906379, + "minimum": 201344787, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please wait 22 seconds after writing for storage in PERIODICLOG.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -21523,6 +21813,48 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "number of minutes representing the time period for storing data records into the periodic log file", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 60, + "minimum": 1, + "maximum": 1440 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Please wait 22 seconds after writing for storage in PERIODICLOG.", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -21570,6 +21902,48 @@ "fieldtool": { "reset_permitted": "no" } + }, + { + "type": "uint16_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "A number minutes that was automatically calculated from the DataLogPeriod for the averaging period and min and max calculations", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 5, + "minimum": 1, + "maximum": 60 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": false, + "kitron": false, + "csd": null, + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "Can be ignored because is calulated automatically", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "no" + } } ] }, @@ -21617,6 +21991,48 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint32_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "32 bit mask defining FDR logging items. Minimum items: 0x0C002003 (201344787 - can not be cleared) ", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 206906379, + "minimum": 201344787, + "maximum": 4294967295 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "After setting wait 22 seconds for storage in PERIODICLOG", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -21664,6 +22080,48 @@ "fieldtool": { "reset_permitted": "yes" } + }, + { + "type": "uint8_t", + "privilege": { + "lvl1": "RW", + "lvl2": "RW", + "lvl3": "RW", + "lvl4": "RW", + "lvl5": "RW", + "lvl6": "RW", + "lvl7": "RW", + "lvl8": "RW" + }, + "description": "The day of the month (0 = every day) on which at 00:00 the fixed date logging takes place", + "version": { + "first": 554, + "last": 554 + }, + "values": { + "default": 1, + "minimum": 1, + "maximum": 28 + }, + "statictype": "infrequentlyupdated", + "production": { + "required": true, + "kitron": false, + "csd": "default", + "vako": false, + "operation_calibration": false, + "runtime_ignore": true, + "responsible": [ + "joerg.lachenmayer@xylem.com" + ], + "remarks": "After setting wait 22 seconds for storage in PERIODICLOG", + "region": { + "emea": null + } + }, + "fieldtool": { + "reset_permitted": "yes" + } } ] }, @@ -21685,7 +22143,7 @@ "description": "An uint32_t counter used originally for debugging during development. Meanwhile out of use", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21736,7 +22194,7 @@ "description": "An uint8_t value related to the power level used by the radio when an Irda module is present", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21783,7 +22241,7 @@ "description": "An uint16_t value used for adjusting the antenna impedance", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 4, @@ -21830,7 +22288,7 @@ "description": "An uint16_t value used for adjusting the antenna impedance if an Irda module is present", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 4, @@ -21877,7 +22335,7 @@ "description": "A parameter of type bool that signals the presence of an Irda module. The value is controlled by the meter", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -21924,7 +22382,7 @@ "description": "Write 1 to store configuration values to non-volatile storage. Read back for status", "version": { "first": 100, - "last": 553 + "last": 554 }, "statictype": "dynamic", "production": { @@ -21966,7 +22424,7 @@ "description": "The number of seconds since the radio left the production (Set to 0 at the end of the production proccess)", "version": { "first": 100, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -22013,7 +22471,7 @@ "description": "A value (counter) used only during development for release testing", "version": { "first": 412, - "last": 553 + "last": 554 }, "values": { "default": 4320000, @@ -22060,7 +22518,7 @@ "description": "A counter used to control the radio activity which must not exceed certain regulatory limits", "version": { "first": 412, - "last": 553 + "last": 554 }, "values": { "default": 1000, @@ -22107,7 +22565,7 @@ "description": "Storage item for HistoricalErrorLimitCounters Reverse(1, hi) and Leak(0, lo)", "version": { "first": 437, - "last": 553 + "last": 554 }, "values": { "default": 16711935, @@ -22154,7 +22612,7 @@ "description": "Storage item for HistoricalErrorLimitCounters Magnet(3, hi) and Air(2, lo)", "version": { "first": 437, - "last": 553 + "last": 554 }, "values": { "default": 16711935, @@ -22201,7 +22659,7 @@ "description": "Storage item for HistoricalErrorLimitCounters PressureMin(5, hi) and PressureMax(4, lo)", "version": { "first": 437, - "last": 553 + "last": 554 }, "values": { "default": 16711935, @@ -22248,7 +22706,7 @@ "description": "Storage item for HistoricalErrorLimitCounters TempMin(7, hi) and TempMax(6, lo)", "version": { "first": 437, - "last": 553 + "last": 554 }, "values": { "default": 16711935, @@ -22295,7 +22753,7 @@ "description": "int8_t value to add an offset to the measured pressure in 10mBar resolution (for value from -1270 to +1270 mBar for field calibration purposes). -128 is an invalid value", "version": { "first": 483, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -22342,7 +22800,7 @@ "description": "a 6 bytes big complex structure for the Tfx settings of the secondary channel 1 (temperature)", "version": { "first": 494, - "last": 553 + "last": 554 }, "statictype": "infrequentlyupdated", "production": { @@ -22384,7 +22842,7 @@ "description": "a 6 bytes big complex structure for the Tfx settings of the secondary channel 2 (pressure)", "version": { "first": 494, - "last": 553 + "last": 554 }, "statictype": "infrequentlyupdated", "production": { @@ -22426,7 +22884,7 @@ "description": "An unit32_t value used to support/control the MB_MODE3_OMSv4B transmission uinque MCR", "version": { "first": 499, - "last": 553 + "last": 554 }, "values": { "default": 0, @@ -22473,7 +22931,7 @@ "description": "Storage item for HistoricalErrorLimitCounters NoFlowAlarm(7, hi) and Metrology Failure(6, lo)", "version": { "first": 536, - "last": 553 + "last": 554 }, "values": { "default": 16711935, @@ -22520,7 +22978,7 @@ "description": "Storage item for HistoricalErrorLimitCounters Reboot Alarm(7, hi) and reserved(6, lo)", "version": { "first": 536, - "last": 553 + "last": 554 }, "values": { "default": 16711680, @@ -22567,7 +23025,7 @@ "description": "Alarm persistence in Minutes for both pressure Gardient Alarm types", "version": { "first": 550, - "last": 553 + "last": 554 }, "values": { "default": 60, diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetSerialNumberAndRadioAddress.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetSerialNumberAndRadioAddress.cs index 18a8682c..a912e5a7 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetSerialNumberAndRadioAddress.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetSerialNumberAndRadioAddress.cs @@ -58,7 +58,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener "&withRadioAdress=true"; var responseJson = LocalWebRequest.GetRequest(url, 30000); - var stringArray = JsonConvert.DeserializeObject(responseJson); + var stringArray = JsonConvert.DeserializeObject(responseJson); if (stringArray != null) { diff --git a/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings b/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings index 3ed0dfa9..68ca4beb 100644 --- a/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings +++ b/ServiceFwUpdate/ServiceFwUpdate.sln.DotSettings @@ -1,6 +1,20 @@  + False + False + False PCB + True + True + True + True + True + False + True + 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.Designer.cs b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.Designer.cs index 888c8b76..76e4824e 100644 --- a/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.Designer.cs +++ b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.Designer.cs @@ -414,6 +414,7 @@ this.gridViewCordonelSelection.Name = "gridViewCordonelSelection"; this.gridViewCordonelSelection.ReadOnly = true; this.gridViewCordonelSelection.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.gridViewCordonelsSelection_CellClick); + this.gridViewCordonelSelection.ColumnHeaderMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.gridViewCordonelSelection_ColumnHeaderMouseClick); // // tblPanelCordonelSearch // diff --git a/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs index b7920eff..a375e91c 100644 --- a/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs +++ b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.cs @@ -767,7 +767,6 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder SetStatusProgressBar(); _dbAccessDelayCtrMs = 0; _processState = ProcessState.GetCordonelProductionOrdersFromDb; - } if (e.TabPage == tabPageCustomerSelection) @@ -1041,7 +1040,7 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder _logger.Info(StrSeparator); InitializeComponent(); - + if (_cultureInfo.IetfLanguageTag.Contains("de-")) radioBtnGermanLanguage.Checked = true; else @@ -1341,7 +1340,7 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder if (_fwUpdateCapability.All(x => x.ReleaseContainerLoaded == false) || _fwUpdateCapability.Any(x => x.RecoveryNotNeededOrLoaded == false) || _fwUpdateCapability.Any(x => x.PowerCorrectionNotNeededOrLoaded == false) || - _fwUpdateCapability.Any(x => x.PasswordContainerLoaded == false) ) + _fwUpdateCapability.Any(x => x.PasswordContainerLoaded == false)) { _processState = ProcessState.Error; return false; @@ -2450,8 +2449,8 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder value = 100; if (value < 0) value = 0; - ProgressBarStatus.Visible = visible; - ProgressBarStatus.Value = value; + ProgressBarStatus.Visible = visible; + ProgressBarStatus.Value = value; } catch (Exception) { @@ -3987,6 +3986,9 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder /// /// - Selector for register restore. /// + /// + /// - Avoid multiple identical search items. + /// private void gridViewCordonelsSelection_CellClick(Object sender, DataGridViewCellEventArgs e) { try @@ -4008,7 +4010,7 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder } - // select register restore + // select factory reset if (gridViewCordonelSelection.Columns[e.ColumnIndex].Name == Resources.StrTableRegisterRestoreSelect) { // Search the cordonel in the production search list @@ -4086,35 +4088,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); } @@ -4149,6 +4156,38 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder _processState = ProcessState.Error; } } + /// + /// Overwrite header cell click to to toggle all Cordonel selections + /// + /// + /// + /// + /// - Initial. + /// + private void gridViewCordonelSelection_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) + { + try + { + var cordSearchCtr = 0; + // Toggle all factory resets for every Cordonel + if (gridViewCordonelSelection.Columns[e.ColumnIndex].Name == Resources.StrTableRegisterRestoreSelect || + gridViewCordonelSelection.Columns[e.ColumnIndex].Name == Resources.StrTableSelect) + { + // Search the cordonel in the production search list + foreach (var cordSearch in _cordonelProductionSearchInfos) + { + var cellEventArgs = new DataGridViewCellEventArgs(e.ColumnIndex, cordSearchCtr); + gridViewCordonelsSelection_CellClick(this, cellEventArgs); + cordSearchCtr++; + Update(); + } + } + } + catch (Exception) + { + _processState = ProcessState.Error; + } + } /// /// Build data grid for cordonels @@ -4177,6 +4216,9 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder /// /// - Disabled language selection, culture info fixed to english. /// + /// + /// - Avoid sorting of 'selection' and 'factory reset' columns. + /// private void FillDataGridWithCordonelInfos() { grpLanguageSelection.Enabled = false; @@ -4256,7 +4298,9 @@ namespace Xylem.ServiceFwUpdate.Ui.FwUpdateBuilder foreach (DataGridViewColumn column in gridViewCordonelSelection.Columns) { - column.SortMode = DataGridViewColumnSortMode.Automatic; + if (column.Name != Resources.StrTableRegisterRestoreSelect && + column.Name != Resources.StrTableSelect) + column.SortMode = DataGridViewColumnSortMode.Automatic; } } catch (Exception) diff --git a/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.resx b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.resx index 78bd0c11..ef8c4da0 100644 --- a/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.resx +++ b/ServiceFwUpdate/Ui/ServiceFwUpdateBuilder/FrmFwUpdateBuilder.resx @@ -241,6 +241,57 @@ 0 + + radioBtnGermanLanguage + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpLanguageSelection + + + 0 + + + radioBtnEnglishLanguage + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + grpLanguageSelection + + + 1 + + + 6, 78 + + + 101, 61 + + + 42 + + + Language + + + False + + + grpLanguageSelection + + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelInfo + + + 1 + True @@ -301,36 +352,33 @@ 1 - - 6, 78 - - - 101, 61 - - - 42 - - - Language - - - False - - - grpLanguageSelection - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelInfo - - - 1 - 17, 17 + + 0, 707 + + + 1008, 22 + + + 44 + + + Main Status + + + StatusDisplay + + + System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + MiddleRight @@ -361,63 +409,9 @@ False - - 0, 707 - - - 1008, 22 - - - 44 - - - Main Status - - - StatusDisplay - - - System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - 133, 17 - - 93, 22 - - - E&xit - - - 37, 20 - - - &File - - - 55, 20 - - - &Wizard - - - 95, 22 - - - &Info - - - 44, 20 - - - &Help - 0, 0 @@ -442,6 +436,36 @@ 2 + + 37, 20 + + + &File + + + 93, 22 + + + E&xit + + + 55, 20 + + + &Wizard + + + 44, 20 + + + &Help + + + 95, 22 + + + &Info + Fill @@ -475,12 +499,918 @@ GrowAndShrink + + panelCustomerSelection + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCustomerSelection + + + 0 + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 4 + + + Customer Selection + + + tabPageCustomerSelection + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 0 + + + 1 + + + Fill + + + 0, 31 + + + 0, 0, 0, 0 + + + 986, 390 + + + 2 + + + gridViewCordonelSelection + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSelection + + + 0 + + + 7 + + + tbxCordonelProductionOrdersSearch + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSearch + + + 0 + + + cbxCordonelProductionOrdersSearch + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSearch + + + 1 + + + lblInfoSelectCustomer + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSearch + + + 2 + + + btnCordonelSearch + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSearch + + + 3 + + + lblCordonelProductionNumberSearch + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSearch + + + 4 + + + lblCordonelCustomerSerialNumberSearch + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSearch + + + 5 + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 1 + + + 986, 31 + + + 1 + + + tblPanelCordonelSearch + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCordonelSelection + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tbxCordonelProductionOrdersSearch" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="cbxCordonelProductionOrdersSearch" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lblInfoSelectCustomer" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="btnCordonelSearch" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /><Control Name="lblCordonelProductionNumberSearch" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelCustomerSerialNumberSearch" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /></Controls><Columns Styles="Absolute,122,Absolute,141,Absolute,108,Absolute,134,Absolute,104,Absolute,108,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 986, 421 + + + 0 + + + tblPanelCordonelSelection + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelCordonelSelection + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="gridViewCordonelSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelCordonelSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> + + + Fill + + + 3, 3 + + + 0, 0, 0, 0 + + + 986, 421 + + + 1 + + + panelCordonelSelection + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCordonelSelection + + + 0 + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 0 + + + Cordonel Selection + + + tabPageCordonelSelection + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 1 + + + panelFwPackageSelection + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageFwPackageSelection + + + 0 + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 5 + + + FW-Package Selection + + + tabPageFwPackageSelection + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 2 + + + gridViewUpdateOperators + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageUpdateOperator + + + 0 + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 1 + + + Update Operators + + + tabPageUpdateOperator + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 3 + + + gridViewPreBuildSummary + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPagePreBuildSummary + + + 0 + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 6 + + + Pre Build Summary + + + tabPagePreBuildSummary + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 4 + + + rtbReport + + + System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageSafeBuildReport + + + 0 + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 3 + + + Safe Build Report + + + tabPageSafeBuildReport + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 5 + + + tblFwUpdateSafeSelection + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageFwUpdateSafes + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelFwUpdateSafeSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewFwUpdateSafeSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 8 + + + FW-Update Safes + + + tabPageFwUpdateSafes + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 6 + + + tblPanelFwUpdateReports + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageReports + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelFwUpdateReportsSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewFwUpdateReportSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> + + + 4, 22 + + + 3, 3, 3, 3 + + + 994, 429 + + + 7 + + + FW-Update Reports + + + tabPageReports + + + System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabControlSelection + + + 7 + + + Fill + + + 0, 0 + + + 0, 31 + + + 1002, 455 + + + 50 + + + tabControlSelection + + + System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelSelection + + + 0 + + + Fill + + + 3, 166 + + + 1002, 455 + + + 43 + + + panelSelection + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer0 + + + 0 + + + True + + + GrowAndShrink + + + 3 + + + tblPanelSafeInfo + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Top + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblCustomerNameText" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblCustomerNumber" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCustomerNumberText" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwUpdateDutyDateText" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwUpdateDutyDate" Row="5" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblUpdateOperatorText" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblOrderNumberText" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblUpdateOperator" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelsCustomerText" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="tbxCustomerName" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tbxCordonelsCustomerCount" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="tableLayoutPanel1" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelSelectedCountText" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblCordonelsSelectedCount" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="lblSelectedFwPackagesText" Row="2" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblSelectedFwPackages" Row="2" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="lblCordonelApprovedCountText" Row="3" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblCordonelsApprovedCount" Row="3" RowSpan="1" Column="4" ColumnSpan="1" /></Controls><Columns Styles="Absolute,129,Absolute,131,Absolute,40,Absolute,150,Absolute,50,Percent,100" /><Rows Styles="Absolute,25,Absolute,25,Percent,100,Absolute,25,Absolute,25,Absolute,25" /></TableLayoutSettings> + + + pictureBox1 + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Top + + + 1 + + + Fill + + + 3, 3 + + + 1 + + + 1002, 157 + + + 44 + + + tblPanelLayer1Top + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer0 + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelSafeInfo" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="pictureBox1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelInfo" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Absolute,150,Percent,100,Absolute,120" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + + GrowAndShrink + + + 3 + + + tblPanelSpecialButtons + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Bottom + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="btnLicenseFwUpdateBuilder" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="btnLicenseFwUpdateSw" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,41,Absolute,38,Absolute,34,Absolute,105" /><Rows Styles="Absolute,30,Percent,100" /></TableLayoutSettings> + + + tblPanelStandardButtons + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Bottom + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="btnBuildFwUpdateSafe" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="btnUploadSafeToDb" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Absolute,106,Absolute,114" /><Rows Styles="Percent,50,Percent,50" /></TableLayoutSettings> + + + tblPanelDebugDevices + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Bottom + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="cbxAddDebugCordonels" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,10" /><Rows Styles="Percent,50,Percent,50" /></TableLayoutSettings> + + + Fill + + + 0, 624 + + + 0, 0, 0, 0 + + + 1 + + + 1008, 59 + + + 45 + + + tblPanelLayer1Bottom + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer0 + + + 2 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelSpecialButtons" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tblPanelStandardButtons" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="tblPanelDebugDevices" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,396,Absolute,220" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + + Fill + + + 0, 24 + + + 3 + + + 1008, 683 + + + 50 + + + tblPanelLayer0 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="panelSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelLayer1Top" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelLayer1Bottom" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,163,Percent,100,Absolute,59" /></TableLayoutSettings> + + + tblPanelCustomerSelection + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelCustomerSelection + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelCustomerSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewCustomerSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> + + + Fill + + + 3, 3 + + + 0, 0, 0, 0 + + + 986, 421 + + + 1 + + + panelCustomerSelection + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageCustomerSelection + + + 0 + 1 + + tblPanelCustomerSearch + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCustomerSelection + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tbxCustomerSearchMask" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lblCustomerMaskText" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="btnSearchCustomer" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /></Controls><Columns Styles="Absolute,145,Absolute,150,Absolute,120,Absolute,106,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + + gridViewCustomerSelection + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCustomerSelection + + + 1 + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 986, 421 + + + 1 + + + tblPanelCustomerSelection + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelCustomerSelection + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelCustomerSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewCustomerSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> + 5 + + tbxCustomerSearchMask + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCustomerSearch + + + 0 + + + lblCustomerMaskText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCustomerSearch + + + 1 + + + btnSearchCustomer + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCustomerSearch + + + 2 + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 1 + + + 986, 31 + + + 0 + + + tblPanelCustomerSearch + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelCustomerSelection + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tbxCustomerSearchMask" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lblCustomerMaskText" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="btnSearchCustomer" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /></Controls><Columns Styles="Absolute,145,Absolute,150,Absolute,120,Absolute,106,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> + None @@ -568,39 +1498,6 @@ 2 - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 1 - - - 986, 31 - - - 0 - - - tblPanelCustomerSearch - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelCustomerSelection - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tbxCustomerSearchMask" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lblCustomerMaskText" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="btnSearchCustomer" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /></Controls><Columns Styles="Absolute,145,Absolute,150,Absolute,120,Absolute,106,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> - Fill @@ -628,126 +1525,6 @@ 1 - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 986, 421 - - - 1 - - - tblPanelCustomerSelection - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelCustomerSelection - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelCustomerSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewCustomerSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> - - - Fill - - - 3, 3 - - - 0, 0, 0, 0 - - - 986, 421 - - - 1 - - - panelCustomerSelection - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPageCustomerSelection - - - 0 - - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 4 - - - Customer Selection - - - tabPageCustomerSelection - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 0 - - - 1 - - - Fill - - - 0, 31 - - - 0, 0, 0, 0 - - - 986, 390 - - - 2 - - - gridViewCordonelSelection - - - System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelCordonelSelection - - - 0 - - - 7 - Left, Right @@ -937,129 +1714,114 @@ 5 - - Fill + + tblFwPackageSelection - - 0, 0 - - - 0, 0, 0, 0 - - - 1 - - - 986, 31 - - - 1 - - - tblPanelCordonelSearch - - + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tblPanelCordonelSelection + + panelFwPackageSelection - - 1 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tbxCordonelProductionOrdersSearch" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="cbxCordonelProductionOrdersSearch" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="lblInfoSelectCustomer" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="btnCordonelSearch" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /><Control Name="lblCordonelProductionNumberSearch" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelCustomerSerialNumberSearch" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /></Controls><Columns Styles="Absolute,122,Absolute,141,Absolute,108,Absolute,134,Absolute,104,Absolute,108,Percent,100" /><Rows Styles="Percent,100" /></TableLayoutSettings> - - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 986, 421 - - + 0 - - tblPanelCordonelSelection + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="gridViewFwPackageSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelFwPackageSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,62,Percent,100" /></TableLayoutSettings> - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelCordonelSelection - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="gridViewCordonelSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelCordonelSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> - - + Fill - + 3, 3 - + 0, 0, 0, 0 - + 986, 421 - + 1 - - panelCordonelSelection + + panelFwPackageSelection - + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - tabPageCordonelSelection + + tabPageFwPackageSelection - + 0 - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 0 - - - Cordonel Selection - - - tabPageCordonelSelection - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 1 - + + True + 1 + + gridViewFwPackageSelection + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblFwPackageSelection + + + 0 + + + tblPanelFwPackageSearch + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblFwPackageSelection + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblFwPackageSearchRegion" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwPackageSearchFrequency" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="cbxFwPackageRegionMask" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="cbxFwPackageRadioMask" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="btnFwPackageSearch" Row="0" RowSpan="1" Column="8" ColumnSpan="1" /><Control Name="lblFwPackageSearchSize" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="cbxFwPackageSizeMask" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblFwPackageSearchMetrology" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="cbxFwPackageMetrologyMask" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblFwPackageSearchCore" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="cbxFwPackageCoreMak" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /></Controls><Columns Styles="Absolute,60,Absolute,80,Absolute,80,Absolute,80,Absolute,80,Absolute,80,Absolute,60,Absolute,80,Absolute,106,Absolute,60,Percent,100" /><Rows Styles="Absolute,31,Absolute,31" /></TableLayoutSettings> + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 986, 421 + + + 0 + + + tblFwPackageSelection + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panelFwPackageSelection + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="gridViewFwPackageSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelFwPackageSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,62,Percent,100" /></TableLayoutSettings> + Fill @@ -1093,6 +1855,171 @@ 11 + + lblFwPackageSearchRegion + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 0 + + + lblFwPackageSearchFrequency + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 1 + + + cbxFwPackageRegionMask + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 2 + + + cbxFwPackageRadioMask + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 3 + + + btnFwPackageSearch + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 4 + + + lblFwPackageSearchSize + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 5 + + + cbxFwPackageSizeMask + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 6 + + + lblFwPackageSearchMetrology + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 7 + + + cbxFwPackageMetrologyMask + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 8 + + + lblFwPackageSearchCore + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 9 + + + cbxFwPackageCoreMak + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwPackageSearch + + + 10 + + + Fill + + + 0, 0 + + + 0, 0, 0, 0 + + + 2 + + + 986, 62 + + + 1 + + + tblPanelFwPackageSearch + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblFwPackageSelection + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblFwPackageSearchRegion" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwPackageSearchFrequency" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="cbxFwPackageRegionMask" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="cbxFwPackageRadioMask" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="btnFwPackageSearch" Row="0" RowSpan="1" Column="8" ColumnSpan="1" /><Control Name="lblFwPackageSearchSize" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="cbxFwPackageSizeMask" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblFwPackageSearchMetrology" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="cbxFwPackageMetrologyMask" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblFwPackageSearchCore" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="cbxFwPackageCoreMak" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /></Controls><Columns Styles="Absolute,60,Absolute,80,Absolute,80,Absolute,80,Absolute,80,Absolute,80,Absolute,60,Absolute,80,Absolute,106,Absolute,60,Percent,100" /><Rows Styles="Absolute,31,Absolute,31" /></TableLayoutSettings> + Right @@ -1414,126 +2341,6 @@ 10 - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 986, 62 - - - 1 - - - tblPanelFwPackageSearch - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblFwPackageSelection - - - 1 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblFwPackageSearchRegion" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwPackageSearchFrequency" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="cbxFwPackageRegionMask" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="cbxFwPackageRadioMask" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="btnFwPackageSearch" Row="0" RowSpan="1" Column="8" ColumnSpan="1" /><Control Name="lblFwPackageSearchSize" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="cbxFwPackageSizeMask" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblFwPackageSearchMetrology" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="cbxFwPackageMetrologyMask" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblFwPackageSearchCore" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="cbxFwPackageCoreMak" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /></Controls><Columns Styles="Absolute,60,Absolute,80,Absolute,80,Absolute,80,Absolute,80,Absolute,80,Absolute,60,Absolute,80,Absolute,106,Absolute,60,Percent,100" /><Rows Styles="Absolute,31,Absolute,31" /></TableLayoutSettings> - - - Fill - - - 0, 0 - - - 0, 0, 0, 0 - - - 2 - - - 986, 421 - - - 0 - - - tblFwPackageSelection - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelFwPackageSelection - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="gridViewFwPackageSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelFwPackageSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,62,Percent,100" /></TableLayoutSettings> - - - Fill - - - 3, 3 - - - 0, 0, 0, 0 - - - 986, 421 - - - 1 - - - panelFwPackageSelection - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPageFwPackageSelection - - - 0 - - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 5 - - - FW-Package Selection - - - tabPageFwPackageSelection - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 2 - Fill @@ -1561,33 +2368,6 @@ 0 - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 1 - - - Update Operators - - - tabPageUpdateOperator - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 3 - Fill @@ -1612,33 +2392,6 @@ 0 - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 6 - - - Pre Build Summary - - - tabPagePreBuildSummary - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 4 - Fill @@ -1666,36 +2419,69 @@ 0 - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 3 - - - Safe Build Report - - - tabPageSafeBuildReport - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 5 - 1 + + tblPanelFwUpdateSafeSearch + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblFwUpdateSafeSelection + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls /><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,50" /></TableLayoutSettings> + + + gridViewFwUpdateSafeSelection + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblFwUpdateSafeSelection + + + 1 + + + Fill + + + 3, 3 + + + 0, 0, 0, 0 + + + 2 + + + 986, 421 + + + 0 + + + tblFwUpdateSafeSelection + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageFwUpdateSafes + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelFwUpdateSafeSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewFwUpdateSafeSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> + 2 @@ -1759,69 +2545,69 @@ 1 - - Fill - - - 3, 3 - - - 0, 0, 0, 0 - - - 2 - - - 986, 421 - - - 0 - - - tblFwUpdateSafeSelection - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPageFwUpdateSafes - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelFwUpdateSafeSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewFwUpdateSafeSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> - - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 8 - - - FW-Update Safes - - - tabPageFwUpdateSafes - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 6 - 1 + + tblPanelFwUpdateReportsSearch + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwUpdateReports + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls /><Columns Styles="Percent,50,Percent,50" /><Rows Styles="Percent,50" /></TableLayoutSettings> + + + gridViewFwUpdateReportSelection + + + System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelFwUpdateReports + + + 1 + + + Fill + + + 3, 3 + + + 0, 0, 0, 0 + + + 2 + + + 986, 421 + + + 0 + + + tblPanelFwUpdateReports + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tabPageReports + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelFwUpdateReportsSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewFwUpdateReportSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> + 2 @@ -1885,129 +2671,264 @@ 1 - - Fill - - - 3, 3 - - - 0, 0, 0, 0 - - - 2 - - - 986, 421 - - - 0 - - - tblPanelFwUpdateReports - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabPageReports - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelFwUpdateReportsSearch" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="gridViewFwUpdateReportSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,31,Percent,100" /></TableLayoutSettings> - - - 4, 22 - - - 3, 3, 3, 3 - - - 994, 429 - - - 7 - - - FW-Update Reports - - - tabPageReports - - - System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tabControlSelection - - - 7 - - - Fill - - - 0, 0 - - - 0, 31 - - - 1002, 455 - - - 50 - - - tabControlSelection - - - System.Windows.Forms.TabControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panelSelection - - - 0 - - - Fill - - - 3, 166 - - - 1002, 455 - - - 43 - - - panelSelection - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelLayer0 - - - 0 - - - GrowAndShrink - - - 3 - True + + True + 6 + + lblCustomerNameText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 0 + + + lblCustomerNumber + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 1 + + + lblCustomerNumberText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 2 + + + lblFwUpdateDutyDateText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 3 + + + lblFwUpdateDutyDate + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 4 + + + lblUpdateOperatorText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 5 + + + lblOrderNumberText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 6 + + + lblUpdateOperator + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 7 + + + lblCordonelsCustomerText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 8 + + + tbxCustomerName + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 9 + + + tbxCordonelsCustomerCount + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 10 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 11 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="label1" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tbxOrderNumber" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tbxOrderPosition" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,15,Absolute,35" /><Rows Styles="Percent,100" /></TableLayoutSettings> + + + lblCordonelSelectedCountText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 12 + + + lblCordonelsSelectedCount + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 13 + + + lblSelectedFwPackagesText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 14 + + + lblSelectedFwPackages + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 15 + + + lblCordonelApprovedCountText + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 16 + + + lblCordonelsApprovedCount + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 17 + + + Left + + + 153, 3 + + + 6 + + + 508, 151 + + + 48 + + + tblPanelSafeInfo + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Top + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblCustomerNameText" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblCustomerNumber" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCustomerNumberText" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwUpdateDutyDateText" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwUpdateDutyDate" Row="5" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblUpdateOperatorText" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblOrderNumberText" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblUpdateOperator" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelsCustomerText" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="tbxCustomerName" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tbxCordonelsCustomerCount" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="tableLayoutPanel1" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelSelectedCountText" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblCordonelsSelectedCount" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="lblSelectedFwPackagesText" Row="2" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblSelectedFwPackages" Row="2" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="lblCordonelApprovedCountText" Row="3" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblCordonelsApprovedCount" Row="3" RowSpan="1" Column="4" ColumnSpan="1" /></Controls><Columns Styles="Absolute,129,Absolute,131,Absolute,40,Absolute,150,Absolute,50,Percent,100" /><Rows Styles="Absolute,25,Absolute,25,Percent,100,Absolute,25,Absolute,25,Absolute,25" /></TableLayoutSettings> + Top, Bottom, Left, Right @@ -2404,6 +3325,75 @@ 3 + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 0 + + + tbxOrderNumber + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 1 + + + tbxOrderPosition + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tableLayoutPanel1 + + + 2 + + + Fill + + + 129, 76 + + + 0, 0, 0, 0 + + + 1 + + + 131, 25 + + + 20 + + + tableLayoutPanel1 + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSafeInfo + + + 11 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="label1" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tbxOrderNumber" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tbxOrderPosition" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,15,Absolute,35" /><Rows Styles="Percent,100" /></TableLayoutSettings> + Left @@ -2488,39 +3478,6 @@ 2 - - Fill - - - 129, 76 - - - 0, 0, 0, 0 - - - 1 - - - 131, 25 - - - 20 - - - tableLayoutPanel1 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelSafeInfo - - - 11 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="label1" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tbxOrderNumber" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tbxOrderPosition" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,15,Absolute,35" /><Rows Styles="Percent,100" /></TableLayoutSettings> - Left @@ -2740,36 +3697,6 @@ 17 - - Left - - - 153, 3 - - - 6 - - - 508, 151 - - - 48 - - - tblPanelSafeInfo - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelLayer1Top - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="lblCustomerNameText" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblCustomerNumber" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCustomerNumberText" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwUpdateDutyDateText" Row="5" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblFwUpdateDutyDate" Row="5" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblUpdateOperatorText" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblOrderNumberText" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="lblUpdateOperator" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelsCustomerText" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="tbxCustomerName" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tbxCordonelsCustomerCount" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="tableLayoutPanel1" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="lblCordonelSelectedCountText" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblCordonelsSelectedCount" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="lblSelectedFwPackagesText" Row="2" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblSelectedFwPackages" Row="2" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="lblCordonelApprovedCountText" Row="3" RowSpan="1" Column="3" ColumnSpan="1" /><Control Name="lblCordonelsApprovedCount" Row="3" RowSpan="1" Column="4" ColumnSpan="1" /></Controls><Columns Styles="Absolute,129,Absolute,131,Absolute,40,Absolute,150,Absolute,50,Percent,100" /><Rows Styles="Absolute,25,Absolute,25,Percent,100,Absolute,25,Absolute,25,Absolute,25" /></TableLayoutSettings> - @@ -2922,45 +3849,66 @@ 1 - - Fill - - - 3, 3 - - - 1 - - - 1002, 157 - - - 44 - - - tblPanelLayer1Top - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelLayer0 - - - 1 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelSafeInfo" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="pictureBox1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="panelInfo" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="Absolute,150,Percent,100,Absolute,120" /><Rows Styles="Percent,100" /></TableLayoutSettings> - - - GrowAndShrink - - - 3 - 5 + + btnLicenseFwUpdateBuilder + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSpecialButtons + + + 0 + + + btnLicenseFwUpdateSw + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelSpecialButtons + + + 1 + + + Right + + + 398, 0 + + + 0, 0, 0, 0 + + + 2 + + + 390, 59 + + + 0 + + + tblPanelSpecialButtons + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Bottom + + + 0 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="btnLicenseFwUpdateBuilder" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="btnLicenseFwUpdateSw" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,41,Absolute,38,Absolute,34,Absolute,105" /><Rows Styles="Absolute,30,Percent,100" /></TableLayoutSettings> + None @@ -3030,42 +3978,66 @@ 1 - - Right - - - 398, 0 - - - 0, 0, 0, 0 - - - 2 - - - 390, 59 - - - 0 - - - tblPanelSpecialButtons - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelLayer1Bottom - - - 0 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="btnLicenseFwUpdateBuilder" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /><Control Name="btnLicenseFwUpdateSw" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,41,Absolute,38,Absolute,34,Absolute,105" /><Rows Styles="Absolute,30,Percent,100" /></TableLayoutSettings> - 2 + + btnBuildFwUpdateSafe + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelStandardButtons + + + 0 + + + btnUploadSafeToDb + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelStandardButtons + + + 1 + + + Fill + + + 788, 0 + + + 0, 0, 0, 0 + + + 2 + + + 220, 59 + + + 1 + + + tblPanelStandardButtons + + + System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelLayer1Bottom + + + 1 + + + <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="btnBuildFwUpdateSafe" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="btnUploadSafeToDb" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Absolute,106,Absolute,114" /><Rows Styles="Percent,50,Percent,50" /></TableLayoutSettings> + None @@ -3129,66 +4101,9 @@ 1 - - Fill - - - 788, 0 - - - 0, 0, 0, 0 - - - 2 - - - 220, 59 - - - 1 - - - tblPanelStandardButtons - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelLayer1Bottom - - - 1 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="btnBuildFwUpdateSafe" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="btnUploadSafeToDb" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /></Controls><Columns Styles="Absolute,106,Absolute,114" /><Rows Styles="Percent,50,Percent,50" /></TableLayoutSettings> - 2 - - Left - - - True - - - 9, 6 - - - 9, 3, 3, 3 - - - 130, 17 - - - 0 - - - Add Debug Cordonels - - - False - cbxAddDebugCordonels @@ -3231,68 +4146,41 @@ <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="cbxAddDebugCordonels" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,10" /><Rows Styles="Percent,50,Percent,50" /></TableLayoutSettings> - - Fill + + Left - - 0, 624 + + True - - 0, 0, 0, 0 + + 9, 6 - - 1 + + 9, 3, 3, 3 - - 1008, 59 + + 130, 17 - - 45 - - - tblPanelLayer1Bottom - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tblPanelLayer0 - - - 2 - - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="tblPanelSpecialButtons" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="tblPanelStandardButtons" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /><Control Name="tblPanelDebugDevices" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,396,Absolute,220" /><Rows Styles="Percent,100" /></TableLayoutSettings> - - - Fill - - - 0, 24 - - - 3 - - - 1008, 683 - - - 50 - - - tblPanelLayer0 - - - System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - + 0 - - <?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="panelSelection" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelLayer1Top" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="tblPanelLayer1Bottom" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100" /><Rows Styles="Absolute,163,Percent,100,Absolute,59" /></TableLayoutSettings> + + Add Debug Cordonels + + + False + + + cbxAddDebugCordonels + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tblPanelDebugDevices + + + 0 243, 17 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.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.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 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