问题标签 [canalyzer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1543 浏览

can-bus - 使用 CAPL 播放 Vector CANoe BLF/ASC 文件

我想从我的 CAPL 脚本播放 Vector CANoe BLF/ASC 文件。由于某种原因,无法使用重播块。是否可以从 CAPL 脚本播放 CANoe BLF/ASC 文件?

0 投票
1 回答
538 浏览

variable-assignment - CAPL:创建一个查找表,将值分配给变化的变量

我想通过使用查找表为 CANoe 中的变量赋值。

如果 sysvar:test 更改为值 1、2 或 3,那么我希望 sysvar::show 更改为值 4、78 和 33 或我分配的其他值。我怎样才能做到这一点?

提前致谢!

0 投票
1 回答
3702 浏览

capl - 如何将字节数组转换为 CAPL 中的字符串?

我有一个字节数组,我需要在一行中打印元素。

我尝试使用 ' snprintf()' 但它不会将字节数组作为其输入参数。

我尝试将字节数组复制到整数数组中,然后使用snprintf(),但不是打印 HEX 值,而是打印相应的 ASCII 值。

0 投票
1 回答
223 浏览

can-bus - 在 CAPL 中收到 ACK 后发送 CAN 帧(使用 CAPL 中的延迟/定时器)

我写了一个 CAPl 代码,它必须发送 CAN 帧来控制步进电机的步进。使用的步进电机是 TMCM-1311 模块。

在上述代码的for循环中,CAN帧是连续发送的,不等待ACK,发送第一个数据帧myMsg1用于将步进电机旋转到一定的步长,所以一旦发送该帧需要一些时间为使步进电机旋转到该位置,一旦它在该位置,则应发送其他 2 个 CAN 帧,即 myMsg2 和 myMsg3。在收到所有发送的 3 个数据帧的 ACK 之后,for 循环中的 i 应该递增,并且应该进行下一次迭代。但是在上面的代码中,for循环正在执行而不等待来自CAN帧的ACK,所以我认为应该在那里使用定时器来延迟并在收到ACK后执行下一次迭代。我尝试使用计时器,但找不到所需的解决方案,

0 投票
1 回答
455 浏览

capl - CANalyzer CAPL:确定总线是否休眠(总线上没有消息)

我正在使用 CANalyzer 7.0 并试图弄清楚如何在 CAPL 中确定 CAN 总线是否已进入睡眠状态(不再发送消息)。我怎样才能做到这一点?

我尝试使用 BusLoad 读取,sysGetVariableInt()但它总是返回零。也许我有错误的名称空间/变量名。我在哪里可以找到所有系统变量?

编辑 - 我试过这个:

我也尝试过更改命名空间,但不确定在哪里可以找到系统命名空间列表。

0 投票
1 回答
468 浏览

capl - 如何使用 Capl 在 Canoe 中循环所有接收到的信号数据?

假设我有一条名为 msg1 的消息,其中包含许多初始值为 0 的信号 (sig1,sig2,sig3,......sig20),如何使用 capl 循环所有接收到的信号数据并打印信号名称已触发或它的值从 0 更改为 1?

0 投票
1 回答
508 浏览

c# - 使用 Vector.Diagnostic.dll 发送诊断请求

我想使用 python 发送一些诊断请求。代码:

我还在 CANoe 的 COM Hierarchy 中附加了以下图像。 COM Object Hierarchy 它说设备应该有一个对象诊断。但在我这边,设备没有诊断对象,只有:ApplicationSocket、AudioInterface 和 MostDisassambler。因此,我无法访问诊断对象以创建请求。

设备详情

CANoe.诊断失败

设备.诊断

因为我无法访问诊断对象,所以我尝试直接使用Vector.Diagnostics,这似乎无法识别测量值,我试图了解如何链接它们。

当我尝试使用时,Vector.Diagnostics.Application.GetEcu()我收到了 NoneType 并且我的假设是该GetEcu()方法没有看到 CANoe 打开。

你知道如何链接它们吗?

0 投票
0 回答
288 浏览

canalyzer - 为什么 CANalyzer 在 P2ServerMax 之后不超时

P2ServerMax 和 P2*ServerMax 在 CANalyzer 中配置正确。但是,发送“10 01”后,需要 100ms 才能收到“50 01”,并且 CANalyzer 没有检测到超时。中间没有收到“10 78”。

我该如何解决?

0 投票
1 回答
151 浏览

testing - 是否可以使用 CANalyzer 将错误帧传输到总线上?

我希望以周期性速率将错误帧传输到我的 CAN 总线上以进行测试。我有 CANalyzer,在任何地方都无法将其视为一个选项。

我目前只是在 GND 到 CAN 线之间运行一条线,以强制总线上出现错误,但这并不理想。

感谢任何帮助!

谢谢。

0 投票
1 回答
395 浏览

vector - 在 CAPL CANalyzer 中使用 struct

我正在编写一段代码来模拟一些诊断。

我使用 CANalyzer 创建了一个面板,其中包含需要使用选项列表(称为组合框)显示的大量信息

这是我创建的面板

这是我使用 CANalyzer 中的系统变量面板创建的结构

我想要做的是创建一个需要使用 SPN 组合框(选择列表)选择的结构的巨大数组,并且结构/对象的其他参数需要填充面板的其他元素。

如果不为每个元素做大量的 SysSetVariableInt 或 SysSetVariableString,这可能吗?

在我使用另一种技术做这些事情之前,我用存储在一个巨大矩阵中的所有信息解析文件,然后我对与 SPN 选项列表关联的变量使用“on sysvar update”方法来获取索引那个,所以我在矩阵中搜索那个索引,然后我使用SysSetVariableInt或其他,将值设置为面板中的元素。

为了填充选择列表,我发现了一个非常好的方法“sysSetVariableDescriptionForValue”,它有助于添加元素,但是这个方法的问题是,如果你想改变元素,你可以覆盖,而不是全部改变......所以,如果在下一次迭代中你在选择列表中推送更少的元素,你也会看到旧的。

使用“sysSetVariableDescriptionForValue”,您基本上是通过代码编写该sysvariable的值表,并且不可能(根据Vector)在运行时被刷新......:/

我很想用另一种方法来做这件事,也许结构是可能的......我真的不知道。

任何帮助将不胜感激!

问候!