From 6795793858b73d138f78a355000fee5ee5e28644 Mon Sep 17 00:00:00 2001 From: Michal Buzik Date: Tue, 21 Oct 2025 10:06:29 +0200 Subject: [PATCH] Update iPerlReaderUNI configuration handling and validation - Replace `PoseidonReader.IPerlCfgCtrl` with `RegisterReaders.iPerlReaderUNI.IPerlUniCfgCtrl` for proper configuration control. - Add null-check and error handling in `ComponentsManagerDlg` to ensure valid default configurations. - Mark `ITestParams` as `[XmlIgnore]` in `IPerl` configurations to avoid serialization issues. - Minor import adjustments and functionality improvements for TestMethod classes. --- .../CommonRR/IPerl/IiPerlTestMethodCfg.cs | 1 + TBF/Rig/RegisterReaders/iPerlReaderUNI/IPerlCfg.cs | 2 +- TBF/Rig/TestMethods/iPerlCommunication/TestMethod.cs | 1 + .../iPerlCommunication/TestMethodCfg_IPerl.cs | 3 +++ TBF/UI/Bench/Components/ComponentsManagerDlg.cs | 11 +++++++++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/TBF/Rig/RegisterReaders/CommonRR/IPerl/IiPerlTestMethodCfg.cs b/TBF/Rig/RegisterReaders/CommonRR/IPerl/IiPerlTestMethodCfg.cs index 7508cf675..b6185464b 100644 --- a/TBF/Rig/RegisterReaders/CommonRR/IPerl/IiPerlTestMethodCfg.cs +++ b/TBF/Rig/RegisterReaders/CommonRR/IPerl/IiPerlTestMethodCfg.cs @@ -34,6 +34,7 @@ namespace TBF.Rig.RegisterReaders.CommonRR.IPerl public string RelativeUrl { get; set; } /// Test parameters + /// Remember to Ignore in XmlSerializer !! [XmlIgnore] public ITestParams TestParams { get; set; } } diff --git a/TBF/Rig/RegisterReaders/iPerlReaderUNI/IPerlCfg.cs b/TBF/Rig/RegisterReaders/iPerlReaderUNI/IPerlCfg.cs index 788311fda..f72e7d6a2 100644 --- a/TBF/Rig/RegisterReaders/iPerlReaderUNI/IPerlCfg.cs +++ b/TBF/Rig/RegisterReaders/iPerlReaderUNI/IPerlCfg.cs @@ -14,7 +14,7 @@ namespace TBF.Rig.RegisterReaders.iPerlReaderUNI public override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl(IList cmpntEntities) { - return new PoseidonReader.IPerlCfgCtrl(); + return new RegisterReaders.iPerlReaderUNI.IPerlUniCfgCtrl(); } diff --git a/TBF/Rig/TestMethods/iPerlCommunication/TestMethod.cs b/TBF/Rig/TestMethods/iPerlCommunication/TestMethod.cs index bea0fd39a..723f79ad0 100644 --- a/TBF/Rig/TestMethods/iPerlCommunication/TestMethod.cs +++ b/TBF/Rig/TestMethods/iPerlCommunication/TestMethod.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using log4net; using Common; using Config.Entities; +using TBF.Rig.Generic; using TBF.Rig.GenericDevices; using TBF.Rig.Sequences; using TBF.UiBridge; diff --git a/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg_IPerl.cs b/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg_IPerl.cs index 3f8cf8604..50db92795 100644 --- a/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg_IPerl.cs +++ b/TBF/Rig/TestMethods/iPerlCommunication/TestMethodCfg_IPerl.cs @@ -86,6 +86,9 @@ namespace TBF.Rig.TestMethods.iPerlCommunication public bool UseWebService { get; set; } public string BaseUrl { get; set; } public string RelativeUrl { get; set; } + + ///Remember to Ignore in XmlSerializer !! + [XmlIgnore] public ITestParams TestParams { get; set; } } } diff --git a/TBF/UI/Bench/Components/ComponentsManagerDlg.cs b/TBF/UI/Bench/Components/ComponentsManagerDlg.cs index 534e9f0a1..9df9e5690 100644 --- a/TBF/UI/Bench/Components/ComponentsManagerDlg.cs +++ b/TBF/UI/Bench/Components/ComponentsManagerDlg.cs @@ -498,6 +498,17 @@ namespace TBF.UI.Bench.Components /// IComponentCfgCtrl cfgControl = cfg.GetControl(cmpntEntities); cfgControl.Config = cfg; + + if (cfgControl == null || cfgControl.Config == null) + { + MessageBox.Show( + string.Format("Default configuration is not available for this component type {0}", + factory.ClassName), + "BUG"); + + return; + } + cfgControl.Config.ItemNr = (cmpntEntities.Count > 0) ? (cmpntEntities[cmpntEntities.Count - 1].ItemNr + 1) : 1;