2022-04-01 17:03:54 +08:00
|
|
|
|
#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";
|
2022-12-16 13:01:24 +08:00
|
|
|
|
p1.ParanVal = Configurations.conf.connectSetting.name;
|
2022-04-01 17:03:54 +08:00
|
|
|
|
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)
|
|
|
|
|
{
|
2022-12-16 13:01:24 +08:00
|
|
|
|
Global.MF.pushBotton("S1F3");
|
2022-04-01 17:03:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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";
|
2022-12-16 13:01:24 +08:00
|
|
|
|
p1.ParanVal = Configurations.conf.connectSetting.name;
|
2022-04-01 17:03:54 +08:00
|
|
|
|
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";
|
2022-07-27 14:46:20 +08:00
|
|
|
|
//todo:需要加空的list
|
2022-04-01 17:03:54 +08:00
|
|
|
|
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());
|
2022-12-16 13:01:24 +08:00
|
|
|
|
DownLoadFileParam downLoadFileParam = new DownLoadFileParam(fileId, Configurations.conf.connectSetting.name + ".xml", "1");
|
2022-04-01 17:03:54 +08:00
|
|
|
|
string param = SECSUtil.ObjectToGetParam(downLoadFileParam);
|
2022-12-16 13:01:24 +08:00
|
|
|
|
HttpWebResponse response = HttpUtils.sentGET(Configurations.conf.httpConfiguration.fileDownloadUrl, param);
|
2022-04-01 17:03:54 +08:00
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-12-16 13:01:24 +08:00
|
|
|
|
|
|
|
|
|
public static void RequestTraceDataInit(JObject body = null)
|
|
|
|
|
{
|
|
|
|
|
S2F23Item item = new S2F23Item();
|
|
|
|
|
if (string.IsNullOrEmpty(body["totsmp"].ToString())|| string.IsNullOrEmpty(body["dsper"].ToString())|| string.IsNullOrEmpty(body["state"].ToString()))
|
|
|
|
|
{
|
|
|
|
|
LoggerService.MQLogger.Debug("值不能为空");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (body["state"].ToString().Equals("Y"))
|
|
|
|
|
{
|
|
|
|
|
item.TOTSMP = ushort.Parse(body["totsmp"].ToString());
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.TOTSMP = 0;
|
|
|
|
|
}
|
|
|
|
|
string dsper = body["dsper"].ToString();
|
|
|
|
|
while(dsper.Length < 6)
|
|
|
|
|
{
|
|
|
|
|
dsper = "0" + dsper;
|
|
|
|
|
}
|
|
|
|
|
item.DSPER_hhmmss = dsper;
|
|
|
|
|
item.TRID = 1;
|
|
|
|
|
item.REPGSZ = 1;
|
|
|
|
|
string[] svs = body["vID"].ToString().FromJson<string[]>();
|
|
|
|
|
List<ushort> SVID = new List<ushort>();
|
|
|
|
|
foreach (string s in svs)
|
|
|
|
|
{
|
|
|
|
|
SVID.Add(ushort.Parse(s));
|
|
|
|
|
}
|
|
|
|
|
item.SVID = SVID;
|
|
|
|
|
foreach(WorkFlow workFlow in SimulatorInfo.Instance.Scenarios.Scenarios.FirstOrDefault(sc => sc.Name == "Init").WorkFlows)
|
|
|
|
|
{
|
|
|
|
|
if (workFlow.MessageName.Equals("S2F23"))
|
|
|
|
|
{
|
|
|
|
|
workFlow.MessageContent = item.ToJson<S2F23Item>();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void RequestTraceData(JObject body = null)
|
|
|
|
|
{
|
|
|
|
|
S2F23Item item = new S2F23Item();
|
|
|
|
|
if (string.IsNullOrEmpty(body["totsmp"].ToString()) || string.IsNullOrEmpty(body["dsper"].ToString()) || string.IsNullOrEmpty(body["state"].ToString()))
|
|
|
|
|
{
|
|
|
|
|
LoggerService.MQLogger.Debug("值不能为空");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (body["state"].ToString().Equals("Y"))
|
|
|
|
|
{
|
|
|
|
|
item.TOTSMP = ushort.Parse(body["totsmp"].ToString());
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.TOTSMP = 0;
|
|
|
|
|
}
|
|
|
|
|
string dsper = body["dsper"].ToString();
|
|
|
|
|
while (dsper.Length < 6)
|
|
|
|
|
{
|
|
|
|
|
dsper = "0" + dsper;
|
|
|
|
|
}
|
|
|
|
|
item.DSPER_hhmmss = dsper;
|
|
|
|
|
item.TRID = 1;
|
|
|
|
|
item.REPGSZ = 1;
|
|
|
|
|
string[] svs = body["vID"].ToString().FromJson<string[]>();
|
|
|
|
|
List<ushort> SVID = new List<ushort>();
|
|
|
|
|
foreach (string s in svs)
|
|
|
|
|
{
|
|
|
|
|
SVID.Add(ushort.Parse(s));
|
|
|
|
|
}
|
|
|
|
|
item.SVID = SVID;
|
|
|
|
|
|
|
|
|
|
Command.S2F23Command(item);
|
|
|
|
|
}
|
2022-04-01 17:03:54 +08:00
|
|
|
|
}
|
|
|
|
|
}
|