BlControler.cs 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. using ProjectBase.Data.Logs;
  2. using ProjectBase.Data.Redis;
  3. using SIASUN.Autopilot.Device.Common;
  4. using SIASUN.Autopilot.Device.Message;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace SIASUN.Autopilot.BLL.Controler
  11. {
  12. public class BlControler
  13. {
  14. // 控制器命令值
  15. private string power = "1";
  16. /// <summary>
  17. /// 定时器
  18. /// </summary>
  19. private static MTimer mTime;
  20. private RedisHelper redis = new RedisHelper(0);
  21. /// <summary>
  22. /// 控制上电命令 ICU-》RCU
  23. /// </summary>
  24. /// <param name="power">0=Power Off;1=Power ON;2=无效命令</param>
  25. /// <returns></returns>
  26. public int RCUPowerOnRequest(PowerStatus power)
  27. {
  28. try
  29. {
  30. LogHelper.log.Info("发送RCU控制上电命令请求");
  31. 控制器上电命令 sMsg = new 控制器上电命令()
  32. {
  33. RCU上电 = power.ToString(),
  34. 油门电机控制器上电 = power.ToString(),
  35. 制动电机控制器上电 = power.ToString(),
  36. 离合电机控制器上电 = power.ToString(),
  37. 转向电机控制器上电 = power.ToString(),
  38. 换挡臂X电机控制器上电 = power.ToString(),
  39. 换挡臂Y电机控制器上电 = power.ToString()
  40. };
  41. SimpleCommand<控制器上电命令> cmd = new SimpleCommand<控制器上电命令>();
  42. int r = cmd.Execute(sMsg, sMsg.GetId);
  43. LogHelper.log.Info(string.Format("发送控制器上电命令,返回值{0}", r));
  44. if (r > 0)
  45. {
  46. mTime = new MTimer(100, 500, 1, CirculateSend);
  47. mTime.Open();
  48. }
  49. return r;
  50. }
  51. catch (Exception ex)
  52. {
  53. LogHelper.log.Error("发送控制器上电命令出现错误", ex);
  54. return 0;
  55. }
  56. }
  57. /// <summary>
  58. /// 执行机构使能请求
  59. /// </summary>
  60. /// <param name="common">0=Disable;1=Enable</param>
  61. /// <param name="throttleClutch">油门离合器控制:0=Joint;1=Release;2=无效命令</param>
  62. /// <param name="actuallySysControl">实际系统控制模式请求:0=自动学习模式;1=手动学习模式;3=人工驾驶模式;4=机器人自检模式;5=机器人调试模式</param>
  63. /// <returns></returns>
  64. public int RCUEnableRequest()
  65. {
  66. try
  67. {
  68. LogHelper.log.Info("发送RCU使能命令请求");
  69. 执行机构使能请求 sMsg = new 执行机构使能请求();
  70. sMsg = redis.GetString<执行机构使能请求>("执行机构使能请求");
  71. SimpleCommand<执行机构使能请求> cmd = new SimpleCommand<执行机构使能请求>();
  72. int r = cmd.Execute(sMsg, sMsg.GetId);
  73. LogHelper.log.Info(string.Format("发送执行机构使能请求,返回值{0}", r));
  74. return r;
  75. }
  76. catch (Exception ex)
  77. {
  78. LogHelper.log.Error("发送执行机构使能请求出现错误", ex);
  79. return 0;
  80. }
  81. }
  82. /// <summary>
  83. /// 循环发送命令
  84. /// </summary>
  85. private static void CirculateSend(object sender, long JumpPeriod, long interval)
  86. {
  87. }
  88. /// <summary>
  89. /// 学习模式请求确认
  90. /// </summary>
  91. /// <param name="sMg"></param>
  92. /// <returns></returns>
  93. public int RCULearnModeRequest()
  94. {
  95. try
  96. {
  97. LogHelper.log.Info("发送RCU学习模式请求确认命令");
  98. 学习模式请求确认 sMg = new 学习模式请求确认();
  99. sMg = redis.GetString<学习模式请求确认>("学习模式请求确认");
  100. SimpleCommand<学习模式请求确认> cmd = new SimpleCommand<学习模式请求确认>();
  101. int r = cmd.Execute(sMg, sMg.GetId);
  102. LogHelper.log.Info(string.Format("发送学习模式请求确认命令,返回值{0}", r));
  103. return r;
  104. }
  105. catch (Exception ex)
  106. {
  107. LogHelper.log.Error("发送学习模式请求确认命令出现错误", ex);
  108. return 0;
  109. }
  110. }
  111. /// <summary>
  112. /// 踏板执行机构控制命令
  113. /// </summary>
  114. /// <returns></returns>
  115. public int PedalControlCommand(踏板执行机构控制命令 sMg)
  116. {
  117. try
  118. {
  119. LogHelper.log.Info("发送踏板执行机构控制命令");
  120. SimpleCommand<踏板执行机构控制命令> cmd = new SimpleCommand<踏板执行机构控制命令>();
  121. int r = cmd.Execute(sMg, sMg.GetId);
  122. LogHelper.log.Info(string.Format("发送踏板执行机构控制命令,返回值{0}", r));
  123. return r;
  124. }
  125. catch (Exception ex)
  126. {
  127. LogHelper.log.Error("发送踏板执行机构控制命令出现错误", ex);
  128. return 0;
  129. }
  130. }
  131. /// <summary>
  132. /// 转向执行机构控制命令
  133. /// </summary>
  134. /// <returns></returns>
  135. public int TurnControlCommand(转向执行机构控制命令 sMg)
  136. {
  137. try
  138. {
  139. LogHelper.log.Info("发送转向执行机构控制命令");
  140. SimpleCommand<转向执行机构控制命令> cmd = new SimpleCommand<转向执行机构控制命令>();
  141. int r = cmd.Execute(sMg, sMg.GetId);
  142. LogHelper.log.Info(string.Format("发送转向执行机构控制命令,返回值{0}", r));
  143. return r;
  144. }
  145. catch (Exception ex)
  146. {
  147. LogHelper.log.Error("发送转向执行机构控制命令出现错误", ex);
  148. return 0;
  149. }
  150. }
  151. /// <summary>
  152. /// 挡位执行机构控制命令
  153. /// </summary>
  154. /// <returns></returns>
  155. public int GearControlCommand(挡位执行机构控制命令 sMg)
  156. {
  157. try
  158. {
  159. LogHelper.log.Info("发送挡位执行机构控制命令");
  160. SimpleCommand<挡位执行机构控制命令> cmd = new SimpleCommand<挡位执行机构控制命令>();
  161. int r = cmd.Execute(sMg, sMg.GetId);
  162. LogHelper.log.Info(string.Format("发送挡位执行机构控制命令,返回值{0}", r));
  163. return r;
  164. }
  165. catch (Exception ex)
  166. {
  167. LogHelper.log.Error("发送挡位执行机构控制命令出现错误", ex);
  168. return 0;
  169. }
  170. }
  171. }
  172. }