You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.7 KiB
113 lines
2.7 KiB
|
4 weeks ago
|
using EGFramework;
|
||
|
|
using Newtonsoft.Json;
|
||
|
|
|
||
|
|
public class RequestSerialPort : IRequest
|
||
|
|
{
|
||
|
|
public string SerialPort { set; get; }
|
||
|
|
public string StringData { set; get; }
|
||
|
|
public byte[] Data { set; get; }
|
||
|
|
public RequestSerialPort(byte[] data)
|
||
|
|
{
|
||
|
|
this.Data = data;
|
||
|
|
}
|
||
|
|
public RequestSerialPort(ResponseSerialServer data)
|
||
|
|
{
|
||
|
|
this.Data = data.GetBytes();
|
||
|
|
}
|
||
|
|
public string ToProtocolData()
|
||
|
|
{
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
public byte[] ToProtocolByteData()
|
||
|
|
{
|
||
|
|
return Data;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public class ResponseSerialPort : IResponse
|
||
|
|
{
|
||
|
|
public byte[] Data { set; get; }
|
||
|
|
public bool TrySetData(string protocolData, byte[] protocolBytes)
|
||
|
|
{
|
||
|
|
try
|
||
|
|
{
|
||
|
|
this.Data = protocolBytes;
|
||
|
|
if(Data == null)
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
catch (System.Exception)
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
// throw;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public class RequestSerialRevert : IRequest, IEGFramework
|
||
|
|
{
|
||
|
|
public string SerialPort { set; get; }
|
||
|
|
public bool IsByte { set; get; }
|
||
|
|
public string StringData { set; get; }
|
||
|
|
|
||
|
|
public RequestSerialRevert(byte[] data,string serialPort)
|
||
|
|
{
|
||
|
|
this.StringData = data.ToStringByHex();
|
||
|
|
this.IsByte = true;
|
||
|
|
this.SerialPort = serialPort;
|
||
|
|
}
|
||
|
|
|
||
|
|
public byte[] ToProtocolByteData()
|
||
|
|
{
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
public string ToProtocolData()
|
||
|
|
{
|
||
|
|
return JsonConvert.SerializeObject(this);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public class ResponseSerialServer : IResponse, IEGFramework
|
||
|
|
{
|
||
|
|
public string SerialPort { set; get; }
|
||
|
|
public bool IsByte { set; get; }
|
||
|
|
public string StringData { set; get; }
|
||
|
|
public int BaudRate { set; get; }
|
||
|
|
private byte[] Data { set; get; }
|
||
|
|
public bool TrySetData(string protocolData, byte[] protocolBytes)
|
||
|
|
{
|
||
|
|
try
|
||
|
|
{
|
||
|
|
if (!protocolData.StartsWith('{') && !protocolData.StartsWith('['))
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
ResponseSerialServer data = JsonConvert.DeserializeObject<ResponseSerialServer>(protocolData);
|
||
|
|
if (data != null && data.SerialPort != null && data.SerialPort != "")
|
||
|
|
{
|
||
|
|
this.SerialPort = data.SerialPort;
|
||
|
|
this.IsByte = data.IsByte;
|
||
|
|
this.StringData = data.StringData;
|
||
|
|
this.BaudRate = data.BaudRate;
|
||
|
|
this.Data = data.StringData.ToHexByString();
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
catch (System.Exception)
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
public byte[] GetBytes()
|
||
|
|
{
|
||
|
|
return Data;
|
||
|
|
}
|
||
|
|
}
|