123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- using ProjectBase.Data.Logs;
- using ProjectBase.Data.Redis;
- using SIASUN.Autopilot.Device.Common;
- using SIASUN.Autopilot.Device.Message;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace SIASUN.Autopilot.BLL.Controler
- {
-
- public class BlControler
- {
- // 控制器命令值
- private string power = "1";
- /// <summary>
- /// 定时器
- /// </summary>
- private static MTimer mTime;
- private RedisHelper redis = new RedisHelper(0);
- /// <summary>
- /// 控制上电命令 ICU-》RCU
- /// </summary>
- /// <param name="power">0=Power Off;1=Power ON;2=无效命令</param>
- /// <returns></returns>
- public int RCUPowerOnRequest(PowerStatus power)
- {
- try
- {
- LogHelper.log.Info("发送RCU控制上电命令请求");
- 控制器上电命令 sMsg = new 控制器上电命令()
- {
- RCU上电 = power.ToString(),
- 油门电机控制器上电 = power.ToString(),
- 制动电机控制器上电 = power.ToString(),
- 离合电机控制器上电 = power.ToString(),
- 转向电机控制器上电 = power.ToString(),
- 换挡臂X电机控制器上电 = power.ToString(),
- 换挡臂Y电机控制器上电 = power.ToString()
- };
- SimpleCommand<控制器上电命令> cmd = new SimpleCommand<控制器上电命令>();
- int r = cmd.Execute(sMsg, sMsg.GetId);
- LogHelper.log.Info(string.Format("发送控制器上电命令,返回值{0}", r));
- if (r > 0)
- {
- mTime = new MTimer(100, 500, 1, CirculateSend);
- mTime.Open();
- }
- return r;
- }
- catch (Exception ex)
- {
- LogHelper.log.Error("发送控制器上电命令出现错误", ex);
- return 0;
- }
- }
- /// <summary>
- /// 执行机构使能请求
- /// </summary>
- /// <param name="common">0=Disable;1=Enable</param>
- /// <param name="throttleClutch">油门离合器控制:0=Joint;1=Release;2=无效命令</param>
- /// <param name="actuallySysControl">实际系统控制模式请求:0=自动学习模式;1=手动学习模式;3=人工驾驶模式;4=机器人自检模式;5=机器人调试模式</param>
- /// <returns></returns>
- public int RCUEnableRequest()
- {
- try
- {
- LogHelper.log.Info("发送RCU使能命令请求");
- 执行机构使能请求 sMsg = new 执行机构使能请求();
- sMsg = redis.GetString<执行机构使能请求>("执行机构使能请求");
- SimpleCommand<执行机构使能请求> cmd = new SimpleCommand<执行机构使能请求>();
- int r = cmd.Execute(sMsg, sMsg.GetId);
- LogHelper.log.Info(string.Format("发送执行机构使能请求,返回值{0}", r));
- return r;
- }
- catch (Exception ex)
- {
- LogHelper.log.Error("发送执行机构使能请求出现错误", ex);
- return 0;
- }
- }
- /// <summary>
- /// 循环发送命令
- /// </summary>
- private static void CirculateSend(object sender, long JumpPeriod, long interval)
- {
- }
- /// <summary>
- /// 学习模式请求确认
- /// </summary>
- /// <param name="sMg"></param>
- /// <returns></returns>
- public int RCULearnModeRequest()
- {
- try
- {
- LogHelper.log.Info("发送RCU学习模式请求确认命令");
- 学习模式请求确认 sMg = new 学习模式请求确认();
- sMg = redis.GetString<学习模式请求确认>("学习模式请求确认");
- SimpleCommand<学习模式请求确认> cmd = new SimpleCommand<学习模式请求确认>();
- int r = cmd.Execute(sMg, sMg.GetId);
- LogHelper.log.Info(string.Format("发送学习模式请求确认命令,返回值{0}", r));
- return r;
- }
- catch (Exception ex)
- {
- LogHelper.log.Error("发送学习模式请求确认命令出现错误", ex);
- return 0;
- }
- }
- /// <summary>
- /// 踏板执行机构控制命令
- /// </summary>
- /// <returns></returns>
- public int PedalControlCommand(踏板执行机构控制命令 sMg)
- {
- try
- {
- LogHelper.log.Info("发送踏板执行机构控制命令");
- SimpleCommand<踏板执行机构控制命令> cmd = new SimpleCommand<踏板执行机构控制命令>();
- int r = cmd.Execute(sMg, sMg.GetId);
- LogHelper.log.Info(string.Format("发送踏板执行机构控制命令,返回值{0}", r));
- return r;
- }
- catch (Exception ex)
- {
- LogHelper.log.Error("发送踏板执行机构控制命令出现错误", ex);
- return 0;
- }
- }
- /// <summary>
- /// 转向执行机构控制命令
- /// </summary>
- /// <returns></returns>
- public int TurnControlCommand(转向执行机构控制命令 sMg)
- {
- try
- {
- LogHelper.log.Info("发送转向执行机构控制命令");
- SimpleCommand<转向执行机构控制命令> cmd = new SimpleCommand<转向执行机构控制命令>();
- int r = cmd.Execute(sMg, sMg.GetId);
- LogHelper.log.Info(string.Format("发送转向执行机构控制命令,返回值{0}", r));
- return r;
- }
- catch (Exception ex)
- {
- LogHelper.log.Error("发送转向执行机构控制命令出现错误", ex);
- return 0;
- }
- }
- /// <summary>
- /// 挡位执行机构控制命令
- /// </summary>
- /// <returns></returns>
- public int GearControlCommand(挡位执行机构控制命令 sMg)
- {
- try
- {
- LogHelper.log.Info("发送挡位执行机构控制命令");
- SimpleCommand<挡位执行机构控制命令> cmd = new SimpleCommand<挡位执行机构控制命令>();
- int r = cmd.Execute(sMg, sMg.GetId);
- LogHelper.log.Info(string.Format("发送挡位执行机构控制命令,返回值{0}", r));
- return r;
- }
- catch (Exception ex)
- {
- LogHelper.log.Error("发送挡位执行机构控制命令出现错误", ex);
- return 0;
- }
- }
- }
- }
|