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

    文章

    995

    浏览量

    57523
  • Vector
    +关注

    关注

    3

    文章

    105

    浏览量

    10105

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用Python/MyHDL创建自定义FPGA IP

    使用 Python/MyHDL 创建自定义 FPGA IP,与 Vivado 集成,并通过 PYNQ 进行控制——实现软件上的简单硬件设计。
    的头像 发表于 04-09 09:53 323次阅读
    使用Python/MyHDL创建<b class='flag-5'>自定义</b>FPGA IP

    MCUXpresso SDK创建自定义清单

    概述 MCUXpresso SDK 24.12 介绍塞德恩汉CED支持自定义清单,使开发人员能够精确定义其工作区中包含哪些组件、驱动程序、中间件和板支持包。此功能在极简主义、可重复性和 CI/CD
    发表于 04-07 07:11

    极海APM32F427如何实现自定义USB HID设备与PC进行通信

    最近需要使用到 APM32F427 枚举成Custom HID设备进行用户自定义通信,但是官方的例程只有提供的HID枚举为鼠标或者键盘类型的设备。这里记录一下,怎么使用Geehy官方的USB中间件,实现
    的头像 发表于 03-30 09:30 2810次阅读
    极海APM32F427如何实现<b class='flag-5'>自定义</b>USB HID设备与PC进行通信

    如何为 Vision Five 2 编译自定义 Linux 内核?

    Vision Five 2 的 Debian 用户指南只提供了半页关于如何编译自己的内核的相当稀疏的内容。仅从该文档中,我无法制作我的自定义内核。那里的信息似乎相当不完整。如果有人能提供一些
    发表于 02-24 07:44

    极海APM32F427移植CherryUSB实现自定义USB HID设备

    最近需要使用到APM32F427枚举成Custom HID设备进行用户自定义通信,但我又不想要使用官方的USB中间件去做一个USB Custom HID设备。了解到Cherry USB
    的头像 发表于 01-20 09:52 4096次阅读
    极海APM32F427移植CherryUSB实现<b class='flag-5'>自定义</b>USB HID设备

    电能质量在线监测装置的自定义监测时段功能有哪些应用场景?

    多个领域,具体如下: 一、工业生产场景(核心应用领域) 工业用户的电能质量与生产设备启停、负荷波动强相关,自定义监测时段可实现 “针对性监测、精准溯源”。 生产线运行时段高频监测 配置方式 :设定生产时段(如 8:00-22:
    的头像 发表于 12-10 14:01 553次阅读
    电能质量在线监测装置的<b class='flag-5'>自定义</b>监测时段功能有哪些应用场景?

    无图形界面模式下自定义检查工具的应用

    此前文章已介绍 ANSA 中的自定义检查工具。本文将探讨该功能在无图形界面(No-GUI)模式下的应用,旨在满足标准化工作流程的需求,适用于需要高度自动化的前处理场景。通过集成自定义检查,用户可实现工作流程的高效自动化运行。
    的头像 发表于 11-30 14:13 812次阅读
    无图形界面模式下<b class='flag-5'>自定义</b>检查工具的应用

    使用Firebase AI Logic生成图像模型的两种新功能

    为您的应用添加自定义图像,能够显著改善和个性化用户体验,有效提高用户参与度。本文将探讨使用 Firebase AI Logic 生成图像的两种新功能: 其一是 Imagen 专属编辑功
    的头像 发表于 11-30 09:28 586次阅读

    关于协处理器自定义指令的实现

    ,4指令一共能定义出512条自定义指令。 现在指令已经介绍完了,相信学过汇编的同学都知道汇编指令中有这源操作数跟目的操作数这
    发表于 10-31 06:36

    软硬件协同技术分享 - 任务划分 + 自定义指令集

    SoC自带NICE协处理器接口,且支持传输自定义指令。本设计在软件层面利用C语言内联函数的方式实现了6条自定义函数的定义。 软件上传输参数需要经过取指译码执行写回等
    发表于 10-28 08:03

    采用汇编指示符来使用自定义指令

    、采用.insn汇编指示符实现risc-v自定义指令。这种方式可以指定工具来选择寄存器,也可以自己选定寄存器。指令格式如下(引自gnu 汇编器手册): 演示案例可以查看芯来官方案例,这里
    发表于 10-28 06:02

    LOTO示波器自定义解码功能—CANFD解码

    LOTO示波器软件更新了自定义解码功能,并在bilibili上传了演示视频,视频链接: https://www.bilibili.com/video/BV1wq3ezjEjQ
    的头像 发表于 07-11 10:34 1231次阅读
    LOTO示波器<b class='flag-5'>自定义</b>解码功能—CANFD解码

    大彩讲堂:VisualTFT软件如何自定义圆形进度条

    VisualTFT软件如何自定义圆形进度条
    的头像 发表于 07-07 17:10 2012次阅读
    大彩讲堂:VisualTFT软件如何<b class='flag-5'>自定义</b>圆形进度条

    KiCad 中的自定义规则(KiCon 演讲)

    设计规则 展开,重点探讨了 那些复杂却强大的特性。 由于这些规则本质上是基于文本表达的,需要用户细致入微的理解。演讲的 核心目标 是引导用户有效实施这些规则,从而 规避布线问题、提升制造良率,并优化设计流程 。 讨论 始于对自定义
    的头像 发表于 06-16 11:17 2640次阅读
    KiCad 中的<b class='flag-5'>自定义</b>规则(KiCon 演讲)

    HarmonyOS应用自定义键盘解决方案

    自定义键盘是一替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯,对按键布局进行可视化重构、设置多功能组合键位,使输入更加便捷和舒适。在安全防护层面,
    的头像 发表于 06-05 14:19 2685次阅读