187 lines
8.5 KiB
C#
187 lines
8.5 KiB
C#
#region Namespace
|
|
using System;
|
|
using System.Diagnostics;
|
|
using com.itac.mes.proxy.business;
|
|
using com.itac.mes.tools;
|
|
using www.siplace.com.OIB._2015._10.LineControlServer.Contracts.Data;
|
|
using AsmNamespace = www.siplace.com.OIB._2015._10.LineControlServer.Contracts.Data;
|
|
using Constants = com.itac.mes.tools.Constants;
|
|
using MesNamespace = com.itac.oib.linecontrol.contracts.data;
|
|
using OibClient = Asm.As.Oib.Client;
|
|
#endregion
|
|
|
|
namespace Itac.Oib
|
|
{
|
|
/// <summary>
|
|
/// Receiver class for the TraceService events
|
|
/// </summary>
|
|
public class LineControlMesInterceptorReceiver : IDisposable, IReceiver
|
|
{
|
|
#region Fields
|
|
|
|
OIBEventHandler _eventHandler;
|
|
readonly OibClient.OibLineControlMesInterceptorEvents _oibLineControlMesInterceptorEvents;
|
|
#endregion
|
|
|
|
#region construtor/destructor
|
|
public LineControlMesInterceptorReceiver(OibClient.OibLineControlMesInterceptorEvents oibLineControlMesInterceptorEvents,
|
|
OIBEventHandler eventHandler)
|
|
{
|
|
if (oibLineControlMesInterceptorEvents == null) throw new ArgumentNullException("oibLineControlMesInterceptorEvents");
|
|
if (eventHandler == null) throw new ArgumentNullException("eventHandler");
|
|
|
|
this._oibLineControlMesInterceptorEvents = oibLineControlMesInterceptorEvents;
|
|
this._eventHandler = eventHandler;
|
|
_oibLineControlMesInterceptorEvents.Ping = Ping;
|
|
_oibLineControlMesInterceptorEvents.VerifyPcbForAutoProgramDownload = VerifyPcbForAutoProgramDownload;
|
|
_oibLineControlMesInterceptorEvents.VerifyRecipeActivationOnDekPrinter = VerifyRecipeActivationOnDekPrinter;
|
|
_oibLineControlMesInterceptorEvents.VerifyRecipeDownload = VerifyRecipeDownload;
|
|
_oibLineControlMesInterceptorEvents.VerifyRecipeForAutoProgramDownload = VerifyRecipeForAutoProgramDownload;
|
|
_oibLineControlMesInterceptorEvents.VerifyStartAutoProgramDownload = VerifyStartAutoProgramDownload;
|
|
}
|
|
|
|
|
|
public void Dispose()
|
|
{
|
|
if (_oibLineControlMesInterceptorEvents != null) { _oibLineControlMesInterceptorEvents.Dispose(); }
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region Start/Stop
|
|
|
|
public void Start()
|
|
{
|
|
if (!_oibLineControlMesInterceptorEvents.IsStarted)
|
|
{
|
|
_oibLineControlMesInterceptorEvents.Start();
|
|
}
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
_oibLineControlMesInterceptorEvents.Stop();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Handling of events
|
|
bool Ping()
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Verbose, "LineControlMesInterceptorReceiver.Ping");
|
|
return _eventHandler != null;
|
|
}
|
|
|
|
private MesVerificationResult VerifyRecipeForAutoProgramDownload(VerifyRecipeForAutoProgramDownloadRequest request)
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "LineControlMesInterceptorReceiver VerifyRecipeForAutoProgramDownload called");
|
|
// map value from asm namespace to mes namespace
|
|
MesNamespace.VerifyRecipeForAutoProgramDownloadRequest report = MesNamespace.VerifyRecipeForAutoProgramDownloadRequestMapper.get(request);
|
|
|
|
// create return value
|
|
AsmNamespace.MesVerificationResult asmResult = null;
|
|
try
|
|
{
|
|
MesNamespace.MesVerificationResult mesResult = _eventHandler.verifyRecipeForAutoProgramDownload(report);
|
|
asmResult = MesNamespace.MesVerificationResultMapper.get(mesResult);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
asmResult = getFailureResult(e);
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "failed to process LineControlMesInterceptorReceiver.VerifyRecipeForAutoProgramDownload", e);
|
|
}
|
|
|
|
return asmResult;
|
|
}
|
|
|
|
private MesVerificationResult VerifyStartAutoProgramDownload(VerifyRecipeForAutoProgramDownloadRequest request)
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "LineControlMesInterceptorReceiver VerifyStartAutoProgramDownload called");
|
|
// map value from asm namespace to mes namespace
|
|
MesNamespace.VerifyRecipeForAutoProgramDownloadRequest report = MesNamespace.VerifyRecipeForAutoProgramDownloadRequestMapper.get(request);
|
|
AsmNamespace.MesVerificationResult asmResult = null;
|
|
try
|
|
{
|
|
MesNamespace.MesVerificationResult mesResult = _eventHandler.verifyStartAutoProgramDownload(report);
|
|
asmResult = MesNamespace.MesVerificationResultMapper.get(mesResult);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
asmResult = getFailureResult(e);
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "failed to process LineControlMesInterceptorReceiver.VerifyStartAutoProgramDownload", e);
|
|
}
|
|
|
|
return asmResult;
|
|
}
|
|
|
|
private MesVerificationResult VerifyRecipeDownload(VerifyRecipeDownloadRequest request)
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "LineControlMesInterceptorReceiver VerifyRecipeDownload called");
|
|
// map value from asm namespace to mes namespace
|
|
MesNamespace.VerifyRecipeDownloadRequest report = MesNamespace.VerifyRecipeDownloadRequestMapper.get(request);
|
|
AsmNamespace.MesVerificationResult asmResult = null;
|
|
try
|
|
{
|
|
MesNamespace.MesVerificationResult mesResult = _eventHandler.verifyRecipeDownload(report);
|
|
asmResult = MesNamespace.MesVerificationResultMapper.get(mesResult);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
asmResult = getFailureResult(e);
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "failed to process LineControlMesInterceptorReceiver.VerifyRecipeDownload", e);
|
|
}
|
|
|
|
return asmResult;
|
|
}
|
|
|
|
private MesVerificationResult VerifyRecipeActivationOnDekPrinter(VerifyRecipeActivationOnDekPrinterRequest request)
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "LineControlMesInterceptorReceiver VerifyRecipeActivationOnDekPrinterRequest called");
|
|
// map value from asm namespace to mes namespace
|
|
MesNamespace.VerifyRecipeActivationOnDekPrinterRequest report = MesNamespace.VerifyRecipeActivationOnDekPrinterRequestMapper.get(request);
|
|
AsmNamespace.MesVerificationResult asmResult = null;
|
|
try
|
|
{
|
|
MesNamespace.MesVerificationResult mesResult = _eventHandler.verifyRecipeActivationOnDekPrinter(report);
|
|
asmResult = MesNamespace.MesVerificationResultMapper.get(mesResult);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
asmResult = getFailureResult(e);
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "failed to process LineControlMesInterceptorReceiver.VerifyRecipeActivationOnDekPrinterRequest", e);
|
|
}
|
|
|
|
return asmResult;
|
|
}
|
|
|
|
private MesVerificationResult VerifyPcbForAutoProgramDownload(VerifyPcbForAutoProgramDownloadRequest request)
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "LineControlMesInterceptorReceiver VerifyPcbForAutoProgramDownloadRequest called");
|
|
// map value from asm namespace to mes namespace
|
|
MesNamespace.VerifyPcbForAutoProgramDownloadRequest report = MesNamespace.VerifyPcbForAutoProgramDownloadRequestMapper.get(request);
|
|
AsmNamespace.MesVerificationResult asmResult = null;
|
|
try
|
|
{
|
|
MesNamespace.MesVerificationResult mesResult = _eventHandler.verifyPcbForAutoProgramDownload(report);
|
|
asmResult = MesNamespace.MesVerificationResultMapper.get(mesResult);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
asmResult = getFailureResult(e);
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "failed to process LineControlMesInterceptorReceiver.VerifyPcbForAutoProgramDownloadRequest", e);
|
|
}
|
|
|
|
return asmResult;
|
|
}
|
|
|
|
private AsmNamespace.MesVerificationResult getFailureResult(Exception e)
|
|
{
|
|
MesVerificationResult result = new MesVerificationResult();
|
|
result.VerificationResult = 2; // 0=OK, 1=Rejected, 2=Error
|
|
result.Reason = e.Message;
|
|
return result;
|
|
}
|
|
#endregion
|
|
}
|
|
} |