一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于python的自动化A2L生成工具的制作方法

2022-12-13 21:42:14 来源:中国专利 TAG:

一种基于python的自动化a2l生成工具
技术领域
1.本发明涉及一种汽车零部件行业软件,尤其是涉及一种使用于汽车零部件行业软件开发过程中的自动化a2l生成工具。


背景技术:

2.随着汽车产业的不断发展,越来越多的汽车零部件也都能够通过汽车零部件行业软件进行软件控制其相关执行功能,而汽车行业零部件在软件开发过程中需使用a2l文件来通过inca、canape等工具借用xcp/ccp协议对试验数据进行实时监控以及标定。然而当前策略开发使用matlab生成策略代码以及a2l文件,只能每个模块单独生成,且生成的多个a2l需完全按照对应工具的要求进行地址及格式更新,而这也给软件开发人员带来工作量大、效率低等诸多不便。现有汽车零部件软件行业现状一般是通过vector的asap2_tool-set-a2l工具来实现,该工具包含creator、merger、updater和modifier等多个子模块,而这些需要多个子模块的工具包使用都需要较为昂贵的软件使用购买费用,导致汽车零部件软件开发成本居高不下;由于购买工具链费用比较昂贵,因此开发这样一种自动化生成工具,帮助大家解决该问题。


技术实现要素:

