Files
laatzen/Common/OmniPlus/InspectionUI/Plugins/TestBench.cs
T

384 lines
17 KiB
C#

namespace InspectionUI
{
using InspectionUI.Abstraction;
using InspectionUI.Abstraction.Interfaces;
using InspectionUI.RemoteControl;
using InspectionUI.RemoteControl.Interfaces;
using InspectionUI.RemoteControl.Messages;
using NLog;
using System;
using System.Threading;
public class TestBench : ITestBench
{
private readonly ILogger logger = TestBatchBase.Logger;
private readonly IRemoteConnection remoteConnection;
public TestBench(IGrid grid, IAppsettings appsettings)
{
this.Layout = grid;
this.Appsettings = appsettings;
this.remoteConnection = new RemoteConnection();
this.remoteConnection.Connect(appsettings.APIURL);
}
public event Action<string> Notification;
public event Action<string> NotificationAppend;
public string SearchToken { get; set; }
public IGrid Layout { get; }
public IAppsettings Appsettings { get; }
public void Dispose()
{
this.Layout.Clear();
this.remoteConnection.Dispose();
}
public void Notify(string notification)
=> this.Notification?.Invoke(notification);
public void NotifyAppend(String notification)
=> this.NotificationAppend?.Invoke(notification);
public FlowMessage SendGetFlow(FlowMessage message, int timeout = 60000)
{
var awaiter = new ManualResetEventSlim();
var response = new FlowMessage();
void FlowReceived(FlowMessage _message)
{
this.logger.Info($"SendGetFlow._message.Completed = {_message.Completed}");
this.logger.Info($"SendGetFlow._message.Error = {_message.Error}");
this.logger.Info($"SendGetFlow._message.M3H = {_message.M3H}");
this.logger.Info($"SendGetFlow._message.PumpNr = {_message.PumpNr}");
this.logger.Info($"SendGetFlow._message.RuleType = {_message.RuleType}");
this.logger.Info($"SendGetFlow._message.ServoPosition = {_message.ServoPosition}");
response = _message;
if (response.Completed || !string.IsNullOrWhiteSpace(response.Error))
{
awaiter.Set();
}
}
this.remoteConnection.GetFlow += FlowReceived;
this.remoteConnection.SendGetFlow(message);
this.logger.Info($"SendGetFlow.message.Completed = {message.Completed}");
this.logger.Info($"SendGetFlow.message.Error = {message.Error}");
this.logger.Info($"SendGetFlow.message.M3H = {message.M3H}");
this.logger.Info($"SendGetFlow.message.PumpNr = {message.PumpNr}");
this.logger.Info($"SendGetFlow.message.RuleType = {message.RuleType}");
this.logger.Info($"SendGetFlow.message.ServoPosition = {message.ServoPosition}");
awaiter.Wait(timeout);
this.remoteConnection.GetFlow -= FlowReceived;
this.logger.Info($"SendGetFlow.response.Completed = {response.Completed}");
this.logger.Info($"SendGetFlow.response.Error = {response.Error}");
this.logger.Info($"SendGetFlow.response.M3H = {response.M3H}");
this.logger.Info($"SendGetFlow.response.PumpNr = {response.PumpNr}");
this.logger.Info($"SendGetFlow.response.RuleType = {response.RuleType}");
this.logger.Info($"SendGetFlow.response.ServoPosition = {response.ServoPosition}");
return response;
}
public ReferenceMessage SendGetRM(ReferenceMessage message, int timeout = 60000)
{
var awaiter = new ManualResetEventSlim();
var response = new ReferenceMessage();
void RMReceived(ReferenceMessage _message)
{
this.logger.Info($"SendGetRM._message.Completed = {_message.Completed}");
this.logger.Info($"SendGetRM._message.Error = {_message.Error}");
this.logger.Info($"SendGetRM._message.Impulses = {_message.Impulses}");
this.logger.Info($"SendGetRM._message.M3H = {_message.M3H}");
this.logger.Info($"SendGetRM._message.M3S = {_message.M3S}");
this.logger.Info($"SendGetRM._message.Seconds = {_message.Seconds}");
this.logger.Info($"SendGetRM._message.SerialNr = {_message.SerialNr}");
response = _message;
if (response.Completed || !string.IsNullOrWhiteSpace(response.Error))
{
awaiter.Set();
}
}
this.remoteConnection.GetRM += RMReceived;
this.remoteConnection.SendGetRM(message);
this.logger.Info($"SendGetRM.message.Completed = {message.Completed}");
this.logger.Info($"SendGetRM.message.Error = {message.Error}");
this.logger.Info($"SendGetRM.message.Impulses = {message.Impulses}");
this.logger.Info($"SendGetRM.message.M3H = {message.M3H}");
this.logger.Info($"SendGetRM.message.M3S = {message.M3S}");
this.logger.Info($"SendGetRM.message.Seconds = {message.Seconds}");
this.logger.Info($"SendGetRM.message.SerialNr = {message.SerialNr}");
awaiter.Wait(timeout);
this.remoteConnection.GetRM -= RMReceived;
this.logger.Info($"SendGetRM.response.Completed = {response.Completed}");
this.logger.Info($"SendGetRM.response.Error = {response.Error}");
this.logger.Info($"SendGetRM.response.Impulses = {response.Impulses}");
this.logger.Info($"SendGetRM.response.M3H = {response.M3H}");
this.logger.Info($"SendGetRM.response.M3S = {response.M3S}");
this.logger.Info($"SendGetRM.response.Seconds = {response.Seconds}");
this.logger.Info($"SendGetRM.response.SerialNr = {response.SerialNr}");
return response;
}
public FlowMessage SendStartFlow(FlowMessage message, int timeout = 60000)
{
var awaiter = new ManualResetEventSlim();
var response = new FlowMessage();
void FlowStarted(FlowMessage _message)
{
this.logger.Info($"SendStartFlow._message.Completed = {_message.Completed}");
this.logger.Info($"SendStartFlow._message.Error = {_message.Error}");
this.logger.Info($"SendStartFlow._message.M3H = {_message.M3H}");
this.logger.Info($"SendStartFlow._message.PumpNr = {_message.PumpNr}");
this.logger.Info($"SendStartFlow._message.RuleType = {_message.RuleType}");
this.logger.Info($"SendStartFlow._message.ServoPosition = {_message.ServoPosition}");
response = _message;
if (response.Completed || !string.IsNullOrWhiteSpace(response.Error))
{
awaiter.Set();
}
}
this.remoteConnection.StartFlow += FlowStarted;
this.remoteConnection.SendStartFlow(message);
this.logger.Info($"SendStartFlow.message.Completed = {message.Completed}");
this.logger.Info($"SendStartFlow.message.Error = {message.Error}");
this.logger.Info($"SendStartFlow.message.M3H = {message.M3H}");
this.logger.Info($"SendStartFlow.message.PumpNr = {message.PumpNr}");
this.logger.Info($"SendStartFlow.message.RuleType = {message.RuleType}");
this.logger.Info($"SendStartFlow.message.ServoPosition = {message.ServoPosition}");
awaiter.Wait(timeout);
this.remoteConnection.StartFlow -= FlowStarted;
this.logger.Info($"SendStartFlow.response.Completed = {response.Completed}");
this.logger.Info($"SendStartFlow.response.Error = {response.Error}");
this.logger.Info($"SendStartFlow.response.M3H = {response.M3H}");
this.logger.Info($"SendStartFlow.response.PumpNr = {response.PumpNr}");
this.logger.Info($"SendStartFlow.response.RuleType = {response.RuleType}");
this.logger.Info($"SendStartFlow.response.ServoPosition = {response.ServoPosition}");
return response;
}
public ReferenceMessage SendStartRM(ReferenceMessage message, int timeout = 60000)
{
var awaiter = new ManualResetEventSlim();
var response = new ReferenceMessage();
void RMStarted(ReferenceMessage _message)
{
this.logger.Info($"SendStartRM._message.Completed = {_message.Completed}");
this.logger.Info($"SendStartRM._message.Error = {_message.Error}");
this.logger.Info($"SendStartRM._message.Impulses = {_message.Impulses}");
this.logger.Info($"SendStartRM._message.M3H = {_message.M3H}");
this.logger.Info($"SendStartRM._message.M3S = {_message.M3S}");
this.logger.Info($"SendStartRM._message.Seconds = {_message.Seconds}");
this.logger.Info($"SendStartRM._message.SerialNr = {_message.SerialNr}");
response = _message;
if (response.Completed || !string.IsNullOrWhiteSpace(response.Error))
{
awaiter.Set();
}
}
this.remoteConnection.StartRM += RMStarted;
this.remoteConnection.SendStartRM(message);
this.logger.Info($"SendStartRM.message.Completed = {message.Completed}");
this.logger.Info($"SendStartRM.message.Error = {message.Error}");
this.logger.Info($"SendStartRM.message.Impulses = {message.Impulses}");
this.logger.Info($"SendStartRM.message.M3H = {message.M3H}");
this.logger.Info($"SendStartRM.message.M3S = {message.M3S}");
this.logger.Info($"SendStartRM.message.Seconds = {message.Seconds}");
this.logger.Info($"SendStartRM.message.SerialNr = {message.SerialNr}");
awaiter.Wait(timeout);
this.remoteConnection.StartRM -= RMStarted;
this.logger.Info($"SendStartRM.response.Completed = {response.Completed}");
this.logger.Info($"SendStartRM.response.Error = {response.Error}");
this.logger.Info($"SendStartRM.response.Impulses = {response.Impulses}");
this.logger.Info($"SendStartRM.response.M3H = {response.M3H}");
this.logger.Info($"SendStartRM.response.M3S = {response.M3S}");
this.logger.Info($"SendStartRM.response.Seconds = {response.Seconds}");
this.logger.Info($"SendStartRM.response.SerialNr = {response.SerialNr}");
return response;
}
public FlowMessage SendStopFlow(FlowMessage message, int timeout = 60000)
{
var awaiter = new ManualResetEventSlim();
var response = new FlowMessage();
void FlowStopped(FlowMessage _message)
{
this.logger.Info($"SendStopFlow._message.Completed = {_message.Completed}");
this.logger.Info($"SendStopFlow._message.Error = {_message.Error}");
this.logger.Info($"SendStopFlow._message.M3H = {_message.M3H}");
this.logger.Info($"SendStopFlow._message.PumpNr = {_message.PumpNr}");
this.logger.Info($"SendStopFlow._message.RuleType = {_message.RuleType}");
this.logger.Info($"SendStopFlow._message.ServoPosition = {_message.ServoPosition}");
response = _message;
if (response.Completed || !string.IsNullOrWhiteSpace(response.Error))
{
awaiter.Set();
}
}
this.remoteConnection.StopFlow += FlowStopped;
this.remoteConnection.SendStopFlow(message);
this.logger.Info($"SendStopFlow.message.Completed = {message.Completed}");
this.logger.Info($"SendStopFlow.message.Error = {message.Error}");
this.logger.Info($"SendStopFlow.message.M3H = {message.M3H}");
this.logger.Info($"SendStopFlow.message.PumpNr = {message.PumpNr}");
this.logger.Info($"SendStopFlow.message.RuleType = {message.RuleType}");
this.logger.Info($"SendStopFlow.message.ServoPosition = {message.ServoPosition}");
awaiter.Wait(timeout);
this.remoteConnection.StopFlow -= FlowStopped;
this.logger.Info($"SendStopFlow.response.Completed = {response.Completed}");
this.logger.Info($"SendStopFlow.response.Error = {response.Error}");
this.logger.Info($"SendStopFlow.response.M3H = {response.M3H}");
this.logger.Info($"SendStopFlow.response.PumpNr = {response.PumpNr}");
this.logger.Info($"SendStopFlow.response.RuleType = {response.RuleType}");
this.logger.Info($"SendStopFlow.response.ServoPosition = {response.ServoPosition}");
return response;
}
public ReferenceMessage SendStopRM(ReferenceMessage message, int timeout = 60000)
{
var awaiter = new ManualResetEventSlim();
var response = new ReferenceMessage();
void RMStopped(ReferenceMessage _message)
{
this.logger.Info($"SendStopRM._message.Completed = {_message.Completed}");
this.logger.Info($"SendStopRM._message.Error = {_message.Error}");
this.logger.Info($"SendStopRM._message.Impulses = {_message.Impulses}");
this.logger.Info($"SendStopRM._message.M3H = {_message.M3H}");
this.logger.Info($"SendStopRM._message.M3S = {_message.M3S}");
this.logger.Info($"SendStopRM._message.Seconds = {_message.Seconds}");
this.logger.Info($"SendStopRM._message.SerialNr = {_message.SerialNr}");
response = _message;
if (response.Completed || !string.IsNullOrWhiteSpace(response.Error))
{
awaiter.Set();
}
}
this.remoteConnection.StopRM += RMStopped;
this.remoteConnection.SendStopRM(message);
this.logger.Info($"SendStopRM.message.Completed = {message.Completed}");
this.logger.Info($"SendStopRM.message.Error = {message.Error}");
this.logger.Info($"SendStopRM.message.Impulses = {message.Impulses}");
this.logger.Info($"SendStopRM.message.M3H = {message.M3H}");
this.logger.Info($"SendStopRM.message.M3S = {message.M3S}");
this.logger.Info($"SendStopRM.message.Seconds = {message.Seconds}");
this.logger.Info($"SendStopRM.message.SerialNr = {message.SerialNr}");
awaiter.Wait(timeout);
this.remoteConnection.StopRM -= RMStopped;
this.logger.Info($"SendStopRM.response.Completed = {response.Completed}");
this.logger.Info($"SendStopRM.response.Error = {response.Error}");
this.logger.Info($"SendStopRM.response.Impulses = {response.Impulses}");
this.logger.Info($"SendStopRM.response.M3H = {response.M3H}");
this.logger.Info($"SendStopRM.response.M3S = {response.M3S}");
this.logger.Info($"SendStopRM.response.Seconds = {response.Seconds}");
this.logger.Info($"SendStopRM.response.SerialNr = {response.SerialNr}");
return response;
}
public InfoMessage SendGetInfo(InfoMessage message, int timeout = 60000)
{
var awaiter = new ManualResetEventSlim();
var response = new InfoMessage();
void InfoReceived(InfoMessage _message)
{
this.logger.Info($"SendGetInfo._message.Completed = {_message.Completed}");
this.logger.Info($"SendGetInfo._message.Error = {_message.Error}");
this.logger.Info($"SendGetInfo._message.PSNR = {_message.PSNR}");
this.logger.Info($"SendGetInfo._message.TesterId = {_message.TesterId}");
this.logger.Info($"SendGetInfo._message.TesterName = {_message.TesterName}");
response = _message;
if (response.Completed || !string.IsNullOrWhiteSpace(response.Error))
{
awaiter.Set();
}
}
this.remoteConnection.GetInfo += InfoReceived;
this.remoteConnection.SendGetInfo(message);
this.logger.Info($"SendGetInfo.message.Completed = {message.Completed}");
this.logger.Info($"SendGetInfo.message.Error = {message.Error}");
this.logger.Info($"SendGetInfo.message.PSNR = {message.PSNR}");
this.logger.Info($"SendGetInfo.message.TesterId = {message.TesterId}");
this.logger.Info($"SendGetInfo.message.TesterName = {message.TesterName}");
awaiter.Wait(timeout);
this.remoteConnection.GetInfo -= InfoReceived;
this.logger.Info($"SendGetInfo.response.Completed = {response.Completed}");
this.logger.Info($"SendGetInfo.response.Error = {response.Error}");
this.logger.Info($"SendGetInfo.response.PSNR = {response.PSNR}");
this.logger.Info($"SendGetInfo.response.TesterId = {response.TesterId}");
this.logger.Info($"SendGetInfo.response.TesterName = {response.TesterName}");
return response;
}
}
}