0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用户自定义操作Custom Action的两种开发方式

Vector维克多 来源:Vector维克多 作者:Vector China 2021-09-02 17:55 次阅读

vFlash专为汽车OEM和ECU供应商中执行刷写任务的人员所设计,用以实现高效的ECU刷写。vFlash可以通过标准软件的图形界面进行控制,也可以简单地作为库集成到现有环境中实现自动刷写。使用特别版本“vFlash Station”,可以实现多达8个ECU的并行刷写。此外,使用vFlash Option Remote,可以实现远程刷写任务。

vFlash采用定制化插件vFlashTemplate定义不同刷写规范的刷写流程,全球已经有超过80家OEM定制vFlashTemplate。每个vFlashTemplate对应一份刷写规范或一家OEM相同流程的不同总线刷写规范。换句话说,同一个车型遵循同一份刷写规范,该车型上所有ECU可以使用同一个vFlashTemplate。

然而,在刷写规范所定义的统一刷写流程之外,不同的ECU可能还需要执行不同的动作来满足该ECU或用户特定的任务,例如刷写前读取ECU相关配置信息并记录,刷写后将这些配置信息重新写入新的软件中,同时生成报告。vFlash的自定义操作-Custom Action即可满足这样的任务需求。Custom Action分为Pre Custom Action和Post Custom Action(图1),即刷写执行前的自定义动作和刷写执行后的自定义动作。

Custom Action的开发可以采用手动和自动两种方式。

01

手动开发Custom Action

Custom Action是一个常规的C#/.NET程序集。但是,Custom Action开发必须调用一组vFlash所需的附加库,以便执行诊断任务。可调用的附加库为:

Vector.Diagnostics

Vector.vFlash.CustomActions

Vector.vFlash.Tools

Vector Diagnostics API是Vector Diagnostic Scripting(VDS)诊断脚本库,通过该脚本库可以调用诊断数据库CDD或ODX中描述的诊断服务,从而快速有效地获取诊断服务的发送与接收指令。

Vector vFlash Custom Action API定义的函数通常用于与vFlash软件相关的Custom Action的动作,例如CustomActionAttribute接口函数提供将数据从vFlash传输给Custom Action的方式,IAuthenticationProperties接口函数用于向ECU验证vFlash的信息。

Vector vFlash Tools API用于在Custom Action中生成报告。

用户可以在vFlash软件界面中、安装路径下或帮助文档中获取以上API的详细定义、描述以及示例工程(图2)。

根据这些API以及参考示例工程,用户通过C#编程软件(例如Microsoft Visual Studio)实现所需的Custom Action,编译生成DLL动态链接库。

此外,为了简化用户编程的工作量,在vFlash软件安装包中附带有Visual Studio Extension for Custom Action Development插件安装(图3)。

该插件适用于Visual Studio 2015和2017。通过该插件,可以在新建工程时选择vFlash Custom Action模板(图4),该模板工程中已经正确关联了Vector Diagnostics、Vector vFlash Custom Actions等相关程序集(图5),便于用户快速开启程序编辑。

02

自动开发Custom Action

参数化诊断仪Indigo具有记录诊断脚本的功能Script Recording(详情可见《基于参数化诊断仪Indigo的二次开发》),该功能记录的诊断序列可保存为vFlash Custom Action脚本提供给vFlash工程使用。使用Indigo的脚本记录功能,无需用户掌握编程技巧,即可快速有效地定制诊断序列脚本。

在Indigo的脚本记录器的界面上(图6),可以通过选择激活的ECU列表,选择需要执行诊断操作的ECU;通过左侧的服务列表执行具体的诊断服务;同时可以通过菜单行的确认对话框等窗口定义脚本中所需的非诊断序列的执行动作,满足脚本执行过程中的用户交互的相关功能。

在完成所需的脚记录后,可将脚本另存为vFlash Custom Action脚本(图7):

保存脚本之前还可以根据用户需求设置vFlash Custom Action属性(图8),确认后即可保存C#工程:

通过Indigo的脚本记录器生成的脚本工程,还可以通过C#编译软件二次开发,满足用户更多的自定义需求,编译生成DLL动态链接库。

03

Custom Action的使用

手动或自动开发Custom Action的DLL动态链接库之后,可以在vFlash工程中,通过Configure-Custom Action页面加载相关ECU的CDD文件以及开发好的DLL文件,同时对相关属性进行配置(图9)。

添加Custom Action内容的vFlash工程在执行时,可在软件刷写界面查看Custom Action执行的情况以及Trace(图10):

vFlash Custom Action的主要用例:

