74 lines
1.9 KiB
C#
74 lines
1.9 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
|