/// /// Copyright (c) 2013-2015 Sensus Metering Systems /// Author: Milan Hanajik /// using System; using log4net; namespace TBF.BenchControl.MettlerToledo.Standard { public class GetBalanceSNOp : IOperation { private static readonly ILog log = LogManager.GetLogger(typeof(GetBalanceSNOp)); public override string ToString() { return string.Format("GetBalanceSNOp(.,.)"); } /// Set by the constructor BalanceNewDev balanceDev; string serialNumber; /// /// Events: BalanceDone, Error /// /// Balance device instance /// Reference to the serialNumber public GetBalanceSNOp(BalanceNewDev balanceDev, ref string serialNumber) { if (balanceDev == null) throw new ArgumentNullException("balanceDev"); this.balanceDev = balanceDev; this.serialNumber = serialNumber; log.Debug(this.ToString()); } /// Start this operation public void Start() { log.DebugFormat("{0} - Start()", balanceDev.Name); balanceDev.GetSerialNumber(); } /// Run this operation /// /// Event.None /// Event.BalanceDone /// public Event Run() { if (balanceDev.MsrmntState == MsrmntState.Valid) { serialNumber = balanceDev.SerialNumber; return Event.BalanceDone; /// S/N read successful } if (balanceDev.MsrmntState == MsrmntState.Failed) return Event.Error; /// S/N read failed return Event.None; /// No result yet } /// Stop this operation public void Stop() { log.DebugFormat("{0} - Stop()", balanceDev.Name); } } }