///
/// Copyright (c) 2018 Sensus Slovensko a.s.
///
using System.Collections.Generic;
using TBF.BenchControl.Generic;
using TBF.Boxes;
namespace TBF.BenchControl.GenericDevices
{
///
/// Water tank functions (either on a scale or with height/volume measurement)
///
public interface IScaleOrTank : IComponent
{
///
/// Balance number: 0-based index required for communication with the Elde component
///
int ScaleNr { get; }
///
/// Balance water tank capacity in kg or ltr
///
double Capacity { get; }
///
/// Water tank drain valve or 'null'. DrainValve2 is open in the 2nd half of drain time period
///
IValve DrainValve { get; }
IValve DrainValve2 { get; }
///
/// Returns true if tank is empty, the last measured mass is less then some threshold
///
bool IsEmpty();
///
/// Returns true if tank contains more then 'thld' kg or l of water
///
bool ContainsMoreThen(float thld);
///
/// Format string to be used as ToString() argument (e.g. "F3" to obtain resolution 1g)
///
string Format { get; }
///
/// Time in seconds to empty the tank completely when it is full
///
int EmptyTimeSec { get; }
///
/// Measurement correction table
///
IList Corrections { get; }
}
}