您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > CANoec-dll实现
CANoe是一个强大的总线仿真工具,通过CAPL语言可以实现较为复杂的ECU内部逻辑,有效仿真总线网络。但是在使用的时候经常会碰到CAPL库函数不够用的情况,比如需要用到AES加密时,CAPL没有对应函数,而又没有现成的CAPL加密代码。这时就需要编写一个CAPLdll文件,调用外部代码。本文介绍通过VisualStudio编译c代码生成CAPLdll。首先在CANoe的文档路径下可以找到一个CAPLdll的示例工程,直接在此基础上修改即可,我这里是存在C盘下:C:\Users\Public\Documents\Vector\CANoe\8.5(x64)\CANoeSampleConfigurations\Programming\CAPLdll\VS2005Project。打开sln文件,由于示例是2005版本,如果使用高版本需要进行单向升级,我使用2013版,升级后可以使用。如图所示,这个capldll.cpp就是需要修改的文件,这是一个c++工程,如果需要使用.c文件,只需在#include前后加上externa“C”{}即可正常编译。接下来就是加入自己的代码文件。为了制作AES加密库函数,我使用了embedTLS中的AES加密文件,加入工程即可。OpenCAPLDLLDemoprojectwithvisualstudioLocation:C:\Users\Public\Documents\Vector\CANoe\8.5(x64)\CANoeSampleConfigurations\Programming\CAPLdll\VS2005ProjectAddyourImplementationincapidll.cppfileNote:youalsocanaddtheImplementationtootherCppfile,butneedtoincludesomeHeaderfileIfthefunctionneedtobeexported,dobelowthings1.AddKeywordforthefunctionCAPLEXPORTfarCAPLPASCAL2.Findbelowtablethenaddyourfunctiondescriptioninit1st:ThefunctionnameofCAPL2nd:Thefunctionnamewhichwanttobeexported3rd:TheClassNameofDLL4th:Thedescriptionoffunction5th:TheTypeofresultvalueL:long,V:void,B:Array,D:int6th:Thenumberofinputparameter7th:TheTypeofinputparameter8th:IftheinputparametercontainsArray,weshoulduse\001tofileit,forothertypewecanuse\0009th:ThenameofinputparameterCompilingtheprojectandouputCAPLDLLTointegratedtheCAPLDLLToUse#PragmatoloadtheDLL,FORMydllthereare3functioncanbeusedbyCAPLToDefinedtheautomaticTestcasetovisitthesefunctions
本文标题:CANoec-dll实现
链接地址:https://www.777doc.com/doc-6311932 .html