/// /// Copyright (c) 2020 Sensus Slovensko a.s. /// using System; using log4net; using TBF.Boxes; namespace TBF.Rig.Modbus.TempMeter.Meret { public class ReadTempOp : IOperation { private static readonly ILog log = LogManager.GetLogger(typeof(ReadTempOp)); public override string ToString() { return string.Format("ReadTempOp(.,{0},.)", eventDone); } /// Set by the constructor readonly TempMeter tempMeter; readonly Event eventDone; readonly DoubleBox temp; /// Box for the measured value /// /// Events: TempDone or Error /// /// Pressure meter reference /// Reference to the measured pressure variable, value is in bar /// Event to be returned by Run() when completed OK public ReadTempOp(TempMeter tempMeter, ref DoubleBox temp, Event eventDone) { if (tempMeter == null) throw new ArgumentNullException("tempMeter"); this.tempMeter = tempMeter; this.temp = temp; this.eventDone = eventDone; log.Debug(this.ToString()); } public ReadTempOp(TempMeter pressureMeter, ref DoubleBox temp) : this(pressureMeter, ref temp, Event.TempDone) { } /// Start this operation public void Start() { if (temp != null) temp.Val = tempMeter.ReadTemperature(); } /// Run this operation /// /// Event.PressureInDone or Event.PressureOutDone /// public Event Run() { if (temp != null) temp.Val = tempMeter.ReadTemperature(); return eventDone; } /// Stop this operation public void Stop() { } } }