更新CAN的配置和CAN和实时数据的连接

This commit is contained in:
2025-01-06 22:47:27 +08:00
parent d2bad96b96
commit e367d9a8eb
7 changed files with 149 additions and 18 deletions

View File

@@ -78,28 +78,96 @@ namespace CapMachine.Wpf.Services
#region CAN
/// <summary>
/// 转速 指令数据 实例
/// </summary>
private CanCmdData SpeedCanCmdData { get; set; }
/// <summary>
/// 功率限制 指令数据 实例
/// </summary>
private CanCmdData PwLimitCanCmdData { get; set; }
/// <summary>
/// 使能 指令数据 实例
/// </summary>
private CanCmdData EnableCanCmdData { get; set; }
/// <summary>
/// 要发送的CAN指令数据
/// 在程序配置好后就确定要发送哪些数据
/// </summary>
public List<CanCmdData> CmdData { get; set; } = new List<CanCmdData>();
/// <summary>
/// 增加发送的指令数据
/// </summary>
/// <param name="canCmdData"></param>
public void AddCmdData(CanCmdData SendCanCmdData)
{
//提取常用的实例数据
switch (SendCanCmdData.ConfigName)
{
case "转速":
SpeedCanCmdData = SendCanCmdData;
break;
case "功率限制":
PwLimitCanCmdData = SendCanCmdData;
break;
case "使能":
EnableCanCmdData = SendCanCmdData;
break;
case "Anti_Sleep":
//SpeedCanCmdData = SendCanCmdData;
break;
default:
break;
}
//添加到发送数据集合
CmdData.Add(SendCanCmdData);
}
/// <summary>
/// 更新速度信息
/// 默认是启动
/// </summary>
/// <param name="canCmdData"></param>
public void UpdateSpeedCmdData(double SpeedData)
{
if (SpeedCanCmdData != null)
{
SpeedCanCmdData.SignalCmdValue = SpeedData;
}
if (EnableCanCmdData!=null)
{
EnableCanCmdData.SignalCmdValue = 1;
}
}
/// <summary>
/// 发送消息给CAN 驱动
/// </summary>
public void SendMsgToCanDrive()
public void SendMsgToCanDrive(double SpeedData)
{
if (ToomossCanDrive.OpenState)
{
if (CmdData.Count > 0)
{
//更新速度信息
UpdateSpeedCmdData(SpeedData);
ToomossCanDrive.SendCanMsg(CmdData);
}
else
{
System.Windows.MessageBox.Show("未发现配置的数据内容", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
}
}
else
{
System.Windows.MessageBox.Show("未打开CAN通信无法发送数据", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
}
}