/// /// Copyright (c) 2021 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; using System.IO; using System.Xml.Serialization; using log4net; using Common; using Config.Entities; using TBF.Rig; using TBF.Rig.Generic; using TBF.Rig.Sequences; using TBF.UiBridge; namespace TBF.Rig.TestMethods.S640Communication { /// /// Communicates with S640 meters via shared files and SIRT. /// public class S640End : ComponentBase, GenericDevices.ISimultTestMethod { private static readonly ILog log = LogManager.GetLogger(typeof(S640End)); public FlowType MethodFlowType => FlowType.volume; public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } public bool CanTest(MetersKind meters) { return meters == MetersKind.Single; } public bool DoTransitions() { return false; } public bool CheckDeviceCaps(Test test, OutputPath devices, out string message) { message = string.Empty; return true; } readonly S640EndCfg myCfg; public bool SimultWithPrevious { get { return false; } } public bool SimultWithNext { get { return myCfg.SimultWithEvacuation; } } public S640End() { } public S640End(Generic.IComponentCfg cfg) : base(cfg) { myCfg = cfg as S640EndCfg; } public override void Initialize() { if (!Directory.Exists(Constants.SirtLogDir)) Directory.CreateDirectory(Constants.SirtLogDir); log.FatalFormat("{0} initialized: {1}", Name, this); } public IList Execute(Test test, int repetNr, bool isLastRepetition) { return (new S640CommSeq()).Execute(test, repetNr, S640Activity.End, myCfg, myCfg.ProcParams); } } }