70 lines
2.0 KiB
C#
70 lines
2.0 KiB
C#
///
|
|
/// Copyright (c) 2015-2016 Sensus Metering Systems
|
|
///
|
|
using System.IO;
|
|
using System.Collections.Generic;
|
|
using System.Xml.Serialization;
|
|
using TBF.BenchControl.Generic;
|
|
|
|
namespace TBF.BenchControl.Elde.ValveEx
|
|
{
|
|
public class ValveCfg : ComponentCfgBase, IComponentCfg
|
|
{
|
|
public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ValveCfg) })[0];
|
|
protected override XmlSerializer GetSerializer() { return Serializer; }
|
|
|
|
public IComponentCfgCtrl GetControl() { return new ValveCfgCtrl(); }
|
|
|
|
///
|
|
/// Serialized parameters
|
|
///
|
|
public int BitPosition; /// Bit-position
|
|
///
|
|
public ValveExOperation LogicalOp; /// Logical operation between input valves
|
|
public bool InvertOutput; /// Invert the output of logical operation
|
|
public int InputValvesCount;
|
|
public string Input1; /// Input valve 1
|
|
public string Input2; /// Input valve 2
|
|
public string Input3; /// Input valve 3
|
|
public string Input4; /// Input valve 4
|
|
public string Input5; /// Input valve 5
|
|
|
|
/// Private parameterless constructor invoked by all other (public) constructors
|
|
ValveCfg()
|
|
{
|
|
Name = "VEx";
|
|
ParentName = string.Empty;
|
|
BitPosition = 0;
|
|
LogicalOp = ValveExOperation.And;
|
|
InvertOutput = false;
|
|
InputValvesCount = 2;
|
|
Input1 = string.Empty;
|
|
Input2 = string.Empty;
|
|
Input3 = string.Empty;
|
|
Input4 = string.Empty;
|
|
Input5 = string.Empty;
|
|
}
|
|
|
|
public ValveCfg(IComponentFactory factory)
|
|
: this()
|
|
{
|
|
this.Factory = factory;
|
|
}
|
|
|
|
public string ToString(int i)
|
|
{
|
|
return string.Format("Name={0}, Bit={1}, LogOp.={2}, Inv.Output={3}, #inputs={4}, I1={5}, I2={6}, I3={7}, I4={8}s, I5={9}",
|
|
Name,
|
|
BitPosition,
|
|
(LogicalOp == ValveExOperation.And) ? "AND" : "OR",
|
|
InvertOutput ? "yes" : "no",
|
|
InputValvesCount,
|
|
Input1,
|
|
Input2,
|
|
Input3,
|
|
Input4,
|
|
Input5);
|
|
}
|
|
}
|
|
}
|