using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using MECF.Framework.Simulator.Core.Driver; namespace MECF.Framework.Simulator.Core.Aligners { public class HstOcrReaderSimulator : SocketDeviceSimulator { Random _rd = new Random(); public HstOcrReaderSimulator( ) : base(23, -1, "\r\n", ' ') { } public HstOcrReaderSimulator(int port) : base(port, -1, "\r\n", ' ') { } int GetSleepTime() { return 1000; } public bool ResultOK { get; set; } = true; protected override void ProcessUnsplitMessage(string msg) { string result = "Welcome to e-Reader8000 \r\n";//ResultOK?"1":"-2"; OnWriteMessage(result); if (msg.StartsWith("SM")) { result = string.Format("{0},{1:F2},{2:F2}", GenerateRandomNumber(12), _rd.Next(80, 100), 1); Task.Run(() => { Thread.Sleep(GetSleepTime()); OnWriteMessage(result); }); } } private static char[] constant = { '0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' }; public static string GenerateRandomNumber(int Length) { System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62); Random rd = new Random(); for (int i = 0; i < Length; i++) { newRandom.Append(constant[rd.Next(62)]); } return newRandom.ToString(); } } }