12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using Aitex.Core.Util;
- using MECF.Framework.Simulator.Core.Driver;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- namespace athosSimulator.PreAligner
- {
- public class Rorze : SocketDeviceSimulator
- {
- private const string EOF = "\r";
- private const char MSG_DELIMITER = ' ';
- private object _lock = new object();
- private Regex catch_parameter = new Regex(@"(?<=oALN1.)(.*)"); //获得带参的
- private Regex catch_head = new Regex(@"(.*)(?=\()");//获得不带参的
- //private PeriodicJob _job;
- //1102
- public Rorze(int port) : base(port, -1, EOF, MSG_DELIMITER)
- {
- Enable();
- //_job = new PeriodicJob(500,OnTimer,$"RorzePA->{port}",true);
- }
-
- protected override void ProcessUnsplitMessage(string message)
- {
- lock (_lock)
- {
- if (catch_parameter.IsMatch(message))
- {
- string message_parameter = catch_parameter.Match(message).Value;
- string reback_message = "aALN1.";
- //带参数
- if (message_parameter.Contains("("))
- {
- string head = catch_head.Match(message_parameter).Value;
- reback_message += $"{head}:";
- }
- //不带参数 直接回aALN1.SHFT(132);
- else
- {
- reback_message += $"{message_parameter}:";
- }
- OnWriteMessage(reback_message + EOF);
- }
- else
- {
- OnWriteMessage("数据格式错误" + EOF);
- }
- }
- }
- }
- }
|