152 lines
3.6 KiB
C#
152 lines
3.6 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Xml.Serialization;
|
|
using TBF.BenchControl.Generic;
|
|
using TBF.Resources;
|
|
|
|
namespace TBF.BenchControl.Elde.PumpWithFM
|
|
{
|
|
public class FMPumpTestParams : IParamsProvider, ITestParams
|
|
{
|
|
public float Power; /// Target=terminal flow durning detection when increasing or decreasing the flow
|
|
|
|
string[] paramNames = new string[]
|
|
{
|
|
Strings.PowerPct,
|
|
};
|
|
public string ParamName(int i) { return paramNames[i]; }
|
|
|
|
public string ToString(int i)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 0: return Power.ToString("F1");
|
|
default: return string.Empty;
|
|
}
|
|
}
|
|
|
|
public void UpdateParam(int i, string strValue)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 0: Power = Utils.ParseUFloat(strValue); return;
|
|
default: return;
|
|
}
|
|
}
|
|
|
|
public bool ValidateParam(int i, string strValue, out string message)
|
|
{
|
|
message = string.Empty;
|
|
|
|
float dummy;
|
|
switch (i)
|
|
{
|
|
case 0:
|
|
if (Utils.TryParseUFloat(strValue, out dummy)) return true;
|
|
break;
|
|
default:
|
|
message = "Invalid index";
|
|
return false;
|
|
}
|
|
|
|
message = ParamName(i) + " is invalid";
|
|
return false;
|
|
}
|
|
|
|
#region Boilerplate code
|
|
|
|
public int ParamsCount() { return paramNames.Length; }
|
|
|
|
public override string ToString()
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
for (int i = 0; i < ParamsCount(); i++)
|
|
{
|
|
if (i != 0) sb.Append("; ");
|
|
sb.Append(ParamName(i));
|
|
sb.Append("=");
|
|
sb.Append(ToString(i));
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
[XmlIgnore]
|
|
public Entities.ComponentTest TestParamsEntity { get { return testParamsEntity; } }
|
|
Entities.ComponentTest testParamsEntity;
|
|
|
|
[XmlIgnore]
|
|
public string ComponentName { get { return componentName; } }
|
|
string componentName;
|
|
|
|
[XmlIgnore]
|
|
public Entities.Test Test { get { return test; } }
|
|
Entities.Test test;
|
|
|
|
/// Parameterless constructor
|
|
public FMPumpTestParams()
|
|
{
|
|
Power = 50.0f;
|
|
}
|
|
|
|
public FMPumpTestParams(Entities.ComponentTest testParamsEntity, string componentName, Entities.Test test)
|
|
: this()
|
|
{
|
|
this.testParamsEntity = testParamsEntity;
|
|
this.componentName = componentName;
|
|
this.test = test;
|
|
}
|
|
|
|
public TBF.Entities.ComponentTest ToDbEntity(IComponent component, Entities.Test test)
|
|
{
|
|
using (var writer = new StringWriter())
|
|
{
|
|
/// Serialize this class with parameters
|
|
(new XmlSerializer(GetType())).Serialize(writer, this);
|
|
|
|
/// Create and return the ComponentTest entity
|
|
TBF.Entities.ComponentTest entity = new TBF.Entities.ComponentTest();
|
|
entity.CmpntName = component.Cfg.Name;
|
|
entity.Parameters = writer.ToString();
|
|
entity.Test = test;
|
|
return entity;
|
|
}
|
|
}
|
|
|
|
public void UpdateDbEntity()
|
|
{
|
|
using (var writer = new StringWriter())
|
|
{
|
|
/// Serialize this class and update the entity
|
|
(new XmlSerializer(GetType())).Serialize(writer, this);
|
|
testParamsEntity.Parameters = writer.ToString();
|
|
testParamsEntity.CmpntName = componentName;
|
|
testParamsEntity.Test = test;
|
|
|
|
}
|
|
}
|
|
|
|
public static IParamsProvider GetTestParams(Entities.ComponentTest testParamsEntity)
|
|
{
|
|
if (testParamsEntity == null) return new FMPumpTestParams();
|
|
|
|
FMPumpTestParams testParams;
|
|
try
|
|
{
|
|
testParams = (FMPumpTestParams)(new XmlSerializer(typeof(FMPumpTestParams)))
|
|
.Deserialize(new StringReader(testParamsEntity.Parameters));
|
|
}
|
|
catch
|
|
{
|
|
testParams = new FMPumpTestParams();
|
|
}
|
|
testParams.testParamsEntity = testParamsEntity;
|
|
testParams.componentName = testParamsEntity.CmpntName;
|
|
testParams.test = testParamsEntity.Test;
|
|
return testParams;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|