This commit is contained in:
13118993771@163.com
2022-04-01 17:03:54 +08:00
commit 5e9d0f1e2d
1528 changed files with 1474439 additions and 0 deletions

38
MQ/MQConnectionCfg.cs Normal file
View File

@@ -0,0 +1,38 @@

using System;
using System.Xml.Serialization;
namespace ARI.EAP.HOST.MQ
{
[Serializable]
public class MQConnectionCfg
{
public MQConnectionCfg() { }
[XmlAttribute]
public string HostName { get; set; }
[XmlAttribute]
public string VirtualHost { get; set; }
[XmlAttribute]
public string UserName { get; set; }
[XmlAttribute]
public string Password { get; set; }
[XmlAttribute]
public int Port { get; set; }
[XmlAttribute]
public string ClientProvidedName { get; set; }
public string Exchange { get; set; }
public string Exchange_RTDB { get; set; }
public string EAP_Request_Queue { get; set; }
public string EAP_Response_Queue { get; set; }
public string MES_Request_Queue { get; set; }
public string MES_Response_Queue { get; set; }
public string EAP_Request_Queue_RTDB { get; set; }
public string EAP_Request_Queue_RoutingKey { get; set; }
public string EAP_Response_Queue_RoutingKey { get; set; }
public string MES_Request_Queue_RoutingKey { get; set; }
public string MES_Response_Queue_RoutingKey { get; set; }
public string Exchange_Name_Dle { get; set; }
public string Dead_Letter_RoutingKey { get; set; }
}
}

40
MQ/MQMessage.cs Normal file
View File

@@ -0,0 +1,40 @@
using ARI.EAP.HOST.SRD;
using Glorysoft.SECS.EQP;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ
{
[Serializable]
public class MQMessage
{
public Header header;
public object body;
public MQMessage() => header = new Header();
}
[Serializable]
public class Header
{
public string transactionId;
public string messageName;
public string messageType;
public string from;
public string to;
public string equipmentId;
public string sendTimestamp;
public Header()
{
messageType = "Request";
from = "EAP";
to = "MES";
transactionId = $"{Configuration.conf.connectSetting.name}_{System.DateTime.Now.ToString("yyyyMMddHHmmss")}" + new Random().Next(100).ToString();
equipmentId = Configuration.conf.connectSetting.name;
}
}
}

279
MQ/Mq.cs Normal file
View File

