1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using System;
- using System.Linq;
- using System.Threading;
- using System.Threading.Tasks;
- using MECF.Framework.Simulator.Core.Driver;
- namespace Venus_Simulator.Devices
- {
- class AdTecGeneratorMockPMA : SerialPortDeviceSimulator
- {
- public enum GeneratorStatus
- {
- Unknown,
- OFF,
- ON,
- ERROR
- }
- public static GeneratorStatus _simGeneratorStatus;
- private const string EOF = "\r";
- private const char MSG_DELIMITER = '_';
- private const string MOCKUP_PORT = "COM37";
- private string RFPower = "0";
-
- public AdTecGeneratorMockPMA() : base(MOCKUP_PORT, -1, EOF, MSG_DELIMITER)
- {
- _simGeneratorStatus = GeneratorStatus.Unknown;
- }
- protected override void ProcessUnsplitMessage(string message)
- {
- if (string.IsNullOrEmpty(message))
- throw new ArgumentException("Hardware command message is invalid");
- string sRes = string.Empty;
- if (message.Contains(EOF))
- {
- message = message.Remove(message.Length - 1);
- }
- string[] msgs = message.Split('\r');
- foreach(string msg in msgs)
- {
- if (msg.Contains(" W"))
- {
- RFPower = msg.Split(' ')[0].ToString().PadLeft(5, '0');
- if (_simGeneratorStatus == GeneratorStatus.ON)
- {
- sRes = $"2010000 12345 {RFPower} 00010 45678\r";
- }
- }
- switch (msg)
- {
- case "Q":
- if (_simGeneratorStatus == GeneratorStatus.ON)
- {
- sRes = $"2010000 12345 {RFPower} 00010 45678\r";
- }
- else if (_simGeneratorStatus == GeneratorStatus.OFF)
- {
- sRes = "2000000 12345 00000 00000 45678\r";
- }
- break;
- case "G":
- _simGeneratorStatus = GeneratorStatus.ON;
- sRes = "\r";
- break;
- case "S":
- _simGeneratorStatus = GeneratorStatus.OFF;
- sRes = "\r";
- break;
-
- default:
- break;
- }
- //Thread.Sleep(200);
- sRes += "\r";
- OnWriteMessage(sRes);
- }
- }
- }
- }
|