initialize

This commit is contained in:
Pruefer
2025-06-06 09:15:13 +02:00
commit fa7c2730f1
5817 changed files with 1339670 additions and 0 deletions

View File

@@ -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);
}
}
}
}