107 lines
3.7 KiB
C#
107 lines
3.7 KiB
C#
#region Namespace
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Threading;
|
|
using Asm.As.Oib.Client.CustomExtensions;
|
|
using com.itac.mes.proxy.business;
|
|
using com.itac.mes.tools;
|
|
using com.itac.oib.client.customextensions;
|
|
using Constants = com.itac.mes.tools.Constants;
|
|
#endregion
|
|
|
|
namespace Itac.Oib
|
|
{
|
|
/// <summary>
|
|
/// Receiver class for the Changeover manager events
|
|
/// </summary>
|
|
public class ChangeoverReceiver : IDisposable, IReceiver
|
|
{
|
|
#region Fields
|
|
|
|
public OIBEventHandler _eventHandler { get; set; }
|
|
private readonly ChangeoverManager _changeoverManager;
|
|
|
|
#endregion
|
|
|
|
#region Constructor
|
|
|
|
public ChangeoverReceiver(ChangeoverManager changeoverManager)
|
|
{
|
|
_changeoverManager = changeoverManager;
|
|
_changeoverManager.LineChangeover += new Asm.As.Oib.Client.CustomExtensions.LineChangeoverEvent(ChangeoverManagerLineChangeover);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region IDisposeable
|
|
|
|
public void Dispose()
|
|
{
|
|
if (_changeoverManager != null)
|
|
_changeoverManager.Dispose();
|
|
}
|
|
#endregion
|
|
|
|
#region Start/Stop
|
|
|
|
public void Start()
|
|
{
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Handling of events
|
|
|
|
public class LineChangeoverThread : ThreadTemplate<Asm.As.Oib.Client.CustomExtensions.LineChangeoverEventArgs>
|
|
{
|
|
public LineChangeoverThread(OIBEventHandler eventHandler, Asm.As.Oib.Client.CustomExtensions.LineChangeoverEventArgs request) : base(eventHandler, request) { }
|
|
|
|
public void ThreadFunction()
|
|
{
|
|
var mesNamespaceConformRequest = LineChangeoverEventArgsMapper.get(_request);
|
|
getEventHandler().lineChangeoverEvent(mesNamespaceConformRequest);
|
|
}
|
|
}
|
|
|
|
public void ChangeoverManagerLineChangeover(object sender, Asm.As.Oib.Client.CustomExtensions.LineChangeoverEventArgs args)
|
|
{
|
|
try
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, string.Format("Changeover completed for line '{0}'", args.Line.Name));
|
|
// interessante Infos:
|
|
// String conveyorModeString = args.Line.StationInLines[0].StationConveyorSystem.ConveyorMode.ToString();
|
|
// com.itac.oib.client.customextensions.LineChangeoverEventArgs lineChangeoverEvent = LineChangeoverEventArgsMapper.get(args);
|
|
// if (lineChangeoverEvent == null)
|
|
// {
|
|
// LogHandler.log(Constants.LOGGER, TraceEventType.Error, "LineChangeover not converted");
|
|
// return;
|
|
// }
|
|
var mmt = new LineChangeoverThread(_eventHandler, args);
|
|
var thread = new Thread(mmt.ThreadFunction);
|
|
thread.Start();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Information, string.Format("LineChangeover could not be pushed to java receiver"), e);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
internal com.itac.oib.client.customextensions.LineChangeoverEventArgs getCurrentLineProductionData()
|
|
{
|
|
com.itac.oib.client.customextensions.LineChangeoverEventArgs lineChangeoverEvent = LineChangeoverEventArgsMapper.get(_changeoverManager.GetCurrentLineProductionData());
|
|
if (lineChangeoverEvent == null)
|
|
{
|
|
LogHandler.log(Constants.LOGGER, TraceEventType.Error, "LineChangeover not converted");
|
|
return null;
|
|
}
|
|
return lineChangeoverEvent;
|
|
}
|
|
}
|
|
}
|