CANoe的CAPL编程基础(1)

CANoe是德国Vector公司开发的专门用于仿真和测试CAN通讯的软件,在汽车电子开发中使用十分广泛。在使用时会用到CANoe的CAPL编程,这是一种类C 语言的编程语言,属于一种面向对象的语言,并不复杂,下面对CAPL编程的一些基础知识进行一些总结:
1、定时器
CAPL中的定时器使用很频繁,不如当你测试时需要向纵向定时发送某条CAN报文时就需要用到定时器;
定时器的声明:

msTimer  myTimer1;//声明了一个ms定时器,定时单位是毫秒
timer    myTimer2;//声明了一个以秒为单位的定时器;

设置定时器:

setTimer(myTimer1,500);//设置定时器myTimer1为一个500ms定时器;
setTimerCyclic(myTimer2,1);//设置定时器myTimer2为一个1s为周期的循环定时器;

设置定时器定时事件,即当定时器计时时间到时将要执行的操作:

on timer myTimer1
{
     .......
}

2、信息的操作和发送

message 0x7ff Msg;//声明一个message,ID=0x7ff
Msg.dlc=8;//设置其DLC=8;
Msg.id=0x100;//更改其ID=0x100;
Msg.byte(0)=55;//设置数据场的第一个字节为55

output(Msg);//发送Msg

3、节点上下线操作
节点时在dbc文件中定义的节点,如VCU,BMS,MCU等,有时需要将它们离线,离线后不再向总线上发送报文,在线时,可以向总线上发送报文。
节点上线:

void testSetEcuOnline(dbNode aNode);
void testSetEcuOnline(char aNodeName[]);

节点下线:

void testSetEcuOffline(dbNode aNode);
void testSetEcuOffline(char aNodeName[]);

未完,待续。。。。。

猜你喜欢

转载自blog.csdn.net/shuoyueqishilove/article/details/78236777