Uni.FlowMetersInParallel enabled, CB.Uni.OutputMessage supports parallel flow meters, etc, ver. 3.1.1794
This commit is contained in:
@@ -8,7 +8,7 @@ namespace TBF.Rig.Uni.Diverter
|
||||
{
|
||||
public class Factory : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return "Diverter"; } }
|
||||
public string ClassName { get { return GetType().Namespace.Substring(12); } }
|
||||
public override string ToString() { return ClassName; }
|
||||
|
||||
public IComponent DummyComponent() { return new Diverter(); }
|
||||
|
||||
@@ -8,14 +8,14 @@ namespace TBF.Rig.Uni.FlowMeter
|
||||
{
|
||||
public class Factory : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return "FlowMeter"; } }
|
||||
public string ClassName { get { return GetType().Namespace.Substring(12); } }
|
||||
public override string ToString() { return ClassName; }
|
||||
|
||||
public IComponent DummyComponent() { return new FlowMeter(); }
|
||||
|
||||
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new FlowMeter(cfg, components); }
|
||||
|
||||
public IComponentCfg DefaultConfig() { return new FlowMeterCfg(this); }
|
||||
public IComponentCfg DefaultConfig() { return new FlowMeterCfg(this, "I"); }
|
||||
|
||||
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||
{
|
||||
|
||||
@@ -271,14 +271,14 @@ namespace TBF.Rig.Uni.FlowMeter
|
||||
GNodes = new List<GNode>();
|
||||
}
|
||||
|
||||
public FlowMeterCfg(IComponentFactory factory)
|
||||
public FlowMeterCfg(IComponentFactory factory, string name)
|
||||
: this()
|
||||
{
|
||||
Shape = Shape.FlowM;
|
||||
Sz = Sz.M;
|
||||
|
||||
Factory = factory;
|
||||
Name = "I";
|
||||
Name = name;
|
||||
ParentName = "UniCB";
|
||||
InitializeAll();
|
||||
}
|
||||
|
||||
@@ -8,14 +8,14 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
|
||||
{
|
||||
public class Factory : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return "FlowMetersInParallel"; } }
|
||||
public string ClassName { get { return GetType().Namespace.Substring(12); } }
|
||||
public override string ToString() { return ClassName; }
|
||||
|
||||
public IComponent DummyComponent() { return new FlowMeter(); }
|
||||
|
||||
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new FlowMeter(cfg, components); }
|
||||
|
||||
public IComponentCfg DefaultConfig() { return new FlowMeterCfg(this); }
|
||||
public IComponentCfg DefaultConfig() { return new FlowMeterCfg(this, "I11+I12"); }
|
||||
|
||||
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||
{
|
||||
|
||||
@@ -121,10 +121,27 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
|
||||
nominalFlow = 0;
|
||||
flowMetersCount = 0;
|
||||
flowMetersBitfield = 0;
|
||||
if (flowMeter1 != null) { nominalFlow += flowMeter1.NominalFlow; flowMetersBitfield |= (8 << flowMeter1.Idx1); flowMetersCount++; }
|
||||
if (flowMeter2 != null) { nominalFlow += flowMeter2.NominalFlow; flowMetersBitfield |= (8 << flowMeter2.Idx1); flowMetersCount++; }
|
||||
if (flowMeter3 != null) { nominalFlow += flowMeter3.NominalFlow; flowMetersBitfield |= (8 << flowMeter3.Idx1); flowMetersCount++; }
|
||||
|
||||
if (flowMeter1 != null)
|
||||
{
|
||||
nominalFlow += flowMeter1.NominalFlow;
|
||||
flowMetersBitfield |= (4 << flowMeter1.Idx1);
|
||||
flowMetersCount++;
|
||||
}
|
||||
if (flowMeter2 != null)
|
||||
{
|
||||
nominalFlow += flowMeter2.NominalFlow;
|
||||
flowMetersBitfield |= (4 << flowMeter2.Idx1);
|
||||
flowMetersCount++;
|
||||
}
|
||||
if (flowMeter3 != null)
|
||||
{
|
||||
nominalFlow += flowMeter3.NominalFlow;
|
||||
flowMetersBitfield |= (4 << flowMeter3.Idx1);
|
||||
flowMetersCount++;
|
||||
}
|
||||
if (flowMetersCount == 0) throw new Exception("Missing flowmeters");
|
||||
|
||||
ltrPerPulse = nominalFlow / (flowMetersCount * 7200.0); /// Nominal freq. is flowMetersCount * 2000 Hz (2000, 4000 or 6000 Hz)
|
||||
|
||||
refFreq = new double[4];
|
||||
|
||||
@@ -61,13 +61,13 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
|
||||
GNodes = new List<GNode>();
|
||||
}
|
||||
|
||||
public FlowMeterCfg(IComponentFactory factory)
|
||||
public FlowMeterCfg(IComponentFactory factory, string name)
|
||||
: this()
|
||||
{
|
||||
Shape = Shape.FlowM;
|
||||
Sz = Sz.M;
|
||||
|
||||
Name = "I11+I12";
|
||||
Name = name;
|
||||
Factory = factory;
|
||||
ParentName = "UniCB";
|
||||
InitializeAll();
|
||||
@@ -122,9 +122,9 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 0: return Flowmeter1;
|
||||
case 1: return Flowmeter2;
|
||||
case 2: return Flowmeter3;
|
||||
case 0: return string.IsNullOrEmpty(Flowmeter1) ? "---" : Flowmeter1;
|
||||
case 1: return string.IsNullOrEmpty(Flowmeter2) ? "---" : Flowmeter2;
|
||||
case 2: return string.IsNullOrEmpty(Flowmeter3) ? "---" : Flowmeter3;
|
||||
case 3: return MsrdFormat;
|
||||
case 4: return MsrdUnit.ToDescription();
|
||||
case 5: return MsrdValLimLo.ToString();
|
||||
@@ -156,6 +156,7 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
|
||||
public bool ValidateParam(int i, string str, out string message)
|
||||
{
|
||||
message = string.Empty;
|
||||
double ddummy;
|
||||
|
||||
switch (i)
|
||||
{
|
||||
@@ -165,6 +166,12 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
|
||||
case 4:
|
||||
if (ParamValues(i).Contains(str)) return true;
|
||||
break;
|
||||
case 3:
|
||||
return true;
|
||||
case 5:
|
||||
case 6:
|
||||
if (TBF.Utils.TryParseUDouble(str, out ddummy)) return true;
|
||||
break;
|
||||
default:
|
||||
message = "Invalid index";
|
||||
return false;
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace TBF.Rig.Uni.RegValve
|
||||
{
|
||||
public class Factory : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return "RegValve"; } }
|
||||
public string ClassName { get { return GetType().Namespace.Substring(12); } }
|
||||
public override string ToString() { return ClassName; }
|
||||
|
||||
public IComponent DummyComponent() { return new RegValve(); }
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace TBF.Rig.Uni.RegValveAnalog
|
||||
{
|
||||
public class Factory : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return "RegValveAnalog"; } }
|
||||
public string ClassName { get { return GetType().Namespace.Substring(12); } }
|
||||
public override string ToString() { return ClassName; }
|
||||
|
||||
public IComponent DummyComponent() { return new RegValve(); }
|
||||
|
||||
@@ -8,7 +8,7 @@ namespace TBF.Rig.Uni.RegValveTandem
|
||||
{
|
||||
public class Factory : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return "RegValveTandem"; } }
|
||||
public string ClassName { get { return GetType().Namespace.Substring(12); } }
|
||||
public override string ToString() { return ClassName; }
|
||||
|
||||
public IComponent DummyComponent() { return new RegValveTandem(); }
|
||||
|
||||
Reference in New Issue
Block a user