Browse Source

revise efem simulator

chenzk 4 months ago
parent
commit
67443134b4
1 changed files with 29 additions and 43 deletions
  1. 29 43
      CyberX8_Simulator/Devices/SunWayEfemSimulator.cs

+ 29 - 43
CyberX8_Simulator/Devices/SunWayEfemSimulator.cs

@@ -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);