#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
{
///
/// MESRequestHandler 的摘要说明
/// 利用反射将事件名称和方法对应起来
///
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 = Configurations.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("S1F3");
}
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 = Configurations.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";
//todo:需要加空的list
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, Configurations.conf.connectSetting.name + ".xml", "1");
string param = SECSUtil.ObjectToGetParam(downLoadFileParam);
HttpWebResponse response = HttpUtils.sentGET(Configurations.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();
}
}
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();
List SVID = new List();
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();
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();
List SVID = new List();
foreach (string s in svs)
{
SVID.Add(ushort.Parse(s));
}
item.SVID = SVID;
Command.S2F23Command(item);
}
}
}