【发布时间】:2015-02-12 05:47:10
【问题描述】:
我使用 Vector 软件为 CANoe 中的测试自动化创建了一个测试环境,并且对于大多数测试用例,我需要传输连续的消息。
例如。 Msg1.Signal1 = 1 3 秒
和
Msg1.Signal1 = 4 2 秒。
我浏览了帮助内容和一些在线可用的 pdf,可以为此编写以下逻辑:
variables
{
message 0x555 msg1 ;
mstimer timer1; // define timer1
}
on message msg1
{
setTimer(timer1,3000); // initialize timer
}
on timer timer1
{
setTimer(timer1,3000); // reset timer
msg1.signal1 = 1; // change the data
output(msg1); // output message
}
但是程序的整个运行时间大约是 200 毫秒,因此在 3 秒内没有传输 msg。用 2 秒的时间段重写了类似的代码。谁能告诉我代码有什么问题或如何进一步实现这一目标。
提前致谢。 问候, 维韦克
【问题讨论】:
-
on message msg1 ...可以删除。我怀疑您以错误的方式使用环境。 (你必须点击那个红色按钮才能开始模拟)。 -
尊敬的 user2225104,您说得对,点击红色按钮后模拟开始,但“on message msg1”是一个事件,每当 msg1 消息在总线上输出时,“on message msg1”事件就是执行。
-
我认为
on message msg1表示如果 msg1 传入。但是如果你的 CAN 过滤器是打开的,你很可能会收到你发送的消息...... -
您最好尝试使用交互式生成器块来查看您尝试执行的操作。
-
要设置您的计时器,您可能需要在 start() 上添加一些内容。请参阅vector.com/portal/medien/vector_cantech/faq/… 并搜索“on start”。不知道是否还需要那种神秘的
@@东西。自从我上次使用那个东西以来已经有好几年了。 (第 36 页)
标签: automation embedded serial-communication capl