using EGFramework; using Newtonsoft.Json; //通讯协议类定义 public class ResponseControl : IResponse { public int FunctionCode { set; get; } public int Position { set; get; } public bool TrySetData(string protocolData, byte[] protocolBytes) { try { if (!protocolData.StartsWith('{') && !protocolData.StartsWith('[')) { return false; } ResponseControl data = JsonConvert.DeserializeObject(protocolData); if (data != null && data.FunctionCode != 0) { this.FunctionCode = data.FunctionCode; this.Position = data.Position; return true; } else { return false; } } catch (System.Exception) { return false; // throw; } } } //数据返回 public class RequestControl : IRequest { public int TargetID { set; get; } public int FunctionCode { set; get; } public bool ExecuteSuccess { set; get; } public int ErrorCode { set; get; } public byte[] ToProtocolByteData() { // throw new NotImplementedException(); return null; } public string ToProtocolData() { return JsonConvert.SerializeObject(this); } } //状态查询 public class RequestControlStatus : IRequest { public int TargetID { set; get; } public int FunctionCode { set; get; } public bool IsStart { set; get; } public int Position { set; get; } public byte[] ToProtocolByteData() { // throw new NotImplementedException(); return null; } public string ToProtocolData() { return JsonConvert.SerializeObject(this); } } //移动状态反馈 public class RequestControlMoveStatus : IRequest { public int TargetID { set; get; } public int FunctionCode { set; get; } public int Position { set; get; } public StatusTrack Status { set; get; } public byte[] ToProtocolByteData() { return null; } public string ToProtocolData() { return JsonConvert.SerializeObject(this); } } public enum TypeControlFunction { StartShooting = 201, StopShooting = 200, Status = 100, TargetMessage = 300, TrackMessage = 301, OtherMessage = 302, TrackMove = 401, TrackStop = 400, TrackError = 404 }