EAP
This commit is contained in:
96
Handlers/EventHandlers/AlarmClearedHandler.cs
Normal file
96
Handlers/EventHandlers/AlarmClearedHandler.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class AlarmClearedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "AlarmReport";
|
||||
AlarmReportBody alarmReportBody = new AlarmReportBody();
|
||||
alarmReportBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
alarmReportBody.alarmStatus = "0";
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("AlarmID"):
|
||||
{
|
||||
alarmReportBody.alarmCode = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
alarmReportBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
alarmReportBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("AlarmText"):
|
||||
{
|
||||
alarmReportBody.alarmText = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("AlarmCategory"):
|
||||
{
|
||||
alarmReportBody.alarmCategory = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = alarmReportBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
96
Handlers/EventHandlers/AlarmDetectedHandler.cs
Normal file
96
Handlers/EventHandlers/AlarmDetectedHandler.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class AlarmDetectedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "AlarmReport";
|
||||
AlarmReportBody alarmReportBody = new AlarmReportBody();
|
||||
alarmReportBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
alarmReportBody.alarmStatus = "1";
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("AlarmID"):
|
||||
{
|
||||
alarmReportBody.alarmCode = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
alarmReportBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
alarmReportBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("AlarmText"):
|
||||
{
|
||||
alarmReportBody.alarmText = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("AlarmCategory"):
|
||||
{
|
||||
alarmReportBody.alarmCategory = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = alarmReportBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
90
Handlers/EventHandlers/ContainerPlaceHandler.cs
Normal file
90
Handlers/EventHandlers/ContainerPlaceHandler.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class ContainerPlaceHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ContainerPlace";
|
||||
ContainerPlaceBody containerPlaceBody = new ContainerPlaceBody();
|
||||
containerPlaceBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
containerPlaceBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
containerPlaceBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
containerPlaceBody.portId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("ContainerID"):
|
||||
{
|
||||
containerPlaceBody.containerId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = containerPlaceBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
90
Handlers/EventHandlers/ContainerRemoveHandler.cs
Normal file
90
Handlers/EventHandlers/ContainerRemoveHandler.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class ContainerRemoveHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ContainerRemove";
|
||||
ContainerPlaceBody containerPlaceBody = new ContainerPlaceBody();
|
||||
containerPlaceBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
containerPlaceBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
containerPlaceBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
containerPlaceBody.portId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("ContainerID"):
|
||||
{
|
||||
containerPlaceBody.containerId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = containerPlaceBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Handlers/EventHandlers/ControlStateLocalHandler.cs
Normal file
87
Handlers/EventHandlers/ControlStateLocalHandler.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
public class ControlStateLocalHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ControlStateChange";
|
||||
ControlStateChangeBody controlStateChangeBody = new ControlStateChangeBody();
|
||||
controlStateChangeBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
controlStateChangeBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
controlStateChangeBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("CurrentControlState"):
|
||||
{
|
||||
controlStateChangeBody.currentControlState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PreviousControlState"):
|
||||
{
|
||||
controlStateChangeBody.previousControlState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = controlStateChangeBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Handlers/EventHandlers/ControlStateRemoteHandler .cs
Normal file
87
Handlers/EventHandlers/ControlStateRemoteHandler .cs
Normal file
@@ -0,0 +1,87 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
public class ControlStateRemoteHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ControlStateChange";
|
||||
ControlStateChangeBody controlStateChangeBody = new ControlStateChangeBody();
|
||||
controlStateChangeBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
controlStateChangeBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
controlStateChangeBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("CurrentControlState"):
|
||||
{
|
||||
controlStateChangeBody.currentControlState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PreviousControlState"):
|
||||
{
|
||||
controlStateChangeBody.previousControlState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = controlStateChangeBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
87
Handlers/EventHandlers/EquipmentStateChangeHandler.cs
Normal file
87
Handlers/EventHandlers/EquipmentStateChangeHandler.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
public class EquipmentStateChangeHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans,EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "EquipmentStateChange";
|
||||
EquipmentStateChangeBody equipmentStateChangeBody = new EquipmentStateChangeBody();
|
||||
equipmentStateChangeBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
equipmentStateChangeBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
equipmentStateChangeBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("CurrentEquipmentState"):
|
||||
{
|
||||
equipmentStateChangeBody.currentEquipmentState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PreviousEquipmentState"):
|
||||
{
|
||||
equipmentStateChangeBody.previousEquipmentState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = equipmentStateChangeBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
211
Handlers/EventHandlers/MESRequestHandler.cs
Normal file
211
Handlers/EventHandlers/MESRequestHandler.cs
Normal file
@@ -0,0 +1,211 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/27 16:08:09
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.Common.Entity;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using ARI.EAP.HOST.Utilities;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Commands;
|
||||
using Glorysoft.SECS.EQP.Message;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
/// <summary>
|
||||
/// MESRequestHandler 的摘要说明
|
||||
/// 利用反射将事件名称和方法对应起来
|
||||
/// </summary>
|
||||
public class MESRequestHandler
|
||||
{
|
||||
public static void Execute(MQMessage mQMessage)
|
||||
{
|
||||
try
|
||||
{
|
||||
Header header = mQMessage.header;
|
||||
JObject body = null;
|
||||
if (mQMessage.body != null)
|
||||
{
|
||||
body = JObject.Parse(mQMessage.body.ToString());
|
||||
}
|
||||
Type type = typeof(MESRequestHandler);
|
||||
MethodInfo method = type.GetMethod(header.messageName);
|
||||
if (method == null) throw new Exception("method is null");
|
||||
method.Invoke(null, new object[] { body });
|
||||
ReturnBody returnbody = new ReturnBody(0);
|
||||
mQMessage.body = returnbody;
|
||||
mQMessage.header.from = "EAP";
|
||||
mQMessage.header.to = "MES";
|
||||
mQMessage.header.messageType = "Response";
|
||||
Task.Run(() => MainForm.mq.EAPResponse(mQMessage));
|
||||
}
|
||||
catch (Exception e) {
|
||||
LoggerService.SECSLogger.Error("MES Request 接口映射出错:" + e);
|
||||
};
|
||||
}
|
||||
|
||||
public static void Target_Update(JObject body = null)
|
||||
{
|
||||
string VSubstrateId = body["virtualId"].ToString();
|
||||
string substrateId = body["substrateId"].ToString();
|
||||
S2F49Item item = new S2F49Item();
|
||||
item.DATAID = EquipmentStatus.commandCount++;
|
||||
item.OBJSPEC = "";
|
||||
item.RCMD = "NEW-SUBSTRATEID";
|
||||
Param p1 = new Param();
|
||||
p1.ParanName = "ToolName";
|
||||
p1.ParanVal = Configuration.conf.connectSetting.name;
|
||||
item.PARAMS.Add(p1);
|
||||
Param p2 = new Param();
|
||||
p2.ParanName = "STATIONID";
|
||||
p2.ParanVal = "LSTA_1";
|
||||
item.PARAMS.Add(p2);
|
||||
Param p3 = new Param();
|
||||
p3.ParanName = "VIRTUALSUBSTRATEID";
|
||||
p3.ParanVal = VSubstrateId;
|
||||
item.PARAMS.Add(p3);
|
||||
Param p4 = new Param();
|
||||
p4.ParanName = "SUBSTRATEID";
|
||||
p4.ParanVal = substrateId;
|
||||
item.PARAMS.Add(p4);
|
||||
Command.S2F49Command(item);
|
||||
}
|
||||
|
||||
public static void RequestChangeControlState(JObject body = null)
|
||||
{
|
||||
if (body["controlState"].ToString() == "4")
|
||||
{
|
||||
Global.MF.pushBotton("Local");
|
||||
}
|
||||
else if (body["controlState"].ToString() == "5")
|
||||
{
|
||||
Global.MF.pushBotton("Remote");
|
||||
}
|
||||
}
|
||||
|
||||
public static void RequestS1F3(JObject body = null)
|
||||
{
|
||||
Global.MF.pushBotton("S1F3Request");
|
||||
}
|
||||
|
||||
public static void RequestS2F13(JObject body = null)
|
||||
{
|
||||
Global.MF.pushBotton("S2F13");
|
||||
}
|
||||
|
||||
public static void RequestS7F19(JObject body = null)
|
||||
{
|
||||
Global.MF.pushBotton("S7F19");
|
||||
}
|
||||
|
||||
public static void RequestS7F5(JObject body = null)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static void RequestS5F5(JObject body = null)
|
||||
{
|
||||
Global.MF.pushBotton("S5F5");
|
||||
}
|
||||
|
||||
public static void RequestS5F3(JObject body = null)
|
||||
{
|
||||
if (EquipmentStatus.S5F3 == "AlarmEnable" && body["enabledorDisabled"].ToString().Equals("0"))
|
||||
{
|
||||
Global.MF.pushBotton("S5F3");
|
||||
}
|
||||
else if(EquipmentStatus.S5F3 == "AlarmDisable" && body["enabledorDisabled"].ToString().Equals("1"))
|
||||
{
|
||||
Global.MF.pushBotton("S5F3");
|
||||
}
|
||||
}
|
||||
|
||||
public static void RequestChangeE10State(JObject body = null)
|
||||
{
|
||||
S2F49Item item = new S2F49Item();
|
||||
item.DATAID = EquipmentStatus.commandCount++;
|
||||
item.OBJSPEC = "";
|
||||
item.RCMD = "EQSTATEUPDATE";
|
||||
Param p1 = new Param();
|
||||
p1.ParanName = "ToolName";
|
||||
p1.ParanVal = Configuration.conf.connectSetting.name;
|
||||
item.PARAMS.Add(p1);
|
||||
Param p2 = new Param();
|
||||
p2.ParanName = "NEWSTATE";
|
||||
p2.ParanVal = body["e10State"].ToString();
|
||||
item.PARAMS.Add(p2);
|
||||
Command.S2F49Command(item);
|
||||
}
|
||||
|
||||
public static void RequestSlotList(JObject body = null)
|
||||
{
|
||||
S2F49Item item = new S2F49Item();
|
||||
item.DATAID = EquipmentStatus.commandCount++;
|
||||
item.OBJSPEC = "";
|
||||
item.RCMD = "Slotlist_Request";
|
||||
Command.S2F49Command(item);
|
||||
}
|
||||
|
||||
public static void RequestStart(JObject body = null)
|
||||
{
|
||||
Global.MF.pushBotton("Connect");
|
||||
}
|
||||
|
||||
public static void RequestStop(JObject body = null)
|
||||
{
|
||||
if(SimulatorInfo.Instance.Context != null)
|
||||
SimulatorInfo.Instance.Context.Close();
|
||||
}
|
||||
|
||||
public static void UploadFile(JObject body = null)
|
||||
{
|
||||
long fileId = long.Parse(body["fileId"].ToString());
|
||||
DownLoadFileParam downLoadFileParam = new DownLoadFileParam(fileId, Constants.eapName + ".xml", "1");
|
||||
string param = SECSUtil.ObjectToGetParam(downLoadFileParam);
|
||||
HttpWebResponse response = HttpUtils.sentGET(Configuration.conf.httpConfiguration.fileDownloadUrl, param);
|
||||
if(response.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
using(Stream respnseStream = response.GetResponseStream())
|
||||
{
|
||||
using(Stream fileStream = new FileStream(Constants.configuerPath, FileMode.Create))
|
||||
{
|
||||
byte[] bArr = new byte[1024];
|
||||
int size = respnseStream.Read(bArr, 0, (int)bArr.Length);
|
||||
while (size > 0)
|
||||
{
|
||||
fileStream.Write(bArr, 0, size);
|
||||
size = respnseStream.Read(bArr, 0, (int)bArr.Length);
|
||||
}
|
||||
fileStream.Close();
|
||||
}
|
||||
respnseStream.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
83
Handlers/EventHandlers/Machine_Data_1Handler.cs
Normal file
83
Handlers/EventHandlers/Machine_Data_1Handler.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class Machine_Data_1Handler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MachineData";
|
||||
MachineDataBody machineDataBody = new MachineDataBody();
|
||||
machineDataBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
machineDataBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
machineDataBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
machineDataBody.machineData.Add($"{key}({name})", trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString());
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
mQMessage.body = machineDataBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
75
Handlers/EventHandlers/MaintenanceEndHandler.cs
Normal file
75
Handlers/EventHandlers/MaintenanceEndHandler.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaintenanceEndHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaintenanceStart/End";
|
||||
MaintenanceBody maintenanceBody = new MaintenanceBody();
|
||||
maintenanceBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
maintenanceBody.maintenanceFlag = "1";
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
maintenanceBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = maintenanceBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
75
Handlers/EventHandlers/MaintenanceStartHandler.cs
Normal file
75
Handlers/EventHandlers/MaintenanceStartHandler.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaintenanceStartHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaintenanceStart/End";
|
||||
MaintenanceBody maintenanceBody = new MaintenanceBody();
|
||||
maintenanceBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
maintenanceBody.maintenanceFlag = "0";
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
maintenanceBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = maintenanceBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Handlers/EventHandlers/MaterialReceivedForFILOBufferHandler.cs
Normal file
130
Handlers/EventHandlers/MaterialReceivedForFILOBufferHandler.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialReceivedForFILOBufferHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialReceivedForFILOBuffer";
|
||||
MaterialReceivedForTransBody materialReceivedForTransBody = new MaterialReceivedForTransBody();
|
||||
materialReceivedForTransBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialReceivedForTransBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialReceivedForTransBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialReceivedForTransBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialReceivedForTransBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialReceivedForTransBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialReceivedForTransBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialReceivedForTransBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialReceivedForTransBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialReceivedForTransBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Handlers/EventHandlers/MaterialReceivedForIoPortHandler.cs
Normal file
130
Handlers/EventHandlers/MaterialReceivedForIoPortHandler.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialReceivedForIoPortHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialReceivedForIoPort";
|
||||
MaterialReceivedForTransBody materialReceivedForTransBody = new MaterialReceivedForTransBody();
|
||||
materialReceivedForTransBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialReceivedForTransBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialReceivedForTransBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialReceivedForTransBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialReceivedForTransBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialReceivedForTransBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialReceivedForTransBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialReceivedForTransBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialReceivedForTransBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialReceivedForTransBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
95
Handlers/EventHandlers/MaterialReceivedForLSTAHandler.cs
Normal file
95
Handlers/EventHandlers/MaterialReceivedForLSTAHandler.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialReceivedForLSTAHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "LSTA-MaterialReceived";
|
||||
LSTAMaterialReceivedBody lSTAMaterialReceivedBody = new LSTAMaterialReceivedBody();
|
||||
lSTAMaterialReceivedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("VirtualSubstrateID"):
|
||||
{
|
||||
lSTAMaterialReceivedBody.virtualSubstrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
lSTAMaterialReceivedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StationID"):
|
||||
{
|
||||
lSTAMaterialReceivedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
lSTAMaterialReceivedBody.portId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
lSTAMaterialReceivedBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = lSTAMaterialReceivedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Handlers/EventHandlers/MaterialReceivedForTransHandler.cs
Normal file
130
Handlers/EventHandlers/MaterialReceivedForTransHandler.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialReceivedForTransHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialReceivedForTrans";
|
||||
MaterialReceivedForTransBody materialReceivedForTransBody = new MaterialReceivedForTransBody();
|
||||
materialReceivedForTransBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialReceivedForTransBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialReceivedForTransBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialReceivedForTransBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialReceivedForTransBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialReceivedForTransBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialReceivedForTransBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialReceivedForTransBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialReceivedForTransBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialReceivedForTransBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialReceivedForTransBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Handlers/EventHandlers/MaterialRemovedForFILOBufferHandler.cs
Normal file
130
Handlers/EventHandlers/MaterialRemovedForFILOBufferHandler.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialRemovedForFILOBufferHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialRemovedForFILOBuffer";
|
||||
MaterialRemovedBody materialRemovedBody = new MaterialRemovedBody();
|
||||
materialRemovedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialRemovedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialRemovedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialRemovedBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialRemovedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialRemovedBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialRemovedBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialRemovedBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialRemovedBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialRemovedBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialRemovedBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialRemovedBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialRemovedBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialRemovedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Handlers/EventHandlers/MaterialRemovedForIoPortHandler.cs
Normal file
130
Handlers/EventHandlers/MaterialRemovedForIoPortHandler.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialRemovedForIoPortHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialRemovedForIoPort";
|
||||
MaterialRemovedBody materialRemovedBody = new MaterialRemovedBody();
|
||||
materialRemovedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialRemovedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialRemovedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialRemovedBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialRemovedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialRemovedBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialRemovedBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialRemovedBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialRemovedBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialRemovedBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialRemovedBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialRemovedBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialRemovedBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialRemovedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Handlers/EventHandlers/MaterialRemovedForLSTAHandler.cs
Normal file
130
Handlers/EventHandlers/MaterialRemovedForLSTAHandler.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialRemovedForLSTAHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "LSTA-MaterialRemoved";
|
||||
MaterialRemovedBody materialRemovedBody = new MaterialRemovedBody();
|
||||
materialRemovedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialRemovedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialRemovedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialRemovedBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialRemovedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialRemovedBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialRemovedBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialRemovedBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialRemovedBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialRemovedBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialRemovedBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialRemovedBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialRemovedBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialRemovedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
Handlers/EventHandlers/MaterialRemovedForTransHandler.cs
Normal file
130
Handlers/EventHandlers/MaterialRemovedForTransHandler.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialRemovedForTransHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialRemovedForTrans";
|
||||
MaterialRemovedBody materialRemovedBody = new MaterialRemovedBody();
|
||||
materialRemovedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialRemovedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialRemovedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialRemovedBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialRemovedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialRemovedBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialRemovedBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialRemovedBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialRemovedBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialRemovedBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialRemovedBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialRemovedBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialRemovedBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialRemovedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
145
Handlers/EventHandlers/MaterialRemovedFromContainerHandler.cs
Normal file
145
Handlers/EventHandlers/MaterialRemovedFromContainerHandler.cs
Normal file
@@ -0,0 +1,145 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialRemovedFromContainerHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialRemovedFromContainer";
|
||||
MaterialStoredToContainerBody materialStoredToContainerBody = new MaterialStoredToContainerBody();
|
||||
materialStoredToContainerBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialStoredToContainerBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialStoredToContainerBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialStoredToContainerBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialStoredToContainerBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
materialStoredToContainerBody.portId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("ContainerID"):
|
||||
{
|
||||
materialStoredToContainerBody.containerId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("SlotID"):
|
||||
{
|
||||
materialStoredToContainerBody.slotId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialStoredToContainerBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialStoredToContainerBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialStoredToContainerBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialStoredToContainerBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialStoredToContainerBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
145
Handlers/EventHandlers/MaterialStoredToContainerHandler.cs
Normal file
145
Handlers/EventHandlers/MaterialStoredToContainerHandler.cs
Normal file
@@ -0,0 +1,145 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialStoredToContainerHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialStoredToContainer";
|
||||
MaterialStoredToContainerBody materialStoredToContainerBody = new MaterialStoredToContainerBody();
|
||||
materialStoredToContainerBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialStoredToContainerBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialStoredToContainerBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialStoredToContainerBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialStoredToContainerBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
materialStoredToContainerBody.portId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("ContainerID"):
|
||||
{
|
||||
materialStoredToContainerBody.containerId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("SlotID"):
|
||||
{
|
||||
materialStoredToContainerBody.slotId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialStoredToContainerBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialStoredToContainerBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialStoredToContainerBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialStoredToContainerBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialStoredToContainerBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialStoredToContainerBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
99
Handlers/EventHandlers/MaterialStoredToPalletHandler.cs
Normal file
99
Handlers/EventHandlers/MaterialStoredToPalletHandler.cs
Normal file
@@ -0,0 +1,99 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class MaterialStoredToPalletHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialStoredToPallet";
|
||||
MaterialStoredToPalletBody materialStoredToPalletBody = new MaterialStoredToPalletBody();
|
||||
materialStoredToPalletBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
materialStoredToPalletBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialStoredToPalletBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
materialStoredToPalletBody.port = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PalletID"):
|
||||
{
|
||||
materialStoredToPalletBody.palletId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialStoredToPalletBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialStoredToPalletBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialStoredToPalletBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
135
Handlers/EventHandlers/Material_HoldHandler.cs
Normal file
135
Handlers/EventHandlers/Material_HoldHandler.cs
Normal file
@@ -0,0 +1,135 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class Material_HoldHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialHold";
|
||||
MaterialHoldBody materialHoldBody = new MaterialHoldBody();
|
||||
materialHoldBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialHoldBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialHoldBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialHoldBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
materialHoldBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialHoldBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialHoldBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialHoldBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialHoldBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialHoldBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialHoldBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialHoldBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialHoldBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialHoldBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialHoldBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
100
Handlers/EventHandlers/Material_ReceivedHandler.cs
Normal file
100
Handlers/EventHandlers/Material_ReceivedHandler.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class Material_ReceivedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialReceived";
|
||||
MaterialReceivedBody materialReceivedBody = new MaterialReceivedBody();
|
||||
materialReceivedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialReceivedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialReceivedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialReceivedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
materialReceivedBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PPExecName"):
|
||||
{
|
||||
materialReceivedBody.ppExecName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialReceivedBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialReceivedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
135
Handlers/EventHandlers/Material_RemovedHandler.cs
Normal file
135
Handlers/EventHandlers/Material_RemovedHandler.cs
Normal file
@@ -0,0 +1,135 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class Material_RemovedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialRemoved";
|
||||
MaterialRemovedBody materialRemovedBody = new MaterialRemovedBody();
|
||||
materialRemovedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialRemovedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialRemovedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialRemovedBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
materialRemovedBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialRemovedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialRemovedBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialRemovedBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialRemovedBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialRemovedBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialRemovedBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialRemovedBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialRemovedBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialRemovedBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialRemovedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
135
Handlers/EventHandlers/Material_ScrapHandler.cs
Normal file
135
Handlers/EventHandlers/Material_ScrapHandler.cs
Normal file
@@ -0,0 +1,135 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class Material_ScrapHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "MaterialScrap";
|
||||
MaterialScrapBody materialScrapBody = new MaterialScrapBody();
|
||||
materialScrapBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
materialScrapBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
materialScrapBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
materialScrapBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
materialScrapBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
materialScrapBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target A"):
|
||||
{
|
||||
materialScrapBody.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target B"):
|
||||
{
|
||||
materialScrapBody.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target C"):
|
||||
{
|
||||
materialScrapBody.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Target D"):
|
||||
{
|
||||
materialScrapBody.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute A"):
|
||||
{
|
||||
materialScrapBody.reroutet_A = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute B"):
|
||||
{
|
||||
materialScrapBody.reroutet_B = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute C"):
|
||||
{
|
||||
materialScrapBody.reroutet_C = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Reroute D"):
|
||||
{
|
||||
materialScrapBody.reroutet_D = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = materialScrapBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
106
Handlers/EventHandlers/PalletCompletedHandler.cs
Normal file
106
Handlers/EventHandlers/PalletCompletedHandler.cs
Normal file
@@ -0,0 +1,106 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class PalletCompletedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "PalletCompleted";
|
||||
PalletCompletedBody palletCompletedBody = new PalletCompletedBody();
|
||||
palletCompletedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
palletCompletedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
palletCompletedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
palletCompletedBody.port = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PalletID"):
|
||||
{
|
||||
palletCompletedBody.palletId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Grade"):
|
||||
{
|
||||
palletCompletedBody.grade = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("ContainerSlotMap"):
|
||||
{
|
||||
for (int i = 1; i < trans.Primary.Root.Item(3).Item(2).Item(index).ItemCount + 1;i++)
|
||||
{
|
||||
ContainerSlotMap containerSlotMap = new ContainerSlotMap();
|
||||
containerSlotMap.slotNo = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(1).Value.ToString();
|
||||
containerSlotMap.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(2).Value.ToString();
|
||||
containerSlotMap.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(3).Value.ToString();
|
||||
palletCompletedBody.containerSlotMap.Add(containerSlotMap);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = palletCompletedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
89
Handlers/EventHandlers/PalletRemovedHandler.cs
Normal file
89
Handlers/EventHandlers/PalletRemovedHandler.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class PalletRemovedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "PalletRemoved";
|
||||
PalletRemovedBody palletRemovedBody = new PalletRemovedBody();
|
||||
palletRemovedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
palletRemovedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("LocationID"):
|
||||
{
|
||||
palletRemovedBody.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PortID"):
|
||||
{
|
||||
palletRemovedBody.port = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PalletID"):
|
||||
{
|
||||
palletRemovedBody.palletId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = palletRemovedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
85
Handlers/EventHandlers/ProcessProgramChangeBodyHandler.cs
Normal file
85
Handlers/EventHandlers/ProcessProgramChangeBodyHandler.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class ProcessProgramChangeBodyHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ProcessProgramChange";
|
||||
ProcessProgramChangeBody processProgramChangeBody = new ProcessProgramChangeBody();
|
||||
processProgramChangeBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("RecipeName"):
|
||||
{
|
||||
processProgramChangeBody.ppChangeName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
processProgramChangeBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("RecipeChangeType"):
|
||||
{
|
||||
processProgramChangeBody.ppChangeStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = processProgramChangeBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
90
Handlers/EventHandlers/ProcessRecipeSelectedHandler.cs
Normal file
90
Handlers/EventHandlers/ProcessRecipeSelectedHandler.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class ProcessRecipeSelectedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ProcessRecipeSelected";
|
||||
ProcessRecipeSelectedBody processRecipeSelectedBody = new ProcessRecipeSelectedBody();
|
||||
processRecipeSelectedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
processRecipeSelectedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
processRecipeSelectedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
processRecipeSelectedBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PPExecName"):
|
||||
{
|
||||
processRecipeSelectedBody.ppExecName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = processRecipeSelectedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
220
Handlers/EventHandlers/Process_FinishHandler.cs
Normal file
220
Handlers/EventHandlers/Process_FinishHandler.cs
Normal file
@@ -0,0 +1,220 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class Process_FinishHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ProcessFinished";
|
||||
ProcessFinishBody processFinishBody = new ProcessFinishBody();
|
||||
processFinishBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
processFinishBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
processFinishBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
processFinishBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
}
|
||||
break;
|
||||
case ("PPExecName"):
|
||||
{
|
||||
processFinishBody.ppExecName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("MaterialStatus"):
|
||||
{
|
||||
processFinishBody.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("CurrentEquipmentState"):
|
||||
{
|
||||
processFinishBody.currentEquipmentState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PreviousEquipmentState"):
|
||||
{
|
||||
processFinishBody.previousEquipmentState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
formatCheck(key, trans.Primary.Root.Item(3).Item(2).Item(index));
|
||||
processFinishBody.processData.Add($"{name}", trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString());
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
mQMessage.body = processFinishBody;
|
||||
Task.Run(() =>
|
||||
{
|
||||
MainForm.mq.EAPRequest(mQMessage);
|
||||
MainForm.mq.EAPRequestToRTDB(mQMessage);
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void formatCheck(uint id,SECSItem item)
|
||||
{
|
||||
eSECS_FORMAT standardFormat = Configuration.conf.sRDConfiguration.GetSECS_FORMAT(id);
|
||||
eSECS_FORMAT format = item.Format;
|
||||
if (standardFormat != format)
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "FormatError";
|
||||
FormatErrorBody formatErrorBody = new FormatErrorBody();
|
||||
formatErrorBody.eventName = "ProcessFinished";
|
||||
formatErrorBody.paramName = Configuration.conf.sRDConfiguration.tryGetSVOrDV(id);
|
||||
formatErrorBody.paramValue = item.Value.ToString();
|
||||
switch (format)
|
||||
{
|
||||
case eSECS_FORMAT.LIST:
|
||||
formatErrorBody.paramFormat = "L";
|
||||
break;
|
||||
case eSECS_FORMAT.BOOLEAN:
|
||||
formatErrorBody.paramFormat = "B";
|
||||
break;
|
||||
case eSECS_FORMAT.ASCII:
|
||||
formatErrorBody.paramFormat = "A";
|
||||
break;
|
||||
case eSECS_FORMAT.I8:
|
||||
formatErrorBody.paramFormat = "I8";
|
||||
break;
|
||||
case eSECS_FORMAT.I2:
|
||||
formatErrorBody.paramFormat = "I2";
|
||||
break;
|
||||
case eSECS_FORMAT.I1:
|
||||
formatErrorBody.paramFormat = "I1";
|
||||
break;
|
||||
case eSECS_FORMAT.I4:
|
||||
formatErrorBody.paramFormat = "I4";
|
||||
break;
|
||||
case eSECS_FORMAT.U1:
|
||||
formatErrorBody.paramFormat = "U1";
|
||||
break;
|
||||
case eSECS_FORMAT.U2:
|
||||
formatErrorBody.paramFormat = "U2";
|
||||
break;
|
||||
case eSECS_FORMAT.U4:
|
||||
formatErrorBody.paramFormat = "U4";
|
||||
break;
|
||||
case eSECS_FORMAT.U8:
|
||||
formatErrorBody.paramFormat = "U8";
|
||||
break;
|
||||
case eSECS_FORMAT.F8:
|
||||
formatErrorBody.paramFormat = "F8";
|
||||
break;
|
||||
case eSECS_FORMAT.F4:
|
||||
formatErrorBody.paramFormat = "F4";
|
||||
break;
|
||||
default:
|
||||
formatErrorBody.paramFormat = "A";
|
||||
break;
|
||||
}
|
||||
switch(standardFormat)
|
||||
{
|
||||
case eSECS_FORMAT.LIST:
|
||||
formatErrorBody.standardFormat = "L";
|
||||
break;
|
||||
case eSECS_FORMAT.BOOLEAN:
|
||||
formatErrorBody.standardFormat = "B";
|
||||
break;
|
||||
case eSECS_FORMAT.ASCII:
|
||||
formatErrorBody.standardFormat = "A";
|
||||
break;
|
||||
case eSECS_FORMAT.I8:
|
||||
formatErrorBody.standardFormat = "I8";
|
||||
break;
|
||||
case eSECS_FORMAT.I2:
|
||||
formatErrorBody.standardFormat = "I2";
|
||||
break;
|
||||
case eSECS_FORMAT.I1:
|
||||
formatErrorBody.standardFormat = "I1";
|
||||
break;
|
||||
case eSECS_FORMAT.I4:
|
||||
formatErrorBody.standardFormat = "I4";
|
||||
break;
|
||||
case eSECS_FORMAT.U1:
|
||||
formatErrorBody.standardFormat = "U1";
|
||||
break;
|
||||
case eSECS_FORMAT.U2:
|
||||
formatErrorBody.standardFormat = "U2";
|
||||
break;
|
||||
case eSECS_FORMAT.U4:
|
||||
formatErrorBody.standardFormat = "U4";
|
||||
break;
|
||||
case eSECS_FORMAT.U8:
|
||||
formatErrorBody.standardFormat = "U8";
|
||||
break;
|
||||
case eSECS_FORMAT.F8:
|
||||
formatErrorBody.standardFormat = "F8";
|
||||
break;
|
||||
case eSECS_FORMAT.F4:
|
||||
formatErrorBody.standardFormat = "F4";
|
||||
break;
|
||||
default:
|
||||
formatErrorBody.standardFormat = "A";
|
||||
break;
|
||||
}
|
||||
mQMessage.body = formatErrorBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
100
Handlers/EventHandlers/Process_StartHandler.cs
Normal file
100
Handlers/EventHandlers/Process_StartHandler.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class Process_StartHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "ProcessStarted";
|
||||
ProcessStartedBody processStartedBody = new ProcessStartedBody();
|
||||
processStartedBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("SubstrateID"):
|
||||
{
|
||||
processStartedBody.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
|
||||
}
|
||||
break;
|
||||
case ("Clock"):
|
||||
{
|
||||
processStartedBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("CurrentEquipmentState"):
|
||||
{
|
||||
processStartedBody.currentEquipmentState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("StateFlag"):
|
||||
{
|
||||
processStartedBody.stateFlag = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PPExecName"):
|
||||
{
|
||||
processStartedBody.ppExecName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PreviousEquipmentState"):
|
||||
{
|
||||
processStartedBody.previousEquipmentState = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = processStartedBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
94
Handlers/EventHandlers/SlotlistHandler.cs
Normal file
94
Handlers/EventHandlers/SlotlistHandler.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class SlotlistHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "SlotList";
|
||||
SlotListBody slotListBody = new SlotListBody();
|
||||
slotListBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
slotListBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("SlotList"):
|
||||
{
|
||||
for (int i = 1; i < trans.Primary.Root.Item(3).Item(2).Item(index).ItemCount + 1;i++)
|
||||
{
|
||||
SlotList slot = new SlotList();
|
||||
slot.substrateId = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(1).Value.ToString();
|
||||
slot.locationId = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(2).Value.ToString();
|
||||
slot.materialStatus = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(3).Value.ToString();
|
||||
slot.target_A = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(4).Value.ToString();
|
||||
slot.target_B = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(5).Value.ToString();
|
||||
slot.target_C = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(6).Value.ToString();
|
||||
slot.target_D = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(7).Value.ToString();
|
||||
slot.reroute_A = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(8).Value.ToString();
|
||||
slot.reroute_B = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(9).Value.ToString();
|
||||
slot.reroute_C = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(10).Value.ToString();
|
||||
slot.reroute_D = trans.Primary.Root.Item(3).Item(2).Item(index).Item(i).Item(11).Value.ToString();
|
||||
slotListBody.slotList.Add(slot);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = slotListBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
54
Handlers/EventHandlers/SpoolingDeactivatedHandler.cs
Normal file
54
Handlers/EventHandlers/SpoolingDeactivatedHandler.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
public class SpoolingDeactivatedHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
Scenario scenario = SimulatorInfo.Instance.Scenarios.Scenarios.FirstOrDefault(sc => sc.Name == "Init");
|
||||
if (scenario.CurrentStep == 8)
|
||||
{
|
||||
scenario.ExecuteNextStep();
|
||||
}
|
||||
EquipmentStatus.SpoolingFlag = 0;
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
85
Handlers/EventHandlers/UserLoggedOffHandler.cs
Normal file
85
Handlers/EventHandlers/UserLoggedOffHandler.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class UserLoggedOffHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "UserLoginLogout";
|
||||
UserLoggedOnBody userLoggedOnBody = new UserLoggedOnBody();
|
||||
userLoggedOnBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
userLoggedOnBody.userLogFlag = "1";
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
userLoggedOnBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("UserName"):
|
||||
{
|
||||
userLoggedOnBody.currentUserName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PreviousUserName"):
|
||||
{
|
||||
userLoggedOnBody.previousUserName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = userLoggedOnBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
85
Handlers/EventHandlers/UserLoggedOnHandler.cs
Normal file
85
Handlers/EventHandlers/UserLoggedOnHandler.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
#region << 版 本 注 释 >>
|
||||
/*----------------------------------------------------------------
|
||||
* 创建者:Hupe
|
||||
* 创建时间:2021/10/14 20:04:50
|
||||
* 版本:V1.0.0
|
||||
* 描述:
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* 修改人:
|
||||
* 时间:
|
||||
* 修改说明:
|
||||
*
|
||||
* 版本:V1.0.1
|
||||
*----------------------------------------------------------------*/
|
||||
#endregion << 版 本 注 释 >>
|
||||
|
||||
using ARI.EAP.HOST.Common;
|
||||
using ARI.EAP.HOST.MQ;
|
||||
using ARI.EAP.HOST.MQ.body;
|
||||
using ARI.EAP.HOST.SRD;
|
||||
using Glorysoft.SECS.EQP;
|
||||
using Glorysoft.SECS.EQP.Common;
|
||||
using Glorysoft.SECS.EQP.Utilities;
|
||||
using Glorysoft.SECSwell;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ARI.EAP.HOST.Handlers.EventHandlers
|
||||
{
|
||||
|
||||
public class UserLoggedOnHandler : IEventHandler
|
||||
{
|
||||
public void Execute(SECSTransaction trans, EVENT even)
|
||||
{
|
||||
try
|
||||
{
|
||||
MQMessage mQMessage = new MQMessage();
|
||||
mQMessage.header.messageName = "UserLoginLogout";
|
||||
UserLoggedOnBody userLoggedOnBody = new UserLoggedOnBody();
|
||||
userLoggedOnBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
|
||||
userLoggedOnBody.userLogFlag = "0";
|
||||
int index = 1;
|
||||
foreach (var key in even.validVariables)
|
||||
{
|
||||
string name = Configuration.conf.sRDConfiguration.tryGetSVOrDV(key);
|
||||
switch (name)
|
||||
{
|
||||
case ("Clock"):
|
||||
{
|
||||
userLoggedOnBody.eventTimestamp = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("UserName"):
|
||||
{
|
||||
userLoggedOnBody.currentUserName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
case ("PreviousUserName"):
|
||||
{
|
||||
userLoggedOnBody.previousUserName = trans.Primary.Root.Item(3).Item(2).Item(index).Value.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
trans.Primary.Root.Item(3).Item(2).Item(index).Name = name;
|
||||
index++;
|
||||
}
|
||||
Global.MF.addlog(LoggerService.EtoH, $"S{trans.Primary.Stream}F{trans.Primary.Function}", LoggerService.Receive, even.name, "=" + trans.Primary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Primary);
|
||||
Global.MF.addlog(LoggerService.HtoE, $"S{trans.Secondary.Stream}F{trans.Secondary.Function}", LoggerService.Send, even.name, "=" + trans.Secondary.SystemBytes.ToString());
|
||||
LoggerService.SECSLogger.Info(trans.Secondary);
|
||||
|
||||
mQMessage.body = userLoggedOnBody;
|
||||
Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LoggerService.SECSLogger.Error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user