首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CANoe中的连续消息传输

CANoe中的连续消息传输
EN

Stack Overflow用户
提问于 2015-02-11 07:45:06
回答 1查看 7.5K关注 0票数 1

我使用向量软件为CANoe中的测试自动化创建了一个测试环境,对于大多数测试用例,我需要传输连续的消息。

例如。Msg1.Signal 1=1,持续3秒 和 Msg1.Signal 1=4,持续2秒。

我浏览了帮助内容和一些在线可用的pdfs,并为此编写了以下逻辑:

代码语言:javascript
复制
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 msg,因此在3秒内不传输msg。类似的代码已经用2秒的时间周期重写了。有人能告诉我代码有什么问题或如何进一步实现这个目标吗?

提前谢谢。你好,Vivek

EN

回答 1

Stack Overflow用户

发布于 2015-02-11 21:47:10

在下面的示例中,您将使用两个独立计时器,一个用于将信号设置为4,另一个用于将其值更改为1。

我添加了几个键盘事件,这样您就可以轻松地启动和停止切换过程。

代码语言:javascript
复制
variables
{
    message 0x555 msg1 ;
    mstimer timer1; // Timer1 defined in ms    
    mstimer timer2; // Timer2 defined in ms
}
on key '1'
{
    // This event is called every time the key '1' is pressed
    // This will START the whole signal toggling procedure
    setTimer(timer1,3000);
}
on key '2'
{
    // This event is called every time the key '2' is pressed
    // This will STOP the whole signal toggling procedure
    cancelTimer(timer1);
    cancelTimer(timer2);
}

on timer timer1
{
    msg1.signal1 = 1;       // Set signal1 to 1 
    output(msg1);           // Send the message over CAN

    setTimer(timer2,3000);  // Let the signal1 be 1 by 3 seconds
}

on timer timer2
{
    msg1.signal1 = 4;       // Set signal1 to 4 
    output(msg1);           // Send the message over CAN

    setTimer(timer1,2000);  // Let the signal1 be 4 by 2 seconds
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28449041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档