/// /// Copyright (c) 2018 Sensus Slovensko a.s. /// using System; using log4net; using TBF.Boxes; namespace TBF.BenchControl.Modbus.UltrasoundLevelMeter { public class ReadStableVolumeOp : IOperation { private static readonly ILog log = LogManager.GetLogger(typeof(ReadVolumeOp)); public override string ToString() { return string.Format("ReadVolumeOp(.,.)"); } /// Set by the constructor readonly LevelMeter levelMeter; readonly DoubleBox volume; readonly double sdev; /// /// Events: VolumeDone or Error /// /// Water volume meter reference /// Reference to the measured volume variable, value is in l /// Event to be returned by Run() when completed OK public ReadStableVolumeOp(LevelMeter levelMeter, ref DoubleBox volume, double sdev) { if (levelMeter == null) throw new ArgumentNullException("levelMeter"); this.levelMeter = levelMeter; this.volume = volume; this.sdev = sdev; log.Debug(this.ToString()); } /// Start this operation public void Start() { volume.Val = levelMeter.ReadVolume(); } /// Run this operation /// /// Event.VolumeDone /// public Event Run() { volume.Val = levelMeter.ReadVolume(); return Event.VolumeDone; } /// Stop this operation public void Stop() { } } }