tbf/TestBenchFramework/BenchControl/Elde/ValveEx/ValveCfg.cs

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);
}
}
}