ClaudeCode 更改2

This commit is contained in:
2026-05-14 22:04:31 +08:00
parent df3da9d9cb
commit b217acd7e9
3 changed files with 52 additions and 89 deletions

View File

@@ -214,52 +214,27 @@ namespace CapMachine.Wpf.Services
/// </summary>
public void CycleSendMsg()
{
if (!ToomossCanDrive.OpenState)
if (ToomossCanDrive.OpenState)
{
System.Windows.MessageBox.Show("CAN未打开请先连接CAN", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
return;
}
//停止已在运行的循环
if (ToomossCanDrive.IsCycleSend == true)
{
ToomossCanDrive.StopCycleSendMsg();
return;
}
//必要的前置校验DBC 必须已解析成功,否则原生互操作直接 AccessViolation 闪退
if (!ToomossCanDrive.DbcParserState || ToomossCanDrive.DBCHandle == 0)
{
System.Windows.MessageBox.Show("DBC尚未解析成功无法循环发送", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
return;
}
//过滤掉 MsgName / SignalName 为空的行(空名传给原生 DBC 解析器是 AV 常见诱因)
List<CanCmdData> cmdDataSnapshot;
lock (_cmdDataLock)
{
cmdDataSnapshot = CmdData
.Where(x => !string.IsNullOrWhiteSpace(x.MsgName) && !string.IsNullOrWhiteSpace(x.SignalName))
.Select(x => new CanCmdData
if (ToomossCanDrive.IsCycleSend == false)
{
if (CmdData.Count > 0)
{
ConfigName = x.ConfigName,
MsgName = x.MsgName,
SignalName = x.SignalName,
SignalCmdValue = x.SignalCmdValue
})
.ToList();
}
ToomossCanDrive.IsCycleSend = true;
ToomossCanDrive.CmdData = CmdData;
ToomossCanDrive.StartPrecisionCycleSendMsg();
}
else
{
System.Windows.MessageBox.Show("未发现配置的数据内容", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
}
}
else
{
ToomossCanDrive.StopCycleSendMsg();
}
if (cmdDataSnapshot.Count == 0)
{
System.Windows.MessageBox.Show("未发现可发送的数据(请检查写入配置的【消息名称】/【信号名称】是否为空)", "提示", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Hand);
return;
}
ToomossCanDrive.IsCycleSend = true;
//传入的是已经过滤的快照副本,避免与 UI 线程共享同一引用
ToomossCanDrive.CmdData = cmdDataSnapshot;
ToomossCanDrive.StartPrecisionCycleSendMsg();
}