/// /// Copyright (c) 2013-2015 Sensus Metering Systems /// using System; using log4net; namespace TBF.BenchControl.MettlerToledo { public class KeepReadingMassesOp : IOperation { private static readonly ILog log = LogManager.GetLogger(typeof(KeepReadingMassesOp)); public override string ToString() { return string.Format("KeepReadingMassesOp()"); } bool done; /// /// Events: BalanceDone, Error /// /// Balance device instance /// Required mass readings count (>= 3) /// Reference to the measured mass in kg public KeepReadingMassesOp() { log.Debug(this.ToString()); } /// Start this operation public void Start() { done = false; for (int i = 0; i < Standard.BalanceDev.BalancesCount; i++) { Standard.BalanceDev.Balances[i].GetImmediateMassMeasurement(); } } /// Run this operation /// /// Event.None /// public Event Run() { if (done) return Event.BalanceDone; /// Mass has already been read for (int i = 0; i < Standard.BalanceDev.BalancesCount; i++) { if (Standard.BalanceDev.Balances[i].MsrmntState != MsrmntState.Busy) { Standard.BalanceDev.Balances[i].GetImmediateMassMeasurement(); } } return Event.None; } /// Stop this operation public void Stop() { } } }