From 80f4308ae15c373333bd6f31bea1015f1f86bda3 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Wed, 13 Apr 2022 15:29:17 +0200 Subject: [PATCH] Bug fix in TBF.Rig.Bench/Feeding/Meters/OutputPath --- TBF/Rig/BenchPath.cs | 25 +++++++++++++++---------- TBF/Rig/FeedingPath.cs | 22 +++++++++++++++------- TBF/Rig/HeatMetersPath.cs | 2 +- TBF/Rig/MetersPath.cs | 4 ++-- TBF/Rig/OutputPath.cs | 32 ++++++++++++++++++++------------ 5 files changed, 53 insertions(+), 32 deletions(-) diff --git a/TBF/Rig/BenchPath.cs b/TBF/Rig/BenchPath.cs index 5f8f4dfd6..6b77a2f11 100644 --- a/TBF/Rig/BenchPath.cs +++ b/TBF/Rig/BenchPath.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2021 Sensus Slovensko a.s. +/// Copyright (c) 2013-2022 Sensus Slovensko a.s. /// using System.Collections.Generic; using TBF.Rig.GenericDevices; @@ -46,19 +46,24 @@ namespace TBF.Rig StopBFValve = TbfComponents.FindComponent(entity.StopBFValve, components) as IValve; string[] vOpen = entity.ValvesOpen.Split(new char[] { ';' }); - ValvesOpen = new List(); - foreach (var vName in vOpen) ValvesOpen.Add((IValve)TbfComponents.FindComponent(vName, components)); + foreach (var vName in vOpen) + { + var cmpnt = TbfComponents.FindComponent(vName, components); + if (cmpnt is IValve) ValvesOpen.Add(cmpnt as IValve); + } - string[] vClose = entity.ValvesClose.Split(new char[] { ';' }); - ValvesClose = new List(); - foreach (var vName in vClose) ValvesClose.Add((IValve)TbfComponents.FindComponent(vName, components)); - } + string[] vClose = entity.ValvesClose.Split(new char[] { ';' }); + ValvesClose = new List(); + foreach (var vName in vClose) + { + var cmpnt = TbfComponents.FindComponent(vName, components); + if (cmpnt is IValve) ValvesClose.Add(cmpnt as IValve); + } + } public override string ToString() { - return string.Format("{0} StopBF={1}", - Name, - (StopBFValve != null) ? StopBFValve.Name : "---"); + return string.Format("{0} StopBF={1}", Name, (StopBFValve != null) ? StopBFValve.Name : "---"); } } } diff --git a/TBF/Rig/FeedingPath.cs b/TBF/Rig/FeedingPath.cs index bcaeba079..3392fc150 100644 --- a/TBF/Rig/FeedingPath.cs +++ b/TBF/Rig/FeedingPath.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2016 Sensus Metering Systems +/// Copyright (c) 2013-2022 Sensus Slovensko a.s. /// using System.Collections.Generic; using TBF.Rig.GenericDevices; @@ -37,7 +37,7 @@ namespace TBF.Rig Qfrom = entity.Qfrom; Qto = entity.Qto; Selector = entity.Selector; - Pump = (IValve)TbfComponents.FindComponent(entity.Pump, components); + Pump = TbfComponents.FindComponent(entity.Pump, components) as IValve; /// /// Feeding regulation valve components @@ -65,12 +65,20 @@ namespace TBF.Rig string[] vOpen = entity.ValvesOpen.Split(new char[] { ';' }); ValvesOpen = new List(); - foreach (var vName in vOpen) ValvesOpen.Add((IValve)TbfComponents.FindComponent(vName, components)); + foreach (var vName in vOpen) + { + var cmpnt = TbfComponents.FindComponent(vName, components); + if (cmpnt is IValve) ValvesOpen.Add(cmpnt as IValve); + } - string[] vClose = entity.ValvesClose.Split(new char[] { ';' }); - ValvesClose = new List(); - foreach (var vName in vClose) ValvesClose.Add((IValve)TbfComponents.FindComponent(vName, components)); - } + string[] vClose = entity.ValvesClose.Split(new char[] { ';' }); + ValvesClose = new List(); + foreach (var vName in vClose) + { + var cmpnt = TbfComponents.FindComponent(vName, components); + if (cmpnt is IValve) ValvesClose.Add(cmpnt as IValve); + } + } public override string ToString() { diff --git a/TBF/Rig/HeatMetersPath.cs b/TBF/Rig/HeatMetersPath.cs index 1cc2d5fc4..b59a98465 100644 --- a/TBF/Rig/HeatMetersPath.cs +++ b/TBF/Rig/HeatMetersPath.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2016 Sensus Metering Systems +/// Copyright (c) 2016 Sensus Slovensko a.s. /// using System.Collections.Generic; using TBF.Rig.GenericDevices; diff --git a/TBF/Rig/MetersPath.cs b/TBF/Rig/MetersPath.cs index 59f2b91b2..40f012018 100644 --- a/TBF/Rig/MetersPath.cs +++ b/TBF/Rig/MetersPath.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2022 Sensus Slovensko a.s. /// using System.Collections.Generic; using TBF.Rig.GenericDevices; @@ -25,7 +25,7 @@ namespace TBF.Rig { for (int i = 0; i < Sequences.ProcessData.WMsCount; i++) { - RegisterReaders[i] = (IRegReader)TbfComponents.FindComponent(entity.GetSensor(i), components); + RegisterReaders[i] = TbfComponents.FindComponent(entity.GetSensor(i), components) as IRegReader; } } } diff --git a/TBF/Rig/OutputPath.cs b/TBF/Rig/OutputPath.cs index 6a866a686..68b52c389 100644 --- a/TBF/Rig/OutputPath.cs +++ b/TBF/Rig/OutputPath.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2017 Sensus Slovensko a.s. +/// Copyright (c) 2013-2022 Sensus Slovensko a.s. /// using System.Collections.Generic; using TBF.Rig.GenericDevices; @@ -46,38 +46,46 @@ namespace TBF.Rig Qfrom = entity.Qfrom; Qto = entity.Qto; Selector = entity.Selector; - FlowMeter = (IFlowMeter)TbfComponents.FindComponent(entity.FlowMeter, components); - RegValve = (IRegValve)TbfComponents.FindComponent(entity.RegValve, components); + FlowMeter = TbfComponents.FindComponent(entity.FlowMeter, components) as IFlowMeter; + RegValve = TbfComponents.FindComponent(entity.RegValve, components) as IRegValve; PidCoef = entity.PidCoef; - Diverter = (IDiverter)TbfComponents.FindComponent(entity.Diverter, components); - TempMtrDiv = (ITempMeter)TbfComponents.FindComponent(entity.TempMtrDiv, components); - Scale = (IScaleOrTank)TbfComponents.FindComponent(entity.Scale, components); + Diverter = TbfComponents.FindComponent(entity.Diverter, components) as IDiverter; + TempMtrDiv = TbfComponents.FindComponent(entity.TempMtrDiv, components) as ITempMeter; + Scale = TbfComponents.FindComponent(entity.Scale, components) as IScaleOrTank; string[] svs = entity.StartValve != null ? entity.StartValve.Split(new char[] { '~' }) : new string[0]; int iTmp; /// - StartValve1 = (IValve)TbfComponents.FindComponent(((svs.Length > 0) ? svs[0] : string.Empty), components); + StartValve1 = TbfComponents.FindComponent(((svs.Length > 0) ? svs[0] : string.Empty), components) as IValve; InvertSV1 = (svs.Length > 1) ? svs[1].Equals("i") : false; - StartValve2 = (IValve)TbfComponents.FindComponent(((svs.Length > 2) ? svs[2] : string.Empty), components); + StartValve2 = TbfComponents.FindComponent(((svs.Length > 2) ? svs[2] : string.Empty), components) as IValve; InvertSV2 = (svs.Length > 3) ? svs[3].Equals("i") : false; LagSV2 = (svs.Length > 4 && int.TryParse(svs[4], out iTmp)) ? iTmp : 0; - StartValve3 = (IValve)TbfComponents.FindComponent(((svs.Length > 5) ? svs[5] : string.Empty), components); + StartValve3 = TbfComponents.FindComponent(((svs.Length > 5) ? svs[5] : string.Empty), components) as IValve; InvertSV3 = (svs.Length > 6) ? svs[6].Equals("i") : false; LagSV3 = (svs.Length > 7 && int.TryParse(svs[7], out iTmp)) ? iTmp : 0; string[] vOpen = entity.ValvesOpen.Split(new char[] { ';' }); ValvesOpen = new List(); - foreach (var vName in vOpen) ValvesOpen.Add((IValve)TbfComponents.FindComponent(vName, components)); + foreach (var vName in vOpen) + { + var cmpnt = TbfComponents.FindComponent(vName, components); + if (cmpnt is IValve) ValvesOpen.Add(cmpnt as IValve); + } string[] vClose = entity.ValvesClose.Split(new char[] { ';' }); ValvesClose = new List(); - foreach (var vName in vClose) ValvesClose.Add((IValve)TbfComponents.FindComponent(vName, components)); + foreach (var vName in vClose) + { + var cmpnt = TbfComponents.FindComponent(vName, components); + if (cmpnt is IValve) ValvesClose.Add(cmpnt as IValve); + } } public override string ToString() { return string.Format("{0} RV={1}, Flowm.={2}, Div.={3}, Scale={4}", - Name, + Name, (RegValve != null) ? RegValve.Name : "---", (FlowMeter != null) ? FlowMeter.Name : "---", (Diverter != null) ? Diverter.Name : "---",