///
/// Copyright (c) 2013-2015 Sensus Metering Systems
///
using System.Collections.Generic;
using TBF.BenchControl.Generic;
using TBF.Boxes;
namespace TBF.BenchControl.GenericDevices
{
///
/// Basic flow meter functions
///
public interface IFlowMeter : IComponent
{
///
/// Nominal flow in m3/h at the maximum (2kHz) output frequency.
/// In case of a flowmeter couple, the sum of two nominal flows (reached at 4kHz of summed pulses).
///
float NominalFlow { get; }
///
/// Nominal (uncorrected) volume per flowmeter pulse in [l].
///
float LtrPerPulse { get; }
///
/// Corrected volume per flowmeter pulse in [l].
///
/// Water flow in [m3/h]
float LtrPerPulseCorrected(float flow);
///
/// 1 based index of the reference flowmeter
///
int Idx1 { get; }
///
/// Measurement correction table
///
IList Corrections { get; }
///
/// Events: FlowDone, Error
///
/// Reference to a variable for the measured flow in xxx
/// ReadFlowOp instance reference casted to IOperaton
IOperation ReadFlowOp(ref FloatBox flow);
///
/// Events: flowDone, Error
///
/// Reference to a variable for the measured flow in xxx
/// Event returned when measurement done
/// ReadFlowOp instance reference casted to IOperaton
IOperation ReadFlowOp(ref FloatBox flow, Event flowDone);
}
}