SimpleCommand.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using ProjectBase.Data.Logs;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace SIASUN.Autopilot.Device.Common
  8. {
  9. /// <summary>
  10. /// 简单命令
  11. /// </summary>
  12. public class SimpleCommand<T>
  13. {
  14. /// <summary>
  15. /// 一次发送一个命令
  16. /// 大于0返回发送的字节数,-1超过最大重发次数;-2发送时出现异常;-3指令被取消(与对方的指令冲突);-4服务器未连接;
  17. /// </summary>
  18. /// <param name="message"></param>
  19. /// <returns></returns>
  20. public int Execute(T message, string id)
  21. {
  22. int iRet = 1;
  23. try
  24. {
  25. Package_Data_Msg<T> p = new Package_Data_Msg<T>();
  26. p.Message = new List<T>() { message };
  27. byte[] bytes = p.Package();
  28. CanFactory.Instance.Write(bytes, id);
  29. }
  30. catch (Exception ex)
  31. {
  32. iRet = 0;
  33. LogHelper.log.Error("发送数据失败,错误为.",ex);
  34. }
  35. LogHelper.log.Info("发送通信命令已完成.");
  36. return iRet;
  37. }
  38. }
  39. }