| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | 
							- using Aitex.Core.Util;
 
- using MECF.Framework.Simulator.Core.Driver;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Net.Http.Headers;
 
- using System.Text;
 
- using System.Text.RegularExpressions;
 
- using System.Threading;
 
- using System.Threading.Tasks;
 
- namespace Venus_Simulator.Devices
 
- {
 
-     public class DETMSimulatorServer : SocketDeviceSimulator
 
-     {
 
-         private readonly Regex _check_load = new Regex(@"CHECK LOAD\s+(\d)+\s+(A|B)\s*");
 
-         private readonly Regex _move_arm = new Regex(@"(PLACE|PICK)\s+(\d+)\s+ARM\s+(A|B)\s+(\w{4})\s*");
 
-         private readonly Regex _move_wafer = new Regex(@"(PLACE|PICK)\s+(\d+)\s+ARM\s+(A|B)\s*");
 
-         private readonly Regex _rq_arm = new Regex(@"(RQ)\s+(LOAD)\s+(ARM)\s*");
 
-         private readonly Regex _rq_speed = new Regex(@"(RQ)\s+(MOTIONPARA)\s*");
 
-         private readonly Regex _set_speed = new Regex(@"(SET)\s+(MOTIONPARA)\s*");
 
-         private readonly Regex _store_speed = new Regex(@"(STORE)\s+(MOTIONPARA)\s*");
 
-         private PeriodicJob _HwThread;
 
-         private string WithWaferSpeed = "0300";
 
-         private string NoWaferSpeed = "0300";
 
-         public DETMSimulatorServer() : base(1103, -1, "\n", ' ')
 
-         {
 
-             _HwThread = new PeriodicJob(500, OnSendEvent, "honghuRobot", true);
 
-         }
 
-         private bool OnSendEvent()
 
-         {
 
-             return true;
 
-         }
 
-         protected override void ProcessUnsplitMessage(string str)
 
-         {
 
-             if (str.Contains("HOME") || str.Contains("GOTO") || str.Contains("XFER") || str.Contains("HALT"))
 
-             {
 
-                 OnWriteMessage("_RDY");
 
-             }
 
-             if (_rq_speed.IsMatch(str))
 
-             {
 
-                 switch (str.Split(' ')[2])
 
-                 {
 
-                     case "WITHWAFER":
 
-                         OnWriteMessage($"MOTIONPARA WITHWAFER SPDPCT ALL {WithWaferSpeed} 0100 0100");
 
-                         OnWriteMessage("_RDY");
 
-                         break;
 
-                     case "NOWAFER":
 
-                         OnWriteMessage($"MOTIONPARA NOWAFER SPDPCT ALL {NoWaferSpeed} 0100 0100");
 
-                         OnWriteMessage("_RDY");
 
-                         break;
 
-                     default:
 
-                         OnWriteMessage(str);
 
-                         OnWriteMessage($"_ERR 350");
 
-                         break;
 
-                 }
 
-             }
 
-             if (_set_speed.IsMatch(str))
 
-             {
 
-                 switch (str.Split(' ')[2])
 
-                 {
 
-                     case "WITHWAFER":
 
-                         WithWaferSpeed = str.Split(' ')[5];
 
-                         OnWriteMessage(str);
 
-                         OnWriteMessage("_RDY");
 
-                         break;
 
-                     case "NOWAFER":
 
-                         NoWaferSpeed = str.Split(' ')[5];
 
-                         OnWriteMessage(str);
 
-                         OnWriteMessage("_RDY");
 
-                         break;
 
-                     default:
 
-                         OnWriteMessage(str);
 
-                         OnWriteMessage($"_ERR 350");
 
-                         break;
 
-                 }
 
-             }
 
-             if (_store_speed.IsMatch(str))
 
-             {
 
-                 OnWriteMessage(str);
 
-                 OnWriteMessage("_RDY");
 
-             }
 
-             if (_rq_arm.IsMatch(str))
 
-             {
 
-                 //OnWriteMessage(string.Format($"LOAD {arm} OFF"));
 
-                 //OnWriteMessage(string.Format($"CHECK LOAD"));
 
-                 OnWriteMessage("_RDY");
 
-             }
 
-             //if (str.Contains("RQ WAF_CEN DATA"))
 
-             //{
 
-             //    string t = new Random().Next(0, 359).ToString().PadLeft(6, '0');
 
-             //    string r = new Random().Next(0, 50000).ToString().PadLeft(6, '0');
 
-             //    OnWriteMessage($"WAF_CEN RT 000000 000000 000000 000000 LFT 000000 000000 000000 000000 OFFSET {r} {t}");
 
-             //    OnWriteMessage("_RDY");
 
-             //}
 
-             if (_check_load.IsMatch(str))
 
-             {
 
-                 Match result = _check_load.Match(str);
 
-                 string station = result.Groups[1].Value;
 
-                 string arm = result.Groups[2].Value;
 
-                 //OnWriteMessage(string.Format($"LOAD {arm} OFF"));
 
-                 //OnWriteMessage(string.Format($"CHECK LOAD"));
 
-                 OnWriteMessage("_RDY");
 
-             }
 
-             else if (_move_arm.IsMatch(str))
 
-             {
 
-                 // @"(PLACE|PICK)\s+(\d+)\s+SLOT\s+(\d+)\s+ARM\s+(A|B)\s+(\w{4})\s+"
 
-                 Match result = _move_arm.Match(str);
 
-                 string operation = result.Groups[1].Value;
 
-                 string station = result.Groups[2].Value;
 
-                 string slot = result.Groups[3].Value;
 
-                 string arm = result.Groups[4].Value;
 
-                 string dir = result.Groups[5].Value;
 
-                 Thread.Sleep(2000);
 
-                 OnWriteMessage("_RDY");
 
-             }
 
-             else if (_move_wafer.IsMatch(str))
 
-             {
 
-                 // @"(PLACE|PICK)\s+(\d+)\s+SLOT\s+(\d+)\s+ARM\s+(A|B)\s+"
 
-                 Match result = _move_wafer.Match(str);
 
-                 string operation = result.Groups[1].Value;
 
-                 string station = result.Groups[2].Value;
 
-                 string slot = result.Groups[3].Value;
 
-                 string arm = result.Groups[4].Value;
 
-                 Thread.Sleep(2000);
 
-                 OnWriteMessage("_RDY");
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |