tbf/TBF/Rig/TestMethods/S640Communication/S640End.cs

57 lines
1.7 KiB
C#

///
/// 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
{
/// <summary>
/// Communicates with S640 meters via shared files and SIRT.
/// </summary>
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<Event> Execute(Test test, int repetNr, bool isLastRepetition)
{
return (new S640CommSeq()).Execute(test, repetNr, S640Activity.End, myCfg, myCfg.ProcParams);
}
}
}