initialize
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
#region Namespace
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using com.itac.mes.proxy.business;
|
||||
using com.itac.mes.tools;
|
||||
using com.itac.oib.client.customextensions;
|
||||
using Constants = com.itac.mes.tools.Constants;
|
||||
using OibClient = Asm.As.Oib.Client;
|
||||
#endregion
|
||||
|
||||
namespace Itac.Oib
|
||||
{
|
||||
/// <summary>
|
||||
/// Receiver class for the TraceService events
|
||||
/// </summary>
|
||||
public class BoardGateKeeperReceiver : IDisposable, IReceiver
|
||||
{
|
||||
#region Fields
|
||||
|
||||
OIBEventHandler _eventHandler;
|
||||
readonly OibClient.OibBoardGateKeeperEvents _oibBoardGateKeeperEvents;
|
||||
|
||||
public static string DefaultMachineFullPath { get; internal set; }
|
||||
|
||||
public BoardGateKeeperReceiver(OibClient.OibBoardGateKeeperEvents oibBoardGateKeeperEvents,
|
||||
OIBEventHandler eventHandler)
|
||||
{
|
||||
if (oibBoardGateKeeperEvents == null) throw new ArgumentNullException("oibBoardGateKeeperEvents");
|
||||
if (eventHandler == null) throw new ArgumentNullException("eventHandler");
|
||||
|
||||
this._oibBoardGateKeeperEvents = oibBoardGateKeeperEvents;
|
||||
this._eventHandler = eventHandler;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Start/Stop
|
||||
|
||||
public void Start()
|
||||
{
|
||||
_oibBoardGateKeeperEvents.Start();
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
_oibBoardGateKeeperEvents.Stop();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IDisposeable
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
if (_oibBoardGateKeeperEvents != null) { _oibBoardGateKeeperEvents.Dispose(); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public void virtualInkspotData(OibClient.CustomExtensions.VirtualInkspotHandlerBoardRequest virtualInkspotHandlerBoardRequest)
|
||||
{
|
||||
try
|
||||
{
|
||||
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "BoardGateKeeperReceiver.VirtualInkspotData");
|
||||
if (_eventHandler == null)
|
||||
{
|
||||
LogHandler.log(Constants.LOGGER, TraceEventType.Error, "calling BoardGateKeeperReceiver.VirtualInkspotData not performed, no eventHandler available");
|
||||
return;
|
||||
}
|
||||
|
||||
// map asm call values to itac struct
|
||||
com.itac.oib.client.customextensions.VirtualInkspotHandlerBoardRequest virtInkspotBoardRequest = VirtualInkspotHandlerBoardRequestMapper.get(virtualInkspotHandlerBoardRequest);
|
||||
// OIB 5.3 has a station information, oib 3 doesn't. If not available provide the first smt machines path to imsInterfaces.
|
||||
if (virtInkspotBoardRequest.BoardRequestData.Position.Station == null)
|
||||
{
|
||||
virtInkspotBoardRequest.BoardRequestData.Position.Station = DefaultMachineFullPath;
|
||||
}
|
||||
// execute call ar imsInterfaces
|
||||
com.itac.oib.boardgatekeeper.contracts.data.BoardRequestResult itacResult = _eventHandler.virtualInkspotBoardRequest(virtInkspotBoardRequest);
|
||||
|
||||
|
||||
// itacResult ist null: call to imsInterface failed (imsInterfaces not available).
|
||||
if (itacResult == null)
|
||||
{
|
||||
// setzen default Fehlertext
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.Reason = "no results from iTAC.MES.Suite";
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.RequestResult = "Rejected";
|
||||
for (int i = 0; i < virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates.Length; i++)
|
||||
{
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates[i].Place = false;
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates[i].Reason = "no results from iTAC.MES.Suite";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// copy values from itac back to asm return struct
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.RequestResult = itacResult.RequestResult;
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.Reason = itacResult.Reason;
|
||||
// virtualInkspotHandlerBoardRequest.BoardRequestResult.Reason = "no results from iTAC.MES.Suite"; // text info
|
||||
// virtualInkspotHandlerBoardRequest.BoardRequestResult.RequestResult = "Rejected"; // result code
|
||||
if (itacResult.VIHResult.SubPanelStates != null && itacResult.VIHResult.SubPanelStates.Length == virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates.Length)
|
||||
{
|
||||
// copy all subpanelstates from itacs result to asm return value
|
||||
for (int i = 0; i < itacResult.VIHResult.SubPanelStates.Length; i++)
|
||||
{
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates[i].Place = itacResult.VIHResult.SubPanelStates[i].Place;
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates[i].Reason = itacResult.VIHResult.SubPanelStates[i].Reason;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// The call failed exceptionally
|
||||
LogHandler.log(Constants.LOGGER, TraceEventType.Error, "calling BoardRequestResult in eventHandler failed", e);
|
||||
for (int i = 0; i < virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates.Length; i++)
|
||||
{
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates[i].Place = false;
|
||||
virtualInkspotHandlerBoardRequest.BoardRequestResult.VIHResult.SubPanelStates[i].Reason = e.Message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// called by incoming xml files
|
||||
public void virtualInkspotData(com.itac.oib.client.customextensions.VirtualInkspotHandlerBoardRequest requestData)
|
||||
{
|
||||
try
|
||||
{
|
||||
LogHandler.log(Constants.LOGGER, TraceEventType.Information, "BoardGateKeeperReceiver.VirtualInkspotData from xml-file");
|
||||
if (_eventHandler != null)
|
||||
{
|
||||
com.itac.oib.boardgatekeeper.contracts.data.BoardRequestResult itacResult = _eventHandler.virtualInkspotBoardRequest(requestData);
|
||||
// TODO: Rückgabe noch auswerten ?
|
||||
// requestData.setBoardRequestResult(itacResult);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
LogHandler.log(Constants.LOGGER, TraceEventType.Warning, "calling BoardGateKeeperReceiver.VirtualInkspotData not performed");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// der letzte Aufruf schlug fehl!!
|
||||
LogHandler.log(Constants.LOGGER, TraceEventType.Error, "calling BoardRequestResult in eventHandler failed", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user