can-bus - 如何使用 CAPL 程序发送消息
问题描述
我是 CANoe 的新手,也是 CAPL 语言的新手。我想知道如何在 CAN 1 上定期(100 毫秒)发送一条消息(每次发送时在有效负载中增加一个字节,即消息计数器),在 CAN2 上接收此消息,当它自动收到时,应发送响应,将接收到的消息计数器作为有效负载中的一个字节。
解决方案
在 CANoe 中,请点击F1进入指南,然后浏览章节CAPL Functions
并通读。这将帮助您理解以下原则。
为了定期发送消息,您需要message
在脚本块中声明一个变量类型variables
和一个计时器。CAN 关联通常在 *.dbc 文件中完成,但您甚至可以在 CAPL 脚本中配置 CAN 总线。
variables {
message 0xA m1;
// 0xA is the message ID from your *.dbc can database used in the simulation
timer timer100;
}
您想设置计时器,例如在模拟开始时,然后在计时器回调中输出您的消息,如下所示:
on start {
timer100.set(100);
}
on timer timer100 {
// reset timer
timer100.set(100);
// do stuff to your message content
// for instance m1.signalA = 0x01;
// ...
output(m1) // send m1 on CAN bus
}
您还想在阅读消息时做一些事情,然后做类似的事情
on message m2 {
// ...
}
您可能想先自己尝试一下,然后可能会更新您的问题以更准确。现在,感觉就像你并没有真正付出任何努力。
推荐阅读
- mysql - NodeJS xdevapi - 创建与 MySQL 数据库的连接
- javascript - 按内容选择消息(discord.js)
- c# - 为什么简单程序的bin输出中有这么多DLL
- java - 如何实现 java tic tac toe 游戏功能
- python-3.x - 使用 Pandas 根据条件按一列分组并前向替换多列中的值
- oracle-apex - 尽管已定义 Oracle Apex-Cant 查找区域按钮
- django - Django覆盖模型保存方法返回旧数据
- svg - 我的 SVG 有什么问题 - 它不会填充线性渐变?
- snowflake-cloud-data-platform - 雪花 - 如何在雪花节点 sdk 的批量插入中使用 array_construct()
- python - 如何使用“重置”回调按钮将散景图形重置为其初始状态?