@@ -0,0 +1,279 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Serilog.Core;
using RabbitMQ.Client;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RabbitMQ.Client.Events;
using Glorysoft.SECS.EQP.Utilities;
using System.IO;
using ARI.EAP.HOST.Common;
using ARI.EAP.HOST.Handlers.EventHandlers;
using ARI.EAP.HOST.SRD;
using System.Threading;
using Polly.Retry;
using System.Net.Sockets;
using RabbitMQ.Client.Exceptions;
using Polly;
namespace ARI.EAP.HOST.MQ
{
public class Mq
{
public readonly static ConnectionFactory connectionFactory;
private IConnection conn;
private IModel Channel;
private EventingBasicConsumer consumer;
private EventingBasicConsumer consumer2;
private object sync_root = new object();
public bool IsConnected => conn != null && conn.IsOpen && !disposed;
public bool disposed;
static Mq()
{
connectionFactory = new ConnectionFactory()
{
HostName = Configuration.conf.mQConnectionCfg.HostName,
VirtualHost = Configuration.conf.mQConnectionCfg.VirtualHost,
UserName = Configuration.conf.mQConnectionCfg.UserName,
Password = Configuration.conf.mQConnectionCfg.Password,
Port = Configuration.conf.mQConnectionCfg.Port,
ClientProvidedName = Configuration.conf.mQConnectionCfg.ClientProvidedName,
RequestedHeartbeat = TimeSpan.FromSeconds(5)
};
}
public Mq()
{
Task.Run(() => CreatModel());
}
public bool TryConnect()
{
lock (sync_root)
{
RetryPolicy policy = Policy.Handle<SocketException>()
.Or<BrokerUnreachableException>()//ConnectionFactory.CreateConnection期间无法打开连接时抛出异常
.WaitAndRetryForever(retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, time) =>
{
LoggerService.MQLogger.Error(ex);
LoggerService.MQLogger.Debug("MQ connect retry");
});// 永远等待并重试,每次等待2的指数次冥的时间
policy.Execute(() =>
{
this.conn = connectionFactory.CreateConnection();
});
if (this.IsConnected)
{
//当连接被破坏时引发。如果在添加事件处理程序时连接已经被销毁对于此事件,事件处理程序将立即被触发。
this.conn.ConnectionShutdown += this.OnConnectionShutdown;
//在连接调用的回调中发生异常时发出信号。当ConnectionShutdown处理程序抛出异常时此事件将发出信号。如果将来有更多的事件出现在RabbitMQ.Client.IConnection上那么这个事件当这些事件处理程序中的一个抛出异常时它们将被标记。
this.conn.CallbackException += this.OnCallbackException;
this.conn.ConnectionBlocked += this.OnConnectionBlocked;//MQ发生阻塞抛出异常
LoggerService.MQLogger.Debug("MQ open success");
return true;
}
else
{
LoggerService.MQLogger.Debug("MQ connections could not be created and opened");
return false;
}
}
}
public bool CreatModel()
{
try
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
TryConnect();
Channel = conn.CreateModel();
Channel.ExchangeDeclare(Configuration.conf.mQConnectionCfg.Exchange, ExchangeType.Direct, durable: true);
Channel.ExchangeDeclare(Configuration.conf.mQConnectionCfg.Exchange_RTDB, ExchangeType.Direct, durable: true);
Dictionary<string, object> arguments = new Dictionary<string, object>();
arguments.Add("x-dead-letter-exchange", Configuration.conf.mQConnectionCfg.Exchange_Name_Dle);
arguments.Add("x-dead-letter-routing-key", Configuration.conf.mQConnectionCfg.Dead_Letter_RoutingKey);
Channel.QueueDeclare(Configuration.conf.mQConnectionCfg.EAP_Request_Queue, true, false, false, arguments);
Channel.QueueBind(Configuration.conf.mQConnectionCfg.EAP_Request_Queue, Configuration.conf.mQConnectionCfg.Exchange, Configuration.conf.mQConnectionCfg.EAP_Request_Queue_RoutingKey);
Channel.QueueDeclare(Configuration.conf.mQConnectionCfg.EAP_Response_Queue, true, false, false, arguments);
Channel.QueueBind(Configuration.conf.mQConnectionCfg.EAP_Response_Queue, Configuration.conf.mQConnectionCfg.Exchange, Configuration.conf.mQConnectionCfg.EAP_Response_Queue_RoutingKey);
consumer = new EventingBasicConsumer(Channel);
consumer.Received += MESResponse;
Channel.BasicConsume(Configuration.conf.mQConnectionCfg.EAP_Response_Queue, true, consumer);
Channel.QueueDeclare(Configuration.conf.mQConnectionCfg.MES_Request_Queue, true, false, false, arguments);
Channel.QueueBind(Configuration.conf.mQConnectionCfg.MES_Request_Queue, Configuration.conf.mQConnectionCfg.Exchange, Configuration.conf.mQConnectionCfg.MES_Request_Queue_RoutingKey);
Channel.QueueDeclare(Configuration.conf.mQConnectionCfg.MES_Response_Queue, true, false, false, arguments);
Channel.QueueBind(Configuration.conf.mQConnectionCfg.MES_Response_Queue, Configuration.conf.mQConnectionCfg.Exchange, Configuration.conf.mQConnectionCfg.MES_Response_Queue_RoutingKey);
Channel.QueueDeclare(Configuration.conf.mQConnectionCfg.EAP_Request_Queue_RTDB, true, false, false, arguments);
Channel.QueueBind(Configuration.conf.mQConnectionCfg.EAP_Request_Queue_RTDB, Configuration.conf.mQConnectionCfg.Exchange_RTDB,"");
consumer2 = new EventingBasicConsumer(Channel);
consumer2.Received += MESRequest;
Channel.BasicConsume(Configuration.conf.mQConnectionCfg.MES_Request_Queue, true, consumer2);
Global.MF.MQConnectStatusSet(true);
return true;
}
catch(Exception e)
{
LoggerService.MQLogger.Error("MQ open connection error:" + e);
return false;
}
}
public bool Close()
{
if (conn != null)
{
try
{
conn.Close();
conn.Dispose();
disposed = true;
Global.MF.MQConnectStatusSet(false);
LoggerService.MQLogger.Debug("MQ Connection Closed By User.");
return true;
}
catch (Exception ex)
{
LoggerService.MQLogger.Error("MQ Connection Close Error:" + ex);
return false;
}
}
return true;
}
void OnConnectionShutdown(object sender, ShutdownEventArgs ea)
{
Global.MF.MQConnectStatusSet(false);
if (this.disposed) return;
LoggerService.MQLogger.Debug("MQ is shutdown,try to reconnect");
if (CreatModel())
{
Global.MF.MQConnectStatusSet(true);
}
}
void OnCallbackException(object sender, CallbackExceptionEventArgs e)
{
Global.MF.MQConnectStatusSet(false);
if (this.disposed) return;
LoggerService.MQLogger.Debug("MQ throw an exception,try to reconnect");
if (CreatModel())
{
Global.MF.MQConnectStatusSet(true);
}
}
private void OnConnectionBlocked(object sender, ConnectionBlockedEventArgs e)
{
Global.MF.MQConnectStatusSet(false);
if (this.disposed) return;
LoggerService.MQLogger.Debug("MQ is shutdown,try to reconnect");
if (CreatModel())
{
Global.MF.MQConnectStatusSet(true);
}
}
private void MESResponse(object sender, BasicDeliverEventArgs ea)
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
MQMessage mQMessage = JsonConvert.DeserializeObject<MQMessage>(message);
Global.MF.addMQlog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "MQ=>H", LoggerService.Receive, mQMessage.header.messageName, mQMessage.header.transactionId);
LoggerService.MQLogger.Info(mQMessage.header.transactionId + " MQ Receive:" + SECSUtil.ToJson<MQMessage>(mQMessage) + System.Environment.NewLine + ".");
}
private void MESRequest(object sender, BasicDeliverEventArgs ea)
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
MQMessage mesMessage = JsonConvert.DeserializeObject<MQMessage>(message);
Global.MF.addMQlog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "MQ=>H", LoggerService.Receive, mesMessage.header.messageName, mesMessage.header.transactionId);
LoggerService.MQLogger.Info(mesMessage.header.transactionId + " MQ Receive:" + SECSUtil.ToJson<MQMessage>(mesMessage) + System.Environment.NewLine + ".");
Task.Run(() => MESRequestHandler.Execute(mesMessage));
}
public void EAPRequest(MQMessage message)
{
message.header.sendTimestamp = System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff");
var text = SECSUtil.ToJson<MQMessage>(message);
var data = Encoding.UTF8.GetBytes(text);
try
{
if (IsConnected)
{
Channel.BasicPublish(Configuration.conf.mQConnectionCfg.Exchange, Configuration.conf.mQConnectionCfg.EAP_Request_Queue_RoutingKey, null, data);
Global.MF.addMQlog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "H=>MQ", LoggerService.Send, message.header.messageName, message.header.transactionId);
LoggerService.MQLogger.Info(message.header.transactionId + " MQ Send:" + text + System.Environment.NewLine + ".");
}
else
{
Global.MF.MQConnectStatusSet(false);
LoggerService.MQLogger.Debug("MQ is closed");
return;
}
}
catch(Exception e)
{
LoggerService.MQLogger.Error("MQ send message error:" + text,e);
}
}
public void EAPResponse(MQMessage message)
{
message.header.sendTimestamp = System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff");
var text = SECSUtil.ToJson<MQMessage>(message);
var data = Encoding.UTF8.GetBytes(text);
try
{
if (IsConnected)
{
Channel.BasicPublish(Configuration.conf.mQConnectionCfg.Exchange, Configuration.conf.mQConnectionCfg.MES_Response_Queue_RoutingKey, null, data);
Global.MF.addMQlog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "H=>MQ", LoggerService.Send, message.header.messageName, message.header.transactionId);
LoggerService.MQLogger.Info(message.header.transactionId + " MQ Send:" + text + System.Environment.NewLine + ".");
}
else
{
Global.MF.MQConnectStatusSet(false);
LoggerService.MQLogger.Debug("MQ is closed");
return;
}
}
catch (Exception e)
{
LoggerService.MQLogger.Info("MQ send message error:" + text, e);
}
}
public void EAPRequestToRTDB(MQMessage message)
{
message.header.sendTimestamp = System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff");
var text = SECSUtil.ToJson<MQMessage>(message);
var data = Encoding.UTF8.GetBytes(text);
try
{
if (IsConnected)
{
Channel.BasicPublish(Configuration.conf.mQConnectionCfg.Exchange_RTDB, "", null, data);
}
else
{
return;
}
}
catch (Exception e)
{
LoggerService.MQLogger.Error("MQ send message error:" + text, e);
}
}
}
}