3.本发明为解决现有汽车零部件行业软件存在着工作量大效率低,a2l文件工具需要较为昂贵的软件使用购买费用,导致汽车零部件软件开发成本居高不下等现状而提供的一种提高汽车零部件行业软件开发人员工作效率,降低工作量,降低汽车零部件行业软件开发成本的基于python的自动化a2l生成工具。
4.本发明为解决上述技术问题所采用的具体技术方案为:一种基于python的自动化a2l生成工具,其特征在于包括执行开始后的如下步骤:a1.新建打开写入tcu_temp.a2l文件头,执行定义输出生成的文件格式命名为tcu_temp.a2l;a2.开启开始位置;a3.遍历a2l目录;a4.按顺序指向文件;a5.判断是否完成所有文件,如果判断为已经完成所有文件的,执行本次流程的结束步骤;a6.上述a5步骤中,若判断为未完成所有文件的,则执行下列第a7步骤;a7.对未完成的文件执行是否a2l文件的判断;a8.上述a7步骤中,若判断为a2l文件的,则执行遍历a2文件,此时关闭结束位置;若判断为不是a2l文件的,则返回至执行上述a4步骤;a9.对上述a8步骤遍历a2文件后,执行是否文件尾的判断;a10.上述a9步骤中,若判断为文件尾的,则返回至执行上述a4步骤;
a11.在上述a步骤中,若判断为不是文件尾的,则执行是否开始位置的判断;a12.在上述a11步骤中,若判断为不是开始位置的,则执行是否结束位置的判断;a13.在上述a12步骤中,若判断为是结束位置的,则执行写入tcu_temp.a2l步骤后并返回至执行上述第a8步骤;a14.在上述a12步骤中,若判断为不是结束位置的,则执行写入tcu_temp.a2l且开始结束位置后并返回至执行上述第a8步骤;a15.在上述a11步骤中,若判断为是开始位置的,则执行是否正文的判断;a16.在上述a15步骤中,若判断为是正文的,则执行写入tcu_temp.a2l且关闭文件头标志步骤后并返回至执行上述第a8步骤;a17.在上述a15步骤中,若判断为不是正文的,则直接返回至执行上述第a8步骤。
5.提高汽车零部件行业软件开发人员工作效率,降低工作量,降低汽车零部件行业软件开发成本。
6.作为优选,a2l文件合并完成后,最后需对a2l文件中标定量以及观测量获取对应的地址信息,自然而然需解析软件编译生成的map地址表,其中包含全局的标定量以及观测量,最终命名生成文件名称为tcu.a2l。
7.作为优选,所述的包含全局的标定量以及观测量,最终命名生成文件名称为tcu.a2l的流程包括开始后的如下步骤:b1.解析map地址文件;b2.按变量名称、结构体首地址名称、数组首地址名称提取所有指定的标定区以及ram区,flash区对应的address存入bufferl;b3.解析合并之后的a2l文件;b4.判断观测量/标定量是否在bufferl,若判断不在bufferl的,则返回执行上述第b2步骤;b5.上述b4步骤中,若判断在bufferl的,则执行下列第b6步骤~第b7步骤是否全局变量的判断;b6.上述b4步骤中,若判断为是全局变量的,则执行获取对应address步骤;b7.上述b4步骤中,若判断为不是全局变量的,则执行是否数组的判断步骤;b8.在上述b7步骤中,若判断是数组的,则执行计算首地址 偏移地址的步骤;b9.在上述b7步骤中,若判断不是数组的,则执行结构类型步骤;b10.在上述b9步骤中,执行结构类型步骤后,执行计算首地址 偏移地址的步骤;b11.执行上述b10步骤后,执行获取对应address步骤;b12.执行上述第b9步骤或第b10步骤后,执行存入buffer2步骤;b13.执行上述b12步骤后,执行写入文件最终生成a2l文件的步骤;b14.执行上述b13步骤后,流程步骤完成。
8.本发明的有益效果是:发明人员完成了多个项目的开发,涉及到汽车零部件行业多个项目,提高了软件开发以及标定工作效率,该发明源于汽车零部件但不限于汽车行业,因此提高汽车零部件行业软件开发人员工作效率,降低工作量,降低汽车零部件行业软件开发成本。本发明以脚本形式嵌入到软件架构代码编译环境中,更灵活的用于嵌入式软件代码开发体系。
附图说明:
下面结合附图和具体实施方式对本发明做进一步的详细说明。
10.图1是本发明的具体实现方法流程结构示意图。
11.图2是本发明自动化更新a2l文件中标定量以及观测量对应的地址信息,最终命名生成文件名称为tcu.a2l的流程结构示意图。
12.图3是本发明的单个工具脚本运行示意图。
13.图4是本发明的嵌入式架构软件代码编译环境下运行示意图。
具体实施方式
14.图1所示的实施例中,一种基于python的自动化a2l生成工具,包括执行开始s01后的如下步骤:a1.新建打开写入tcu_temp.a2l文件头s1,执行定义输出生成的文件格式命名为tcu_temp.a2l;a2.开启开始位置s2;a3.遍历a2l目录(软件for循环语句读取指定a2l目录下所有a2l文件)s3;a4.按顺序指向文件(软件for循环语句按顺序遍历)s4;a5.判断是否完成所有文件(软件for循环语句按顺序遍历目录下所有文件,直到目录下最后一个文件结束)s5,如果判断为已经完成所有文件的,执行本次流程的结束s6步骤。
15.a6.上述a5步骤中,若判断为未完成所有文件的,则执行下列第a7步骤;a7.对未完成的文件执行是否a2l文件s7的判断;a8.上述a7步骤中,若判断为a2l文件的,则执行遍历a2文件s9,此时关闭结束位置s8;若判断为不是a2l文件的,则返回至执行上述a4步骤;a9.对上述a8步骤遍历a2文件后,执行是否文件尾s10的判断;a10.上述a9步骤中,若判断为文件尾的,则返回至执行上述a4步骤;a11.在上述a步骤中,若判断为不是文件尾的,则执行是否开始位置s11的判断;a12.在上述a11步骤中,若判断为不是开始位置的,则执行是否结束位置s14的判断;a13.在上述a12步骤中,若判断为是结束位置的,则执行写入tcu_temp.a2ls16步骤后并返回至执行上述第a8步骤;a14.在上述a12步骤中,若判断为不是结束位置的,则执行写入tcu_temp.a2l且开始结束位置s15后并返回至执行上述第a8步骤;a15.在上述a11步骤中,若判断为是开始位置的,则执行是否正文s12的判断;a16.在上述a15步骤中,若判断为是正文的,则执行写入tcu_temp.a2l且关闭文件头标志步骤后并返回至执行上述第a8步骤;a17.在上述a15步骤中,若判断为不是正文的,则直接返回至执行上述第a8步骤。
16.执行上述第a1步骤~a17步骤时,首先需要定义输出生成的文件,这里文件格式命名为tcu_temp.a2l;当前把每个模块独立生成的a2l文件放在同一目录下,这里命名为a2l文件夹;asap2测量文件需要文件头以及固定的语法格式,每个独立a2l文件中涵盖文件头
以及项目、模块语法定义,因此需要过滤其它多的项目、模块语法定义只保留其一。
17.图2所示的实施例中,a2l文件合并完成后,最后需对a2l文件中标定量以及观测量获取对应的地址信息,自然而然需解析软件编译生成的map地址表,其中包含全局的标定量以及观测量,最终命名生成文件名称为tcu.a2l。
18.包含全局的标定量以及观测量,最终命名生成文件名称为tcu.a2l的流程包括开始后的如下步骤:b1.解析map地址文件s21;b2.按变量名称、结构体首地址名称、数组首地址名称提取所有指定的标定区以及ram区,flash区对应的address存入bufferls22;b3.解析合并之后的a2l文件s23;b4.判断观测量/标定量是否在bufferls24,若判断不在bufferl的,则返回执行上述第b2步骤,同时在返回上述第b2步骤过程中检查所在分区是否被提取;b5.上述b4步骤中,若判断在bufferl的,则执行下列第b6步骤~第b7步骤是否全局变量s25的判断;b6.上述b4步骤中,若判断为是全局变量的,则执行获取对应address s29步骤;b7.上述b4步骤中,若判断为不是全局变量的,则执行是否数组s26的判断步骤;b8.在上述b7步骤中,若判断是数组的,则执行计算首地址 偏移地址s28的步骤;b9.在上述b7步骤中,若判断不是数组的,则执行结构类型s27步骤;b10.在上述b9步骤中,执行结构类型步骤后,执行计算首地址 偏移地址的步骤;b11.执行上述b10步骤后,执行获取对应address步骤;b12.执行上述第b9步骤或第b10步骤后,执行存入buffer2 s30步骤;b13.执行上述b12步骤后,执行写入文件最终生成a2l s31文件的步骤;b14.执行上述b13步骤后,流程步骤完成s32。
19.如图3,以tcu控制器模块以及hcu控制器模块为例,mergetcua2l.py与mergehcua2l.py为功能性源码文件,mergetcua2l.pyc与mergehcua2l.py为运行后生成的加密后的文件;只需要电脑系统安装python,即可单击运行该脚本文件即可实现合并生成a2l文件功能,脚本运行界面会逐行显示需要合并生成的a2l文件,最终生成的a2l文件;如图4,任何行业控制器软件开发,最终通过编译器生成单片机可刷写的文件hex或者s19文件格式,该图为了自动化一键生成hex或者s19文件以及a2l测量文件,因此将a2l运行脚本嵌入到软件编译架构中。先对a2l文件自动合并生成后再对软件编译生成map地址表获取地址,更新a2l文件测量信号中的地址以达到软件可刷写到控制器以及etas inca/vector canape工具通过xcp/ccp协议添加a2l文件对控制器工作过程中信号的监控和标定。
20.文中涉及到的一些英文名词解析如下:inca:etas公司开发的inca软件。
21.canape:vector工具软件。
22.ccp:can calibration protocol。
23.xcp:universal measurement and calibration protocol。
24.a2l:一种通过xcp/ccp协议标定所用的文件,可以实时按地址修改或观测ecu的信
息。
25.matlab:是matrix与laboratory两个词的组合为矩阵工厂,是一种高级编程语言。
26.creator:是一种生成器,根据代码中的注释,生成asap2片段;merger:将多个asap2文件合并到一个普通的asap2文件中。
27.updater:读取asap2源文件,根据链接器映射文件中的条目,来更新所有地址和数据类型信息,并从该信息生成一个新的asap2文件。
28.modifier:以名称、注释、地址等方式修改asap2文件。
29.tcu_temp.a2l:a2l格式文件,本文中发明者任意命名。
30.address:地址。
31.map:软件编译,编译器生成的地址表文件。
32.buffer1:按python语言格式定义的列表。
33.buffer2:按python语言格式定义的列表。
34.以上内容和结构描述了本发明产品的基本原理、主要特征和本发明的优点,本行业的技术人员应该了解。上述实例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都属于要求保护的本发明范围之内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献