123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- using MECF.Framework.Simulator.Core.Driver;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace athosSimulator.LoadPort
- {
- public class Hirata : SerialPortDeviceSimulator
- {
- //public GeneratorStatus _simGeneratorStatus;
- private string _mapStr = "1111111111111111111111111";
- public string MapStr { set { _mapStr = value; } }
- private const string EOF = "\r";
- private const char MSG_DELIMITER = ' ';
- private object _lock = new object();
- public Hirata(string portname) : base(portname, -1, EOF, MSG_DELIMITER)
- {
- }
- public override bool IsEnabled => base.IsEnabled;
- public override bool IsConnected => base.IsConnected;
- public override bool Equals(object obj)
- {
- return base.Equals(obj);
- }
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
- public override string ToString()
- {
- return base.ToString();
- }
- //走这里
- protected override void ProcessUnsplitMessage(string command)
- {
- //if (command.Contains(EOF))
- //{
- // char eof= EOF.ToCharArray()[0];
- // string[] sstr= command.Split(eof);
- //}
- //else
- lock(_lock)
- {
- if (command.Contains("SET:"))
- {
- //直接返回一样的
- OnWriteMessage(command);
- }
- if (command.Contains("GET:"))
- {
- if (command.Contains("STAS"))
- {
- OnWriteMessage("0000GET:STAS/00100010101000000000;**"+ EOF);
- }
- if (command.Contains("MAPR"))
- {
- //全空
- //OnWriteMessage("0000GET:MAPR/00000000000000000000000000;**"+ EOF);
- //全有
- OnWriteMessage($"0000GET:MAPR/{_mapStr};**"+ EOF);
- }
- }
- if (command.Contains("MOV:"))
- {
- OnWriteMessage(command);
- Thread.Sleep(6000);
- OnWriteMessage(command.Replace("MOV", "INF"));
- }
- }
-
- }
- protected override void ProcessUnsplitMessage(byte[] message)
- {
- string command = string.Empty;
- foreach (byte _ch in message)
- {
- //当不是截断符时
- if (_ch.ToString() != EOF)
- {
- command += _ch.ToString();
- }
- else
- {
- command += _ch.ToString();
- if (command.Contains("SET"))
- {
- //直接返回一样的
- OnWriteMessage(command);
- }
- if (command.Contains("GET"))
- {
- if (command.Contains("STAS"))
- {
- OnWriteMessage("0000GET:STAS/00100010101000000000;**");
- }
- if (command.Contains("MAPR"))
- {
- OnWriteMessage("0000GET:MAPR/00000000000000000000000000;**");
- }
- }
- if (command.Contains("MOV"))
- {
- OnWriteMessage(command);
- command.Replace("MOV","INF");
- Thread.Sleep(6000);
- OnWriteMessage(command);
- }
- command = string.Empty;
- }
- }
- }
- protected override void AddCommandHandler(string command, Action<string> handler)
- {
- base.AddCommandHandler(command, handler);
- }
- protected override void CommandNotRecognized(string msg)
- {
- base.CommandNotRecognized(msg);
- }
- protected override void OnErrorMessage(string message)
- {
- base.OnErrorMessage(message);
- }
- protected override void ProcessWriteMessage(string msg)
- {
- base.ProcessWriteMessage(msg);
- }
- protected override void ProcessWriteMessage(byte[] msg)
- {
- base.ProcessWriteMessage(msg);
- }
- /// <summary>
- /// Set Simulator wafer map
- /// </summary>
- public void SetMapStr(string str)
- {
- }
- }
- }
|