41
MQ/body/AlarmListBody.cs Normal file
View File

@@ -0,0 +1,41 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class AlarmListBody
{
public List<Alarm> alarmList;
public AlarmListBody()
{
alarmList = new List<Alarm>();
}
}
[Serializable]
public class Alarm
{
public string ALCD;
public string ALID;
public string ALTX;
}
}

View File

@@ -0,0 +1,33 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class AlarmReportBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string alarmCode;
public string alarmStatus;
public string alarmCategory;
public string alarmText;
}
}

View File

@@ -0,0 +1,31 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ContainerPlaceBody
{
public string eventTimestamp;
public string spoolingFlag;
public string locationId;
public string containerId;
public string portId;
}
}

View File

@@ -0,0 +1,37 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ControlStateChangeBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string currentControlState;
public string previousControlState;
public ControlStateChangeBody()
{
spoolingFlag = "0";
stateFlag = "0";
}
}
}

32
MQ/body/EAPStatusBody.cs Normal file
View File

@@ -0,0 +1,32 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class EapStatusBody
{
public string ip;
public string deviceId;
public string port;
public string equipmentStatus;
public string eapStatus;
public string mqStatus;
}
}

35
MQ/body/ECChangeBody .cs Normal file
View File

@@ -0,0 +1,35 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ECChangeBody
{
public string eventTimestamp;
public string spoolingFlag;
public Dictionary<string, string> ECList;
public ECChangeBody()
{
ECList = new Dictionary<string, string>();
}
}
}

33
MQ/body/ECRequestBody.cs Normal file
View File

@@ -0,0 +1,33 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ECRequestBody
{
public Dictionary<string, string> ECList;
public ECRequestBody()
{
ECList = new Dictionary<string, string>();
}
}
}

View File

@@ -0,0 +1,32 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
class EquipmentStateChangeBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string currentEquipmentState;
public string previousEquipmentState;
}
}

View File

@@ -0,0 +1,27 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class EstablishCommunication
{
public string eventTimestamp;
}
}

View File

@@ -0,0 +1,31 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class FormatErrorBody
{
public string eventName;
public string paramName;
public string paramValue;
public string paramFormat;
public string standardFormat;
}
}

View File

@@ -0,0 +1,32 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class LSTAMaterialReceivedBody
{
public string eventTimestamp;
public string spoolingFlag;
public string virtualSubstrateId;
public string locationId;
public string portId;
public string materialStatus;
}
}

View File

@@ -0,0 +1,37 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MachineDataBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public Dictionary<string,string> machineData;
public MachineDataBody()
{
spoolingFlag = "0";
stateFlag = "0";
machineData = new Dictionary<string, string>();
}
}
}

View File

@@ -0,0 +1,30 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaintenanceBody
{
public string eventTimestamp;
public string spoolingFlag;
public string maintenanceFlag;
}
}

View File

@@ -0,0 +1,40 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaterialHoldBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string materialStatus;
public string substrateId;
public string locationId;
public string target_A;
public string target_B;
public string target_C;
public string target_D;
public string reroutet_A;
public string reroutet_B;
public string reroutet_C;
public string reroutet_D;
}
}

View File

@@ -0,0 +1,33 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaterialReceivedBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string locationId;
public string substrateId;
public string ppExecName;
public string materialStatus;
}
}

View File

@@ -0,0 +1,39 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaterialReceivedForTransBody
{
public string eventTimestamp;
public string spoolingFlag;
public string materialStatus;
public string substrateId;
public string locationId;
public string target_A;
public string target_B;
public string target_C;
public string target_D;
public string reroutet_A;
public string reroutet_B;
public string reroutet_C;
public string reroutet_D;
}
}

View File

@@ -0,0 +1,40 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaterialRemovedBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string materialStatus;
public string substrateId;
public string locationId;
public string target_A;
public string target_B;
public string target_C;
public string target_D;
public string reroutet_A;
public string reroutet_B;
public string reroutet_C;
public string reroutet_D;
}
}

View File

@@ -0,0 +1,40 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaterialScrapBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string materialStatus;
public string substrateId;
public string locationId;
public string target_A;
public string target_B;
public string target_C;
public string target_D;
public string reroutet_A;
public string reroutet_B;
public string reroutet_C;
public string reroutet_D;
}
}

View File

