384 lines
17 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|