质量保证 – 例如在数据库或报告中读取ECU信息并记录刷写成功与否信息;

标签打印 – 读取序列号等ECU信息并将信息发送到打印机;

恢复ECU信息 – 刷写前从ECU读取数据,刷写后重新写入/恢复数据;

参数化 – 刷入参数化系统后将数据写入ECU。

04

小结

vFlashTemplate固化刷写流程的主序列,保证刷写功能的稳定性和可靠性,目前已有80多个OEM的vFlashTemplate可供客户使用。

Custom Action能够满足刷写流程的用户自定义应用场景,在不改动刷写流程主序列的前提下,实现刷写序列的定制化。

通过Custom Action的补充,在刷写的同时实现ECU所需数据的自动写入或报告自动生成,使得刷写工程更完整,更易用。

责任编辑:haq

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

    关注

    14

    文章

    881

    浏览量

    54406
  • Vector
    +关注

    关注

    3

    文章

    56

    浏览量

    8559

原文标题:vFlash的用户自定义操作-Custom Action

文章出处:【微信号:VectorChina,微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划。
    的头像 发表于 08-15 11:49 567次阅读
    EtherCAT运动控制器PT/PVT实现<b class='flag-5'>用户</b><b class='flag-5'>自定义</b>轨迹规划

    NVIDIA NeMo加速并简化自定义模型开发

    如果企业希望充分发挥出 AI 的力量,就需要根据其行业需求量身定制的自定义模型。
    的头像 发表于 07-26 11:17 690次阅读
    NVIDIA NeMo加速并简化<b class='flag-5'>自定义</b>模型<b class='flag-5'>开发</b>

    esp32s2如何自定义HID的USB开发

    请问一下,想自定义HID的USB开发,对于底层的操作如中断、上位机发送的请求、回复上位机请求等这些底层操作有示例吗?通过ESP-IDF、Arduino或者Rust的
    发表于 06-17 07:18

    Chrome移动版支持自定义菜单栏功能

    在先前版本中,用户通过点击浏览器右上角的三个点按钮即可调出包含各类图标与操作的菜单。而此次更新后,Chrome新增了“自定义菜单”选项,允许用户自主控制该区域的展示内容。
    的头像 发表于 05-27 15:00 744次阅读

    【AWTK使用经验】如何自定义combo_box下拉框样式

    需要在ZTP800示教器实现一个用于日期选择的下拉框,并且还要求对下拉框做一些美化,此时就需要用户自定义下拉框样式。下面将结合该需求介绍两种修改combo_box
    的头像 发表于 05-23 08:25 430次阅读
    【AWTK使用经验】如何<b class='flag-5'>自定义</b>combo_box下拉框样式

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三不同的弹窗,第一直接使用公共组件,后两种使用CustomDialogController实现自定义
    的头像 发表于 05-16 18:18 1292次阅读
    HarmonyOS<b class='flag-5'>开发</b>案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 613次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    HarmonyOS开发案例:【UIAbility和自定义组件生命周期】

    本文档主要描述了应用运行过程中UIAbility和自定义组件的生命周期。对于UIAbility,描述了Create、Foreground、Background、Destroy四生命周期。对于页面
    的头像 发表于 05-10 15:31 1188次阅读
    HarmonyOS<b class='flag-5'>开发</b>案例:【UIAbility和<b class='flag-5'>自定义</b>组件生命周期】

    HarmonyOS实战开发-深度探索与打造个性化自定义组件

    今天分享一下 什么是自定义组件?及其自定义组件的实战。 做过前端或者android开发的都知道自定义组件,鸿蒙中显示在界面上的UI都称为组件,小打一个按钮,再到一个列表。 鸿蒙提供的组
    发表于 05-08 16:30

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 976次阅读
    HarmonyOS<b class='flag-5'>开发</b>实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下
    的头像 发表于 04-08 10:17 604次阅读

    自定义系统时钟频率后,用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致?

    写了一个自定义系统时钟频率的函数,然后自定义系统时钟频率为28MHz,在这个频率下用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致? 代码在附件中,哪位大神帮忙看下是什么原
    发表于 03-25 21:45

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 878次阅读
    博途<b class='flag-5'>用户</b><b class='flag-5'>自定义</b>库的使用

    Maxwell中两种用户自定义材料库的实现方法

    Maxwell支持两种用户自定义材料库。一是User Library(UserLib),另一是Personal Library(Pers
    的头像 发表于 12-14 17:33 5089次阅读
    Maxwell中<b class='flag-5'>两种</b><b class='flag-5'>用户</b><b class='flag-5'>自定义</b>材料库的实现方法