Canoe有独立的编译开发软件CAPL,CAPL是一个编译器,在CAPL里面编写代码,编译后可以在Canoe中运行。测试工程师可以在CAPL编写自动化测试脚本,在Canoe中自动发送Can报文,以及判断接收的Can报文。
CAPL代码诊断脚本如下:
1、打开Canoe,在Simulation中,点击Simulation Setup。在红蓝线处右键,然后选择CAPL Test Module。
2、在Test 1方块左下角,点击小铅笔图标,弹出对话框,新建一个CAPL的程序文件,扩展名为.Can。
3、输入新建的文件名后会自动弹出CAPL编辑的界面。之后在这里编写测试脚本代码。
4、自动化测试脚本编写
4.1 Includes{}里面是包含的头文件。variables{}是定义全局变量的地方,如需要定义一些全局变量,可以在里面定义。
4.2 发送报文,首先要建立一帧报文。message * req,resp; message是报文的定义变量,建立了两个报文,req是要发送的报文,resp是要接收的报文。
4.3 之后需要建立一个MainTest函数,类似单片机main()的原理,程序会在这个函数里面运行。
4.4 编辑报文内容并发送。首先定义报文的长度为8,req.dlc=8; 定义报文的ID为0x7DF(诊断的功能寻址请求ID),req.id = 0x7DF; 然后定义报文8个byte的内容,这里定义的是诊断功能寻址进入扩展会话模式,02 10 03
4.5 发送报文,outout()是发送报文的函数,直接调用即可,output(req); 点击左上角Compile编译,之后就可以进入Canoe中运行。CAPL模块还需要配置才能运行。需要在test的方块上右键,选择Configuration,之后immediately打上勾,点击OK。
- 4. 6 判断接收指定报文。
- testWaitForMessage(resp.id,5100)函数,等待指定的报文,resp.id是要接收的报文ID,5100是在5100ms内等待。testGetWaitEventMsgData(resp)函数,获取这帧报文的内容,通过write打印出来。
运行结果如下:
标签:req,定义,Canoe,报文,CANoe,CAPL,测试,resp From: https://www.cnblogs.com/laoluoits/p/16944052.html