| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- 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;
 
- using System.Threading.Tasks;
 
- namespace Venus_Simulator.Devices
 
- {
 
-     public class VceSimulator : SerialPortDeviceSimulator
 
-     {
 
-         private const string EOF = "\n\r";
 
-         private const char MSG_DELIMITER = ' ';
 
-         private const string VCE_Port = "COM161";
 
-         private Regex _action_rule = new Regex(@"\d\d,A,.*");
 
-         private Regex _read_rule = new Regex(@"\d\d,R,.*");
 
-         private Regex _set_rule = new Regex(@"\d\d,S,.*");
 
-         private Regex _curing_rule = new Regex(@"\d\d,P,.*");
 
-         public VceSimulator() : base(VCE_Port, -1, EOF, MSG_DELIMITER)
 
-         {
 
-         }
 
-         protected override void ProcessUnsplitMessage(string message)
 
-         {
 
-             if (string.IsNullOrEmpty(message))
 
-                 throw new ArgumentException("Hardware command message is invalid");
 
-             if (message.Contains(EOF))
 
-             {
 
-                 message = message.Trim();
 
-             }
 
-             if (_action_rule.IsMatch(message) || _set_rule.IsMatch(message) || _curing_rule.IsMatch(message))
 
-             {
 
-                 OnWriteMessage("_RDY" + EOF);
 
-                 Thread.Sleep(2000);
 
-                 OnWriteMessage("_BKGRDY" + EOF);
 
-                 return;
 
-             }
 
-             if (_read_rule.IsMatch(message))
 
-             {
 
-                 switch (message)
 
-                 {
 
-                     case "00,R,MI":
 
-                         OnWriteMessage("00,X,MI,1,0,A,3,0,0,0,0,0,0" + EOF);
 
-                         Thread.Sleep(2000);
 
-                         OnWriteMessage("_RDY" + EOF);
 
-                         return;
 
-                     case "00,R,MI,S":
 
-                         OnWriteMessage("00,X,MI,XXXXXXXXXX,XXXXXXXXXX,XXXXX?????,??????????" + EOF);
 
-                         //OnWriteMessage("00,X,MI,0000000000,0000000000,XXXXX?????,??????????" + EOF);
 
-                         Thread.Sleep(2000);
 
-                         OnWriteMessage("_RDY" + EOF);
 
-                         return;
 
-                     default:
 
-                         return;
 
-                 }
 
-             }
 
-             //string[] strs = message.Split(MSG_DELIMITER);
 
-             //Thread.Sleep(2 * 1000);
 
-         }
 
-     }
 
- }
 
 
  |