Delay added to IValve and Pumps, no delay functionality yet
This commit is contained in:
@@ -23,10 +23,12 @@ namespace TBF.BenchControl.Elde.Pump
|
||||
|
||||
public string Name { get { return pumpCfg.Name; } }
|
||||
|
||||
public int Delay { get { return pumpCfg.Delay; } }
|
||||
|
||||
public ValveCategory Category { get { return ValveCategory.Feeding; } } /// Pump category is Feeding
|
||||
|
||||
public GenericDevices.IValve CoupledTo { get { return null; } }
|
||||
public bool Invert { get { return false; } }
|
||||
public bool InvertCouple { get { return false; } }
|
||||
public int LagOpening { get { return 0; } }
|
||||
public int LagClosing { get { return 0; } }
|
||||
|
||||
|
||||
@@ -7,27 +7,30 @@ namespace TBF.BenchControl.Elde.Pump
|
||||
public class PumpCfg : ComponentCfgBase, IChildComponentCfg
|
||||
{
|
||||
public int BitPosition;
|
||||
public int Delay;
|
||||
|
||||
/// Parameterless constructor
|
||||
public PumpCfg()
|
||||
{
|
||||
Delay = 1;
|
||||
}
|
||||
|
||||
/// Constructor
|
||||
public PumpCfg(IComponentFactory factory, string name, string parentName, int bitPosition)
|
||||
public PumpCfg(IComponentFactory factory, string name, string parentName, int bitPosition, int delay)
|
||||
: base(factory, name, parentName)
|
||||
{
|
||||
this.BitPosition = bitPosition;
|
||||
this.Delay = delay;
|
||||
}
|
||||
|
||||
public IComponentCfg Clone()
|
||||
{
|
||||
return new PumpCfg(Factory, Name, ParentName, BitPosition);
|
||||
return new PumpCfg(Factory, Name, ParentName, BitPosition, Delay);
|
||||
}
|
||||
|
||||
public string ToString(int i)
|
||||
{
|
||||
return string.Format("bit={0}", BitPosition);
|
||||
return string.Format("bit={0}, delay={1}s", BitPosition, Delay);
|
||||
}
|
||||
|
||||
public TBF.Entities.Component CreateDbEntity()
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
this.nameLabel = new System.Windows.Forms.Label();
|
||||
this.classNameLabel = new System.Windows.Forms.Label();
|
||||
this.parentNameComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.delayTextBox = new System.Windows.Forms.TextBox();
|
||||
this.delayLabel = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// bitPositionTextBox
|
||||
@@ -98,10 +100,29 @@
|
||||
this.parentNameComboBox.Size = new System.Drawing.Size(130, 21);
|
||||
this.parentNameComboBox.TabIndex = 4;
|
||||
//
|
||||
// delayTextBox
|
||||
//
|
||||
this.delayTextBox.Enabled = false;
|
||||
this.delayTextBox.Location = new System.Drawing.Point(122, 124);
|
||||
this.delayTextBox.Name = "delayTextBox";
|
||||
this.delayTextBox.Size = new System.Drawing.Size(46, 20);
|
||||
this.delayTextBox.TabIndex = 8;
|
||||
//
|
||||
// delayLabel
|
||||
//
|
||||
this.delayLabel.AutoSize = true;
|
||||
this.delayLabel.Location = new System.Drawing.Point(36, 127);
|
||||
this.delayLabel.Name = "delayLabel";
|
||||
this.delayLabel.Size = new System.Drawing.Size(48, 13);
|
||||
this.delayLabel.TabIndex = 7;
|
||||
this.delayLabel.Text = "Delay [s]";
|
||||
//
|
||||
// PumpCfgCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.delayTextBox);
|
||||
this.Controls.Add(this.delayLabel);
|
||||
this.Controls.Add(this.parentNameComboBox);
|
||||
this.Controls.Add(this.bitPositionTextBox);
|
||||
this.Controls.Add(this.bitPositionLabel);
|
||||
@@ -126,5 +147,7 @@
|
||||
private System.Windows.Forms.Label nameLabel;
|
||||
private System.Windows.Forms.Label classNameLabel;
|
||||
private System.Windows.Forms.ComboBox parentNameComboBox;
|
||||
private System.Windows.Forms.TextBox delayTextBox;
|
||||
private System.Windows.Forms.Label delayLabel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ namespace TBF.BenchControl.Elde.Pump
|
||||
nameTextBox.Text = config.Name;
|
||||
parentNameComboBox.Text = string.IsNullOrEmpty(config.ParentName) ? "---" : config.ParentName;
|
||||
bitPositionTextBox.Text = config.BitPosition.ToString();
|
||||
delayTextBox.Text = config.Delay.ToString();
|
||||
}
|
||||
|
||||
public void Unlock()
|
||||
@@ -60,6 +61,7 @@ namespace TBF.BenchControl.Elde.Pump
|
||||
nameTextBox.Enabled = true;
|
||||
parentNameComboBox.Enabled = true;
|
||||
bitPositionTextBox.Enabled = true;
|
||||
delayTextBox.Enabled = true;
|
||||
}
|
||||
|
||||
public void UpdateCfg()
|
||||
@@ -69,7 +71,8 @@ namespace TBF.BenchControl.Elde.Pump
|
||||
config.Name = nameTextBox.Text;
|
||||
config.ParentName = parentNameComboBox.Text.Equals("---") ? string.Empty : parentNameComboBox.Text;
|
||||
config.BitPosition = int.Parse(bitPositionTextBox.Text);
|
||||
}
|
||||
config.Delay = int.Parse(delayTextBox.Text);
|
||||
}
|
||||
|
||||
public CfgVerifyFlags VerifyCfg(ref string message)
|
||||
{
|
||||
@@ -86,7 +89,12 @@ namespace TBF.BenchControl.Elde.Pump
|
||||
flags |= CfgVerifyFlags.Error;
|
||||
message += Environment.NewLine + "'Bit Position' should be between 0 and 63";
|
||||
}
|
||||
return flags;
|
||||
if (!int.TryParse(delayTextBox.Text, out dummy) || dummy < 0 || dummy >= 300)
|
||||
{
|
||||
flags |= CfgVerifyFlags.Error;
|
||||
message += Environment.NewLine + "'Delay' should be between 0 and 300s (5min)";
|
||||
}
|
||||
return flags;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace TBF.BenchControl.Elde.Pump
|
||||
|
||||
public IComponentCfg DefaultConfig(IList<Entities.Component> components)
|
||||
{
|
||||
return new PumpCfg(this, "Pump", "CB", 0);
|
||||
return new PumpCfg(this, "Pump", "CB", 0, 1);
|
||||
}
|
||||
|
||||
public IComponentCfgCtrl CreateCfgCtrl()
|
||||
|
||||
@@ -23,10 +23,12 @@ namespace TBF.BenchControl.Elde.PumpWithFM
|
||||
|
||||
public string Name { get { return pumpCfg.Name; } }
|
||||
|
||||
public int Delay { get { return pumpCfg.Delay; } }
|
||||
|
||||
public ValveCategory Category { get { return ValveCategory.Feeding; } } /// Pump category is Feeding
|
||||
|
||||
public GenericDevices.IValve CoupledTo { get { return null; } }
|
||||
public bool Invert { get { return false; } }
|
||||
public bool InvertCouple { get { return false; } }
|
||||
public int LagOpening { get { return 0; } }
|
||||
public int LagClosing { get { return 0; } }
|
||||
|
||||
|
||||
@@ -8,27 +8,30 @@ namespace TBF.BenchControl.Elde.PumpWithFM
|
||||
{
|
||||
public int BitPosition;
|
||||
public int FMIndex;
|
||||
public int Delay;
|
||||
|
||||
/// Parameterless constructor
|
||||
public PumpCfg()
|
||||
{
|
||||
Delay = 1;
|
||||
}
|
||||
/// Constructor
|
||||
public PumpCfg(IComponentFactory factory, string name, string parentName, int bitPosition, int fmIndex)
|
||||
public PumpCfg(IComponentFactory factory, string name, string parentName, int bitPosition, int fmIndex, int delay)
|
||||
: base(factory, name, parentName)
|
||||
{
|
||||
this.BitPosition = bitPosition;
|
||||
this.FMIndex = fmIndex;
|
||||
this.Delay = delay;
|
||||
}
|
||||
|
||||
public IComponentCfg Clone()
|
||||
{
|
||||
return new PumpCfg(Factory, Name, ParentName, BitPosition, FMIndex);
|
||||
return new PumpCfg(Factory, Name, ParentName, BitPosition, FMIndex, Delay);
|
||||
}
|
||||
|
||||
public string ToString(int i)
|
||||
{
|
||||
return string.Format("bit={0}, fmIdx={1}", BitPosition, FMIndex);
|
||||
return string.Format("bit={0}, fmIdx={1}, delay={2}s", BitPosition, FMIndex, Delay);
|
||||
}
|
||||
|
||||
public TBF.Entities.Component CreateDbEntity()
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
this.parentNameComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.fmIndexTextBox = new System.Windows.Forms.TextBox();
|
||||
this.fmIndexLabel = new System.Windows.Forms.Label();
|
||||
this.delayTextBox = new System.Windows.Forms.TextBox();
|
||||
this.delayLabel = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// bitPositionTextBox
|
||||
@@ -117,10 +119,29 @@
|
||||
this.fmIndexLabel.TabIndex = 7;
|
||||
this.fmIndexLabel.Text = "FM Index";
|
||||
//
|
||||
// delayTextBox
|
||||
//
|
||||
this.delayTextBox.Enabled = false;
|
||||
this.delayTextBox.Location = new System.Drawing.Point(122, 149);
|
||||
this.delayTextBox.Name = "delayTextBox";
|
||||
this.delayTextBox.Size = new System.Drawing.Size(46, 20);
|
||||
this.delayTextBox.TabIndex = 10;
|
||||
//
|
||||
// delayLabel
|
||||
//
|
||||
this.delayLabel.AutoSize = true;
|
||||
this.delayLabel.Location = new System.Drawing.Point(36, 152);
|
||||
this.delayLabel.Name = "delayLabel";
|
||||
this.delayLabel.Size = new System.Drawing.Size(48, 13);
|
||||
this.delayLabel.TabIndex = 9;
|
||||
this.delayLabel.Text = "Delay [s]";
|
||||
//
|
||||
// PumpCfgCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.delayTextBox);
|
||||
this.Controls.Add(this.delayLabel);
|
||||
this.Controls.Add(this.fmIndexTextBox);
|
||||
this.Controls.Add(this.fmIndexLabel);
|
||||
this.Controls.Add(this.parentNameComboBox);
|
||||
@@ -149,5 +170,7 @@
|
||||
private System.Windows.Forms.ComboBox parentNameComboBox;
|
||||
private System.Windows.Forms.TextBox fmIndexTextBox;
|
||||
private System.Windows.Forms.Label fmIndexLabel;
|
||||
private System.Windows.Forms.TextBox delayTextBox;
|
||||
private System.Windows.Forms.Label delayLabel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ namespace TBF.BenchControl.Elde.PumpWithFM
|
||||
parentNameComboBox.Text = string.IsNullOrEmpty(config.ParentName) ? "---" : config.ParentName;
|
||||
bitPositionTextBox.Text = config.BitPosition.ToString();
|
||||
fmIndexTextBox.Text = config.FMIndex.ToString();
|
||||
delayTextBox.Text = config.Delay.ToString();
|
||||
}
|
||||
|
||||
public void Unlock()
|
||||
@@ -62,6 +63,7 @@ namespace TBF.BenchControl.Elde.PumpWithFM
|
||||
parentNameComboBox.Enabled = true;
|
||||
bitPositionTextBox.Enabled = true;
|
||||
fmIndexTextBox.Enabled = true;
|
||||
delayTextBox.Enabled = true;
|
||||
}
|
||||
|
||||
public void UpdateCfg()
|
||||
@@ -72,6 +74,7 @@ namespace TBF.BenchControl.Elde.PumpWithFM
|
||||
config.ParentName = parentNameComboBox.Text.Equals("---") ? string.Empty : parentNameComboBox.Text;
|
||||
config.BitPosition = int.Parse(bitPositionTextBox.Text);
|
||||
config.FMIndex = int.Parse(fmIndexTextBox.Text);
|
||||
config.Delay = int.Parse(delayTextBox.Text);
|
||||
}
|
||||
|
||||
public CfgVerifyFlags VerifyCfg(ref string message)
|
||||
@@ -94,6 +97,11 @@ namespace TBF.BenchControl.Elde.PumpWithFM
|
||||
flags |= CfgVerifyFlags.Error;
|
||||
message += Environment.NewLine + "'FM Index' should be between 0 and FMPumpsCount - 1";
|
||||
}
|
||||
if (!int.TryParse(delayTextBox.Text, out dummy) || dummy < 0 || dummy >= 300)
|
||||
{
|
||||
flags |= CfgVerifyFlags.Error;
|
||||
message += Environment.NewLine + "'Delay' should be between 0 and 300s (5min)";
|
||||
}
|
||||
return flags;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace TBF.BenchControl.Elde.PumpWithFM
|
||||
|
||||
public IComponentCfg DefaultConfig(IList<Entities.Component> components)
|
||||
{
|
||||
return new PumpCfg(this, "Pump", "CB", 0, 0);
|
||||
return new PumpCfg(this, "Pump", "CB", 0, 0, 1);
|
||||
}
|
||||
|
||||
public IComponentCfgCtrl CreateCfgCtrl()
|
||||
|
||||
@@ -14,11 +14,12 @@ namespace TBF.BenchControl.Elde.Valve
|
||||
|
||||
class SwitchPoint
|
||||
{
|
||||
public int TimeSec;
|
||||
public IList<IValve> VOpen;
|
||||
public IList<IValve> VClose;
|
||||
public ulong MasksOpen;
|
||||
public ulong MasksClose;
|
||||
public int TimeSec; /// Time [s]
|
||||
public IList<IValve> VOpen; /// List of valves to open in this point of time
|
||||
public IList<IValve> VClose; /// List of valves to close in this point of time
|
||||
public ulong MasksOpen; /// OR-ed bitmasks of valves to open in this point of time
|
||||
public ulong MasksClose; /// OR-ed bitmasks of valves to close in this point of time
|
||||
public int MaxDelay; /// Max. delay in [s] of all valves to be opened or closed
|
||||
}
|
||||
|
||||
IList<SwitchPoint> switchPointsRaw;
|
||||
@@ -39,8 +40,8 @@ namespace TBF.BenchControl.Elde.Valve
|
||||
|
||||
foreach (var valve in StateMachine.CoupledValves)
|
||||
{
|
||||
if ((!valve.Invert && valvesOpen.Contains(valve.CoupledTo)) ||
|
||||
(valve.Invert && valvesClose.Contains(valve.CoupledTo)))
|
||||
if ((!valve.InvertCouple && valvesOpen.Contains(valve.CoupledTo)) ||
|
||||
(valve.InvertCouple && valvesClose.Contains(valve.CoupledTo)))
|
||||
{
|
||||
/// The coupled valve 'valve' is opening
|
||||
int time = valve.LagOpening;
|
||||
@@ -55,8 +56,8 @@ namespace TBF.BenchControl.Elde.Valve
|
||||
VClose = new List<IValve>() });
|
||||
}
|
||||
}
|
||||
else if ((!valve.Invert && valvesClose.Contains(valve.CoupledTo)) ||
|
||||
(valve.Invert && valvesOpen.Contains(valve.CoupledTo)))
|
||||
else if ((!valve.InvertCouple && valvesClose.Contains(valve.CoupledTo)) ||
|
||||
(valve.InvertCouple && valvesOpen.Contains(valve.CoupledTo)))
|
||||
{
|
||||
/// The coupled valve 'valve' is closing
|
||||
int time = valve.LagClosing;
|
||||
|
||||
@@ -28,8 +28,9 @@ namespace TBF.BenchControl.Elde.Valve
|
||||
|
||||
public string Name { get { return valveCfg.Name; } }
|
||||
public ValveCategory Category { get { return valveCfg.Category; } }
|
||||
public int Delay { get { return valveCfg.OpenCloseTime; } }
|
||||
public IValve CoupledTo { get { return coupledTo; } }
|
||||
public bool Invert { get { return valveCfg.InvertCouple; } }
|
||||
public bool InvertCouple { get { return valveCfg.InvertCouple; } }
|
||||
public int LagOpening { get { return valveCfg.LagOpening; } }
|
||||
public int LagClosing { get { return valveCfg.LagClosing; } }
|
||||
|
||||
|
||||
@@ -14,6 +14,11 @@ namespace TBF.BenchControl.GenericDevices
|
||||
/// </summary>
|
||||
ValveCategory Category { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Delay of the valve in [s] (open or close time, whichever is larger)
|
||||
/// </summary>
|
||||
int Delay { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Coupled valve or null.
|
||||
/// This valve is a slave and follows the coupled valve, which is a master.
|
||||
@@ -25,7 +30,7 @@ namespace TBF.BenchControl.GenericDevices
|
||||
/// The coupled valve is inverted referred to the master valve.
|
||||
/// This property is used only in case 'CoupledTo' is non-null.
|
||||
/// </summary>
|
||||
bool Invert { get; }
|
||||
bool InvertCouple { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Delay (referred to the master valve) when opening this (coupled, slave) valve in [s]
|
||||
|
||||
Reference in New Issue
Block a user