@@ -0,0 +1,42 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaterialStoredToContainerBody
{
public string eventTimestamp;
public string spoolingFlag;
public string materialStatus;
public string substrateId;
public string locationId;
public string containerId;
public string portId;
public string slotId;
public string target_A;
public string target_B;
public string target_C;
public string target_D;
public string reroutet_A;
public string reroutet_B;
public string reroutet_C;
public string reroutet_D;
}
}

View File

@@ -0,0 +1,34 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class MaterialStoredToPalletBody
{
public string eventTimestamp;
public string locationId;
public string spoolingFlag;
public string port;
public string palletId;
public string substrateId;
public string materialStatus;
}
}

View File

@@ -0,0 +1,43 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class PalletCompletedBody
{
public string eventTimestamp;
public string locationId;
public string spoolingFlag;
public string port;
public string palletId;
public string grade;
public List<ContainerSlotMap> containerSlotMap;
public PalletCompletedBody() => containerSlotMap = new List<ContainerSlotMap>();
}
[Serializable]
public class ContainerSlotMap
{
public string slotNo;
public string substrateId;
public string materialStatus;
}
}

View File

@@ -0,0 +1,32 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class PalletRemovedBody
{
public string eventTimestamp;
public string locationId;
public string spoolingFlag;
public string port;
public string palletId;
}
}

View File

@@ -0,0 +1,42 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ProcessFinishBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string ppExecName;
public string materialStatus;
public string substrateId;
public string currentEquipmentState;
public string previousEquipmentState;
public Dictionary<string,string> processData;
public ProcessFinishBody()
{
spoolingFlag = "0";
stateFlag = "0";
processData = new Dictionary<string, string>();
}
}
}

View File

@@ -0,0 +1,30 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ProcessProgramChangeBody
{
public string eventTimestamp;
public string spoolingFlag;
public string ppChangeName;
public string ppChangeStatus;
}
}

View File

@@ -0,0 +1,31 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ProcessRecipeSelectedBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string substrateId;
public string ppExecName;
}
}

View File

@@ -0,0 +1,33 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class ProcessStartedBody
{
public string eventTimestamp;
public string spoolingFlag;
public string stateFlag;
public string currentEquipmentState;
public string substrateId;
public string ppExecName;
public string previousEquipmentState;
}
}

View File

@@ -0,0 +1,32 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class RecipeListSendBody
{
public List<string> recipeList;
public RecipeListSendBody()
{
recipeList = new List<string>();
}
}
}

38
MQ/body/ReturnBody.cs Normal file
View File

@@ -0,0 +1,38 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/28 10:05:52
* 版本V1.0.0
* 描述:
*
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
*
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
/// <summary>
/// ReturnBody 的摘要说明
/// </summary>
class ReturnBody
{
public string returnCode;
public ReturnBody(int returnCode)
{
this.returnCode = returnCode.ToString();
}
}
}

28
MQ/body/S5F3Body.cs Normal file
View File

@@ -0,0 +1,28 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class S5F3Body
{
public string eventTimestamp;
public string enableAlarmState;
}
}

36
MQ/body/SVListBody.cs Normal file
View File

@@ -0,0 +1,36 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class SVListBody
{
public string eventTimestamp;
public string CommunicationState;
public string ControlState;
public string PreviousControlState;
public string CurrentEquipmentState;
public string PreviousEquipmentState;
public string PPExecName;
public string SpoolingState;
public string SpoolCountActual;
public string SpoolCountTotal;
}
}

47
MQ/body/SlotListBody.cs Normal file
View File

@@ -0,0 +1,47 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class SlotListBody
{
public string eventTimestamp;
public string spoolingFlag;
public List<SlotList> slotList;
public SlotListBody() => slotList = new List<SlotList>();
}
[Serializable]
public class SlotList
{
public string locationId;
public string substrateId;
public string materialStatus;
public string target_A;
public string target_B;
public string target_C;
public string target_D;
public string reroute_A;
public string reroute_B;
public string reroute_C;
public string reroute_D;
}
}

View File

@@ -0,0 +1,32 @@
#region << >>
/*----------------------------------------------------------------
* 创建者Hupe
* 创建时间2021/10/19 16:26:51
* 版本V1.0.0
* 描述:
* ----------------------------------------------------------------
* 修改人:
* 时间:
* 修改说明:
* 版本V1.0.1
*----------------------------------------------------------------*/
#endregion << >>
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ARI.EAP.HOST.MQ.body
{
[Serializable]
public class UserLoggedOnBody
{
public string eventTimestamp;
public string spoolingFlag;
public string userLogFlag;
public string currentUserName;
public string previousUserName;
}
}