靶机服务端(适用于Linux系统控制靶机的情况)
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

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;
}
}