vFlash Automation功能介绍

描述

vFlash是一款上位机刷写软件。用户既可以通过vFlash的图形用户界面实现ECU刷写,也可以将配置好的工程导出成.vflashpack工程,借助于自动化接口(Automation API)集成到已有的环境中实现自动化刷写。

使用Automation API,客户端应用程序可以加载现有的vFlash工程,启动/停止刷写过程以及获取刷写进度和状态信息等。用户可以在vFlash软件界面中、安装路径下或者帮助文档中获取Automation API的详细定义、描述以及示例工程(注:本文示例及相关截图以vFlash v10为例)。

API

vFlash支持C++/C#调用

在vFlash安装完成之后,在Visual Studio工程中添加VFlashAutomationTypes.h和VFlashAutomation.h的头文件,就可以使用vFlash Automation C++ API函数加载现有的vFlash工程,启动/停止刷写过程以及获取刷写进度和状态信息等。

API

API

上图中的main函数中展示了常用的vFlash Automation API函数,例如在函数vFlashLoadProject中添加所使用的.vflashpack工程的路径,以及如需进行压力刷写测试,可以在for语句中设置需要重复刷写的次数。

刷写过程如下图:

API

也支持通过C#调用vFlash的.vflashpack工程,实现刷写。

用户可以在vFlash安装目录下找到C++/C#调用.vflashpack工程的示例,路径如下:

C:UsersPublicDocumentsVectorvFlash10ExamplesAutomationvFlashAutomation

vFlash支持.bat调用

vFlash支持.bat调用,在vFlash的安装目录下提供了一个vFlashCIAutomation示例,路径如下:

C:UsersPublicDocumentsVectorvFlash10ExamplesAutomationvFlashCIAutomation

在该示例工程中,通过C#调用vFlash Automation API函数生成了一个可执行文件vFlashCIAutomationExampleConsoleApp.exe;在ExecuteFlashing.bat文件中调用该可执行文件,设置vFlash工程的路径,如下图:

API

配置好ExecuteFlashing.bat文件后,即可脱离vFlash的图形用户界面,通过命令行或者双击ExecuteFlashing.bat文件的方式实现ECU刷写,刷写过程如下图:

API

vFlash支持Python调用

Python程序可以调用vFlash对ECU进行刷写。vFlash提供一个包含C函数API的DLL文件,Python可以加载此DLL,并使用Python “ctypes”模块调用C函数。

DLL文件的路径如下图:

API

Python调用vFlash刷写ECU的过程如下图:

API

vFlashLoadAndFlashProject.py文件中包含的Python程序请参看下方链接:

https://support.vector.com/kb?id=kb_article_view&sysparm_article=KB0012257

vFlash支持CANoe调用

CANoe可以通过CAPL函数访问vFlash Automation API,实现自动化刷写,如下图:

API

用户可以在vFlash和CANoe安装目录下找到CANoe示例工程:

1.

CANoe安装目录下的示例工程(以CANoe v18为例)

C:UsersPublicDocumentsVectorCANoeSample Configurations 18.3.118ProgrammingvFlashAutomation

2.

vFlash安装目录下的示例工程

C:UsersPublicDocumentsVectorvFlash10ExamplesvFlash with CANoevFlashViaNodeLayer

在该示例工程中,通过在CANoe的节点中添加vFlash节点层DLL文件,即可使用CAPL函数访问vFlash Automation API。该示例中展示了两种CAPL API函数以及对应的测试用例。

API

Blocking Reprogramming API

测试用例Blocking Reprogramming API中使用到的API函数只能在Test Modules或者Test Units中使用,因为只有在测试用例中才允许使用TestWaitFor…函数。

这些API函数允许采用简单的程序来控制刷写ECU,程序流将在函数中停止,直到任务完成或检测到错误。文件Utilities.cin中的函数TestWaitForvFlashPackReprogrammed将在一次调用中处理所有必要的步骤,在simple-use-case.can中对此进行了展示。

API

必要的步骤将按下图展示的顺序自动执行,包括启动vFlash、加载工程、开始刷写、卸载工程和关闭vFlash。

API

Non Blocking Reprogramming API

测试用例Non Blocking Reprogramming API中使用到的API函数可以在任何节点中使用,而不仅仅是在Test Modules或者Test Units中使用。

在仿真节点中,CAPL程序流不得停止,因此不可以使用TestWaitFor…函数。但可以使用一组不同功能的函数来调用vFlash进行刷写。文件Utilities.cin中的函数vFlashStartPackReprogramming启动CAPL函数调用序列,通过调用同样在该文件中的CAPL回调函数来指示完成。在simple-use-case.can中对此进行了展示。

API

 

API

执行这些用例需要在上位机安装vFlash且具有vFlash软件的License。

此外,CANoe工程只需进行一些调整,还可以实现对LIN、FlexRay和Ethernet等ECU进行刷写。

vFlash支持CANoe.DiVa调用

CANoe.DiVa可以加载.vflashpack工程,生成刷写相关的测试用例。在CANoe.DiVa中需要做以下配置(以CANoe.DiVa v18为例):

在Test Configuration->Download页面需要做如下配置:

1.

在下图1处加载一个.vflashpack工程;

2.

如果CANoe.DiVa软件加载的诊断数据库中有擦除内存相关的服务,可以在下图2处选择相应的服务,以及设置擦除内存所需的时间;

3.

在下图3处勾选配置项并设置支持正常刷写的最小/最大电压值。

API

在Test Configuration->Tests页面需要勾选“Download Tests”且做如下配置:

1.

勾选下图1处的配置项,生成刷写过程中掉电的测试项;

2.

勾选下图2处的配置项,生成刷写过程中停止刷写序列的测试项;

3.

勾选下图3处的配置项以及设置Durability test的次数,生成重复多次刷写的测试项。这里设置的是重复正向刷写的次数,支持设置的最大刷写次数是99次。

API

将CANoe.DiVa工程导入CANoe工程中(版本为CANoe v18),执行刷写测试用例。

API

*注:在CANoe中执行CANoe.DiVa生成的刷写测试用例时,需要同时具备CANoe、CANoe.DiVa以及vFlash这三个软件的License

vFlash支持CANape调用

CANape可以加载.vflashpack工程,完成ECU刷写。在CANape软件中,通过Tools->vFlash加载.vflashpack工程后,会弹出Vector vFlash Run的界面,点击“Flash”按钮,执行刷写。

API

*注:CANape中的vFlash无法创建和编辑vFlash工程。如需创建和编辑vFlash工程,需要使用vFlash软件

vFlash支持Indigo调用

Indigo可以加载vFlash的.vflashpack工程,实现多个ECU的按序刷写。在Indigo中,通过Start->Manage Flash Projects加载.vflashpack工程(以Indigo v10为例)。

API

 

API

然后,在Manage Windows页面添加Reprogramming的窗口,点击Action下方的按钮即可执行刷写,如下图:

API

小结

vFlash采用定制化插件vFlash Template的方式适配不同刷写规范的刷写流程,刷写功能稳定可靠,目前已有100多个整车厂的vFlash Template可提供给客户使用。借助于vFlash提供的Automation API,可以将.vflashpack工程集成到多种环境中实现自动化刷写,以满足用户更多的刷写场景。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分