概述
CAPL程序可以调用C/C++程序实现的函数接口,这些函数需要按照特定的规则封装在动态链接库(DLL)中。
如何创建一个CAPL DLL工程
CANoe提供了CAPLdll的Demo。安装CANoe后Demo的路径在:
C:\Users\Public\Documents\Vector\CANoe\Sample Configurations 13.0.155\Programming\CAPLdll
路径中包含两个VS Project和一个CMakeProject.
CAPLdll
我们可以根据需要选择demo工程作为base进行开发。
以VS 2017 Project为例,进入目录后双击capldll.sh打开vs工程:
VS 2017 Project
如何将C/C++函数导出到CAPL
dll通过一个函数表(function table)将函数导出到CAPL。
function table
表中第一行包含版本信息,格式定义:
图片.png
需要导出的函数定义格式:
Using the Export Table
如何创建CAPL 回调函数
CAPL回调函数可以在CANoe运行时被CAPL DLL独立调用。CAPL回调函数的接口声明描述可以在文件VIA_CDLL.h 和 VIA.h中找到。
Demo中实现了一个CaplInstanceData类来处理回调函数,用户可以参考这个类来定义自己的回调函数。
在CAPL DLL中获取CAPL函数句柄:
图片.png
在CAPL文件中实现回调函数:
图片.png
注意:CAPL文件中的回调函数参数定义要与CAPL DLL工程中一致。
如何在CAPL中使用DLL
将DLL集成到CAPL中有两种方式:
-
从Options添加
图片.png -
在CAPL文件中添加
图片.png