2015-04-15 18:32:56 +00:00
|
|
|
|
///
|
|
|
|
|
|
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
|
|
|
|
|
///
|
|
|
|
|
|
using System;
|
2014-07-28 07:54:35 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using TBF.BenchControl.Generic;
|
2014-07-31 15:04:09 +00:00
|
|
|
|
using TBF.Boxes;
|
2014-07-28 07:54:35 +00:00
|
|
|
|
|
|
|
|
|
|
namespace TBF.BenchControl.GenericDevices
|
|
|
|
|
|
{
|
|
|
|
|
|
public interface IRegulValve : IComponent
|
|
|
|
|
|
{
|
2014-09-10 10:05:49 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Regulation valve position 0.0 .. 100.0 %
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
float Position { get; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Dictionary for position re-use
|
|
|
|
|
|
/// </summary>
|
2014-07-28 07:54:35 +00:00
|
|
|
|
IDictionary<float, float> Dict { get; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Operation to set the water flow within tolerances
|
|
|
|
|
|
/// Events: Event.None, Event.FlowReached, Event.FlowTimeOut
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="requiredFlowLo">Lower limit of the required flow [m3/h]</param>
|
|
|
|
|
|
/// <param name="requiredFlowHi">Higher limit of the required flow [m3/h]</param>
|
2015-01-03 20:17:06 +00:00
|
|
|
|
/// <param name="pidCoef">PID coefficient (float)</param>
|
|
|
|
|
|
/// <param name="measuredFlow">Measured flow [m3/h]</param>
|
2014-07-28 07:54:35 +00:00
|
|
|
|
/// <param name="timeout">Timeout in [s]</param>
|
|
|
|
|
|
/// <returns>SetFlowOp instance</returns>
|
2015-01-03 20:17:06 +00:00
|
|
|
|
IOperation SetFlowOp(IFlowMeter flowMeter, float requiredFlowLo, float requiredFlowHi,
|
|
|
|
|
|
float pidCoef, FloatBox measuredFlow, int timeout);
|
2014-07-28 07:54:35 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Operation to set the water flow within tolerances. Leave the measurement running.
|
|
|
|
|
|
/// Events: Event.None, Event.FlowReached, Event.FlowTimeOut
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="requiredFlowLo">Lower limit of the required flow [m3/h]</param>
|
|
|
|
|
|
/// <param name="requiredFlowHi">Higher limit of the required flow [m3/h]</param>
|
2015-01-03 20:17:06 +00:00
|
|
|
|
/// <param name="pidCoef">PID coefficient (float)</param>
|
|
|
|
|
|
/// <param name="measuredFlow">Measured flow [m3/h]</param>
|
2014-07-28 07:54:35 +00:00
|
|
|
|
/// <param name="timeout">Timeout in [s]</param>
|
2014-07-30 22:50:42 +00:00
|
|
|
|
/// <param name="filter">Passed to SendCommand() as argument filterContant</param>
|
2014-07-28 07:54:35 +00:00
|
|
|
|
/// <returns>SetFlowOp instance</returns>
|
2015-01-03 20:17:06 +00:00
|
|
|
|
IOperation SetFlowAndMeasureOp(IFlowMeter flowMeter, float requiredFlowLo, float requiredFlowHi,
|
|
|
|
|
|
float pidCoef, FloatBox measuredFlow, int timeout, float filter);
|
2014-07-28 07:54:35 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Operation to set the regulation valve to a required position
|
|
|
|
|
|
/// Events: Event.None
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="posLoPct">Lower limit of the required valve position in %</param>
|
|
|
|
|
|
/// <param name="posHiPct">Higher limit of the required valve position in %</param>
|
|
|
|
|
|
/// <param name="timeout">Timeout in [s]</param>
|
|
|
|
|
|
/// <returns>SetPositionOp instance</returns>
|
|
|
|
|
|
IOperation SetRegulValvePositionOp(float posLoPct, float posHiPct, int timeout);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Operation to set the regulation valve to a required position
|
|
|
|
|
|
/// Events: Event.None
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="timePulseSec">Time pulse in sec</param>
|
|
|
|
|
|
/// <returns>SetPositionOp instance</returns>
|
|
|
|
|
|
IOperation ChangeRegulValvePositionOp(float timePulseSec);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|