/// /// Copyright (c) 2013-2015 Sensus Metering Systems /// using System; using log4net; using TBF.Boxes; namespace TBF.BenchControl.Elde.FixedStartRegisterReader { public class ReadReferenceForRegisterOp : IOperation { private static readonly ILog log = LogManager.GetLogger(typeof(ReadReferenceForRegisterOp)); public override string ToString() { return string.Format("ReadWaterMeterOp(.,{0},.)", eventDone); } /// Set by the constructor readonly ControlBoardDev controlBoard; readonly Event eventDone; IntBox pulses; /// /// Events: or Error /// /// Flow meter reference /// Reference to the measured flow variable, value is in bar /// Event to be returned by Run() when completed OK public ReadReferenceForRegisterOp(RegisterReader register, ref IntBox pulses, Event eventDone) { if (register == null) throw new ArgumentNullException("register"); this.controlBoard = register.ControlBoard; this.eventDone = eventDone; this.pulses = pulses; log.Debug(this.ToString()); } public ReadReferenceForRegisterOp(RegisterReader register, ref IntBox pulses) : this(register, ref pulses, Event.ReadReferenceDone) { } /// Start this operation public void Start() { } /// Run this operation /// /// Event.FlowInDone or Event.FlowOutDone /// public Event Run() { pulses.Val = controlBoard.EtPulses(0); return eventDone; } /// Stop this operation public void Stop() { } } }