| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | 
							- using System;
 
- using MECF.Framework.Simulator.Core.Driver;
 
- using System.Linq;
 
- namespace Venus_Simulator.Devices
 
- {
 
-     class TurboPumpMockPMD : SerialPortDeviceSimulator
 
-     {
 
-         public enum TurboPumpStatus
 
-         {
 
-             Unknown,
 
-             OFF,
 
-             ON,
 
-             ERROR
 
-         }
 
-         private readonly byte PUMP_ON_FLAG = 0x02;
 
-         private readonly byte RESERVE_FLAG = 0x80;
 
-         private readonly byte ISO_VALVE_OPEN_FLAG = 0x01;
 
-         private readonly byte WATER_VALVE_OEPN_FLAG = 0x08;
 
-         private readonly byte VALVE_AT_SPEED_FLAG = 0x40;
 
-         private byte pumpStatus
 
-         {
 
-             get
 
-             {
 
-                 return (byte)((_simTurboPumpStatus == TurboPumpStatus.ON ? PUMP_ON_FLAG : 0) + RESERVE_FLAG);
 
-             }
 
-         }
 
-         private byte valveStatus
 
-         {
 
-             get
 
-             {
 
-                 return (byte)(ISO_VALVE_OPEN_FLAG + WATER_VALVE_OEPN_FLAG + VALVE_AT_SPEED_FLAG + RESERVE_FLAG);
 
-             }
 
-         }
 
-         private const string EOF = "\r";
 
-         private const char MSG_DELIMITER = '_';
 
-         private const string MOCKUP_PORT = "COM6";
 
-         private int _speed = 200;
 
-         private int _temperature = 80;
 
-         private Random _rd = new Random();
 
-         TurboPumpStatus _simTurboPumpStatus;
 
-         public TurboPumpMockPMD() : base(MOCKUP_PORT, -1, EOF, MSG_DELIMITER)
 
-         {
 
-             _simTurboPumpStatus = TurboPumpStatus.Unknown;
 
-         }
 
-         protected override void ProcessUnsplitMessage(string message)
 
-         {
 
-             if (string.IsNullOrEmpty(message))
 
-                 throw new ArgumentException("Hardware command message is invalid");
 
-             string[] strs = message.Trim().Split('\r');
 
-             foreach(string msg in strs)
 
-             {
 
-                 string sRes = string.Empty;
 
-                 string str = msg.Trim();
 
-                 if (str.Length == 0)
 
-                     continue;
 
-                 if (str.Contains("STA"))
 
-                 {
 
-                     if (_simTurboPumpStatus == TurboPumpStatus.ON)
 
-                     {
 
-                         _speed = 200;
 
-                     }
 
-                     else
 
-                     {
 
-                         _speed = 0;
 
-                     }
 
-                     string strData = string.Format("#000,000,{0:D5},000,000,000,000,000,00,00000,{1:D3},099,0123456789012345678901234\r", _speed + _rd.Next(0, 5), _temperature + _rd.Next(-5, 5));
 
-                     byte[] byteArray = System.Text.Encoding.Default.GetBytes(strData);
 
-                     byteArray[6] = pumpStatus;
 
-                     byteArray[7] = valveStatus;
 
-                     OnWriteMessage(byteArray);
 
-                     continue;
 
-                 }
 
-                 else if (str.Contains("TMPON"))
 
-                 {
 
-                     sRes = "#000,OK\r";
 
-                     _simTurboPumpStatus = TurboPumpStatus.ON;
 
-                 }
 
-                 else if (str.Contains("TMPOFF"))
 
-                 {
 
-                     sRes = "#000,OK\r";
 
-                     _simTurboPumpStatus = TurboPumpStatus.OFF;
 
-                 }
 
-                 else
 
-                     continue;
 
-                 OnWriteMessage(sRes);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |