|
@@ -8,6 +8,10 @@ using Aitex.Core.Util;
|
|
|
using CyberX8_Core;
|
|
|
using Aitex.Core.RT.DataCenter;
|
|
|
using System.Linq;
|
|
|
+using MECF.Framework.Common.DataCenter;
|
|
|
+using Aitex.Core.RT.ConfigCenter;
|
|
|
+using CyberX8_Simulator.Instances;
|
|
|
+using System.Collections.Generic;
|
|
|
|
|
|
namespace CyberX8_Simulator.Devices
|
|
|
{
|
|
@@ -37,6 +41,8 @@ namespace CyberX8_Simulator.Devices
|
|
|
private string _carrier1ID = "12345678";
|
|
|
private string _carrier2ID = "12345678";
|
|
|
private string _carrier3ID = "12345678";
|
|
|
+ private List<int> _lpStationNumber;
|
|
|
+ private List<int> _dummyStationNumber;
|
|
|
public string SlotMap
|
|
|
{
|
|
|
get { return string.Join("", _slotMap); }
|
|
@@ -78,6 +84,7 @@ namespace CyberX8_Simulator.Devices
|
|
|
_slotDummy[i]="0";
|
|
|
}
|
|
|
_HwThread = new PeriodicJob(5000, OnSendEvent, "EfemHardware", true);
|
|
|
+ GetStationNumber();
|
|
|
}
|
|
|
|
|
|
private bool OnSendEvent()
|
|
@@ -88,42 +95,29 @@ namespace CyberX8_Simulator.Devices
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+ private void GetStationNumber()
|
|
|
+ {
|
|
|
+ _lpStationNumber = new List<int>();
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP1.Cassete200Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP1.Cassete150Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP1.Cassete100Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP2.Cassete200Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP2.Cassete150Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP2.Cassete100Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP3.Cassete200Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP3.Cassete150Station"));
|
|
|
+ _lpStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.LP3.Cassete100Station"));
|
|
|
+ _dummyStationNumber = new List<int>();
|
|
|
+ _dummyStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.Dummy1.Cassete200Station"));
|
|
|
+ _dummyStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.Dummy1.Cassete150Station"));
|
|
|
+ _dummyStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.Dummy1.Cassete100Station"));
|
|
|
+ _dummyStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.Dummy2.Cassete200Station"));
|
|
|
+ _dummyStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.Dummy2.Cassete150Station"));
|
|
|
+ _dummyStationNumber.Add(SystemConfig.Instance.GetValue<int>("EFEM.Dummy2.Cassete100Station"));
|
|
|
|
|
|
+ }
|
|
|
protected override void ProcessUnsplitMessage(string str)
|
|
|
{
|
|
|
-
|
|
|
- //string ack = "";
|
|
|
- //if (str.StartsWith("RQ LOAD")) //查询手指是否带片
|
|
|
- //{
|
|
|
- // ack = "LOAD A OFF\n_RDY";
|
|
|
- //}
|
|
|
- //else if(str.StartsWith("RSR")) //返回扫片结果
|
|
|
- //{
|
|
|
- // string[] strings = str.Split(' ').ToArray();
|
|
|
- // int stationNumber = int.Parse(strings[1]);
|
|
|
- // if (stationNumber >= 50 && stationNumber <= 58) //LP
|
|
|
- // {
|
|
|
- // string lpwafer = "";
|
|
|
- // foreach(var item in _slotMap)
|
|
|
- // {
|
|
|
- // lpwafer += $" {item}";
|
|
|
- // }
|
|
|
- // ack = "MAP" + lpwafer;
|
|
|
- // }
|
|
|
- // else if (stationNumber >= 59 && stationNumber <= 64) //dummy
|
|
|
- // {
|
|
|
- // string dummywafer = "";
|
|
|
- // foreach (var item in _slotDummy)
|
|
|
- // {
|
|
|
- // dummywafer += $" {item}";
|
|
|
- // }
|
|
|
- // ack = "MAP" + dummywafer;
|
|
|
- // }
|
|
|
- //}
|
|
|
- //else //默认回复
|
|
|
- //{
|
|
|
- // ack = str + "\n_RDY"; ;
|
|
|
- //}
|
|
|
//OnWriteMessage(ack);
|
|
|
|
|
|
// 处理INF
|
|
@@ -187,7 +181,7 @@ namespace CyberX8_Simulator.Devices
|
|
|
{
|
|
|
string[] strings = str.Split(' ').ToArray();
|
|
|
int stationNumber = int.Parse(strings[1]);
|
|
|
- if (stationNumber >= 50 && stationNumber <= 58) //LP
|
|
|
+ if (_lpStationNumber.Contains(stationNumber)) //LP
|
|
|
{
|
|
|
string lpwafer = "";
|
|
|
foreach (var item in _slotMap)
|
|
@@ -196,7 +190,7 @@ namespace CyberX8_Simulator.Devices
|
|
|
}
|
|
|
ack = "MAP" + lpwafer;
|
|
|
}
|
|
|
- else if (stationNumber >= 59 && stationNumber <= 64) //dummy
|
|
|
+ else if (_dummyStationNumber.Contains(stationNumber)) //dummy
|
|
|
{
|
|
|
string dummywafer = "";
|
|
|
foreach (var item in _slotDummy)
|
|
@@ -215,14 +209,6 @@ namespace CyberX8_Simulator.Devices
|
|
|
ack = "_RDY";
|
|
|
}
|
|
|
OnWriteMessage(ack);
|
|
|
- //if (str.StartsWith("PICK") || str.StartsWith("PLACE") || str.StartsWith("MAP") || str.StartsWith("ALIGNER ALGN") || str.StartsWith("ALIGNER HOME"))
|
|
|
- //{
|
|
|
- // Thread.Sleep((ushort)2200);
|
|
|
- //}
|
|
|
- //if (strACK.StartsWith("PICK") || strACK.StartsWith("PLACE") || strACK.StartsWith("MAP"))
|
|
|
- //{
|
|
|
- // Thread.Sleep((ushort)3000);
|
|
|
- //}
|
|
|
//// match basic
|
|
|
//Match m1 = Regex.Match(strACK, SCMD);
|
|
|
|