CN114217772A - 一种安卓Treble架构下CarService代码配置生成方法及软件 - Google Patents
一种安卓Treble架构下CarService代码配置生成方法及软件 Download PDFInfo
- Publication number
- CN114217772A CN114217772A CN202111434213.1A CN202111434213A CN114217772A CN 114217772 A CN114217772 A CN 114217772A CN 202111434213 A CN202111434213 A CN 202111434213A CN 114217772 A CN114217772 A CN 114217772A
- Authority
- CN
- China
- Prior art keywords
- configuration
- signal
- file
- code
- carservice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种安卓Treble架构下CarService代码配置生成方法,采用MVC的开发模型即通过控制器把业务逻辑和HMI逻辑衔接起来,HMI界面通过QT Designer绘制出相应的界面并生成代码,使用python编写业务模型的控制代码,将界面、数据、控制分离做到尽可能的解耦,提升可复用性。本发明预置了一些常用配置项,在配置区选择填写上相关车辆信号的配置属性,软件将根据参数和自定义的模板文件生成完整配置,并生成相应的代码。
Description
技术领域
本发明涉及汽车电子技术领域,尤其涉及一种安卓Treble架构下CarService代码配置生成方法。
背景技术
随着汽车电子的发展,越来越多的中控设备开始采用Android系统,各汽车供应商零部件供应商在Android系统上扩展个性化设置。Android O版本以前,Android系统的代码和OEM厂商代码耦合性较强,为了推动Android的系统与OEM厂商解耦,Android引入Treble架构。同时,Android O版本又推出了Android Automotive这个特色功能,专门为车载而设计的一个功能模块,正式进军汽车车载领域。基于Treble架构的车辆服务Car Service把模块分成了应用接口端jar、中间层Framework、车辆硬件抽象层Vehicle Hal层。OEM厂商需在此架构下对原生的代码进行扩展。在现有的Treble架构下,Android Automotive车控车设功能接口的添加比较有规律、单一,并且关于车控车设的功能点比较多,需要添加的接口相应的也会很多,所以车控车设接口的添加虽然简单,但是工作量大比较繁琐。目前尚未出现可以根据配置自动生成代码的技术,进行大量定制化需求的时候人工扩展容易效率不高且容错率较低。
发明内容
为解决上述问题,本发明公开了一种安卓Treble架构下CarService代码配置生成方法,克服了Android Treble架构下OEM厂商大量定制化汽车服务车控车设部分需求而出现的人工编写代码的效率和容错率的不足,对OEM厂商的定制化汽车车控车设服务需求提供一种接口代码自动化生成的技术方案。
具体方案如下:
基于Android Treble架构的Car Service软件开发需要对原生代码和OEM的代码进行配置 ,本发明提取了扩展接口需要修改的相关的代码文件,按配置流程顺序把软件接口上分成了配置区、代码生成展示区、自定义文件模板及调试区、信号检索区等。通过设置相关的配置,就能产生对应的代码文件。本发明采用MVC的开发模型即通过控制器把业务逻辑和HMI逻辑衔接起来,HMI界面通过QT Designer绘制出相应的界面并生成代码,使用python编写业务模型的控制代码,将界面、数据、控制分离做到尽可能的解耦,提升可复用性。本发明预置了一些常用配置项,在配置区选择填写上相关车辆信号的配置属性,软件将根据参数和自定义的模板文件生成完整配置,并生成相应的代码。
本发明主要使用python语言进行编程,主要使用到了PYQT5库,得益于python语言的解释性和库的丰富性,不必进行编译生成,可直接在安装了python解释器的Windows和Linux的操作系统上使用。
一种安卓Treble架构下CarService代码配置生成方法,其特征在于,具体步骤如下:
步骤1:创建新工程,可从FTP上更新代码,保存成新工程,点击对应文件可查看代码的源码;
步骤2:首先判断是否有历史配置数据,若有则加载配置数据并导入后台配置表中,若没有则创建新的配置数据;然后判断是否有登录账号,若有则判断是否同步,若没有则打开本地工程文件,其中,若要同步,则从FTP更新代码,若不要同步则打开本地工程文件;最后创建各模块子窗体;
步骤3:在主窗体显示对应项目的配置表,可通过该配置表查看对应的历史接口的配置数据,亦可在配置表中做相应的增删改;
步骤4:当配置区域中的参数被选择并确认后,配置表中会产生一个信号的配置项;
步骤5:当点击菜单生成并合并后,系统运行增加一个信号配置的流程,读取配置区域的基本信息,生成完整的配置文件并写入到配置表中,读取代码的文件模板,生成代码块文件,可在生成目录中找到生成的代码块文件,将文件通过FTP服务器同步至开发环境。
作为本发明的进一步改进,所述步骤2具体为:判断是否有历史配置文档,有则加载配置,导入到后台Excel的表中,当用户打开配置文件以后,加载并展示历史数据的扩展表,后续的配置结果都将生成在该文档中;如果在Windows环境下,则加载历史用户登陆信息,登陆后续通过FTP服务器实现如Windows环境和Linux环境下的通信,从虚拟环境中同步或更新代码源文件;最后依次加载主窗体、模板文件窗体、信号生成窗体、登陆窗体、汽车信号矩阵表DBC窗体。
作为本发明的进一步改进,所述步骤4中的配置区域依次包含信号的传输类型、给应用操作接口的Manager文件名称、信号名称、信号组、信号数据类型、信号的默认值、需要控制的车辆区域、所属车辆Module分类、实际操作信号的子类、信号的枚举值、读写权限、信号所支持的区域限制、片间通信服务IPCL对应的枚举、操作此信号应用端所需的权限控制。
一种应用安卓Treble架构下CarService代码配置生成方法的软件,其特征在于:使用python语言进行编程,并应用PYQT5库。
本发明的有益效果在于:可以提高车辆服务Car Service接口代码编写的效率和容错率,大大节省人工编码的时间,简化代码编写的流程;在直接配置每个车控车设功能点的属性后,能够一键生成并通过FTP服务器同步至开发环境,达到快速集成代码的效果。
附图说明
图1为安卓Treble架构下的CarService的系统框图。
图2为发明中软件的启动流程图。
图3为本发明中软件配置一个新文件的流程图。
图4为本发明的运行图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
如图1所示,CarService服务给应用提供一套从上至下的通路,使得Android的应用可以通过SOC、MCU和整车的其他电控节点单元ECU进行交互,完成对于车辆的控制以及车辆状态的展示。涉及Android中间服务Framwork、Framework与应用的接口jar包、汽车硬件抽象服务Vehicle Hal、各服务之间的通信接口等,开发人员在进行相关代码开发的过程中可对具体代码配置进行修改,增加新的功能需求。
一种安卓Treble架构下CarService代码配置生成方法,具体步骤如下:
步骤1:创建新工程,可从FTP上更新代码,保存成新工程,点击对应文件可查看代码的源码;
步骤2:首先判断是否有历史配置数据,若有则加载配置数据并导入后台配置表中,若没有则创建新的配置数据;然后判断是否有登录账号,若有则判断是否同步,若没有则打开本地工程文件,其中,若要同步,则从FTP更新代码,若不要同步则打开本地工程文件;最后创建各模块子窗体;
步骤3:在主窗体显示对应项目的配置表,可通过该配置表查看对应的历史接口的配置数据,亦可在配置表中做相应的增删改;
步骤4:当配置区域中的参数被选择并确认后,配置表中会产生一个信号的配置项;
步骤5:如图4所示,当点击菜单生成并合并后,系统运行增加一个信号配置的流程,读取配置区域的基本信息,生成完整的配置文件并写入到配置表中,读取代码的文件模板,生成代码块文件,可在生成目录中找到生成的代码块文件,将文件通过FTP服务器同步至开发环境。
在本实施例中,所述步骤2具体为:如图2所示,软件启动阶段,logo界面的后台加载相关数据库、并在期间做如下的动作:判断是否有历史配置文档,有则加载配置,导入到后台Excel的表中,当用户打开配置文件以后,加载并展示历史数据的扩展表,后续的配置结果都将生成在该文档中;如果在Windows环境下,则加载历史用户登陆信息,登陆后续通过FTP服务器实现如Windows环境和Linux环境下的通信,从虚拟环境中同步或更新代码源文件;最后依次加载主窗体、模板文件窗体、信号生成窗体、登陆窗体、汽车信号矩阵表DBC窗体。
在本实施例中,所述步骤4中的配置区域依次包含信号的传输类型、给应用操作接口的Manager文件名称、信号名称、信号组、信号数据类型、信号的默认值、需要控制的车辆区域、所属车辆Module分类、实际操作信号的子类、信号的枚举值、读写权限、信号所支持的区域限制、片间通信服务IPCL对应的枚举、操作此信号应用端所需的权限控制。如图3所示为本软件的运行效果图,软件右侧的配置区即为新接口参数的配置区域。
一种应用所述的安卓Treble架构下CarService代码配置生成方法的软件,其特征在于:使用python语言进行编程,并应用PYQT5库。
在本实施例中,本软件对于利用公司组织内网Linux开发环境和Windows开发环境提供了一种文件传输的途径,利用账号和FTP服务器的接口,进行账号验证传输做到了安全保护。
在本实施例中,软件后续可支持对于指定文件进行指定配置修改,这给对于进行大量基于配置修改代码的其他代码开发工作提供了支持的可能。
在本实施例中,软件预留了支持对生成的代码接口进行测试的功能接口,通过后续的开发利用python的强大的库,可以利用硬件Can和adb工具连接到开发设备,对于生成的接口代码可以进行测试和记录导出测试结果。
在本实施例中,本软件支持了车载信号矩阵DBC解析功能,通过导入DBC文件,可以方便的查找信号的定义,对于导出相关的开发接口文档提供了可能性,也极大的便利了开发人员对于信号定义识别和理解。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (4)
1.一种安卓Treble架构下CarService代码配置生成方法,其特征在于,具体步骤如下:
步骤1:创建新工程;
步骤2:首先判断是否有历史配置数据,若有则加载配置数据并导入后台配置表中,若没有则创建新的配置数据;然后判断是否有登录账号,若有则判断是否同步,若没有则打开本地工程文件,其中,若要同步,则从FTP更新代码,若不要同步则打开本地工程文件;最后创建各模块子窗体;
步骤3:在主窗体显示对应项目的配置表,可通过该配置表查看对应的历史接口的配置数据,亦可在配置表中做相应的增删改;
步骤4:当配置区域中的参数被选择并确认后,配置表中会产生一个信号的配置项;
步骤5:生成并合并后,系统运行增加一个信号配置的流程,读取配置区域的基本信息,生成完整的配置文件并写入到配置表中,读取代码的文件模板,生成代码块文件。
2.根据权利要求1所述的一种安卓Treble架构下CarService代码配置生成方法,其特征在于,所述步骤2具体为:判断是否有历史配置文档,有则加载配置,导入到后台Excel的表中,当用户打开配置文件以后,加载并展示历史数据的扩展表,后续的配置结果都将生成在该文档中;如果在Windows环境下,则加载历史用户登陆信息,登陆后续通过FTP服务器实现Windows环境和Linux环境下的通信,从虚拟环境中同步或更新代码源文件;最后依次加载主窗体、模板文件窗体、信号生成窗体、登陆窗体、汽车信号矩阵表DBC窗体。
3.根据权利要求1所述的一种安卓Treble架构下CarService代码配置生成方法,其特征在于,所述步骤4中的配置区域依次包含:信号的传输类型、给应用操作接口的Manager文件名称、信号名称、信号组、信号数据类型、信号的默认值、需要控制的车辆区域、所属车辆Module分类、实际操作信号的子类、信号的枚举值、读写权限、信号所支持的区域限制、片间通信服务IPCL对应的枚举、操作此信号应用端所需的权限控制。
4.一种应用权利要求1-3中任意一项所述的安卓Treble架构下CarService代码配置生成方法的软件,其特征在于:使用python语言进行编程,并应用PYQT5库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111434213.1A CN114217772A (zh) | 2021-11-29 | 2021-11-29 | 一种安卓Treble架构下CarService代码配置生成方法及软件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111434213.1A CN114217772A (zh) | 2021-11-29 | 2021-11-29 | 一种安卓Treble架构下CarService代码配置生成方法及软件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114217772A true CN114217772A (zh) | 2022-03-22 |
Family
ID=80698877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111434213.1A Pending CN114217772A (zh) | 2021-11-29 | 2021-11-29 | 一种安卓Treble架构下CarService代码配置生成方法及软件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114217772A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115525561A (zh) * | 2022-10-11 | 2022-12-27 | 深圳市航盛电子股份有限公司 | 协议接口测试方法、装置、终端设备以及存储介质 |
-
2021
- 2021-11-29 CN CN202111434213.1A patent/CN114217772A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115525561A (zh) * | 2022-10-11 | 2022-12-27 | 深圳市航盛电子股份有限公司 | 协议接口测试方法、装置、终端设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048493B2 (en) | Computer system, method of updating software with computer system, and program therefor | |
CN106843837B (zh) | openstack组件容器化的构建方法 | |
AU2010308132B2 (en) | Automated enterprise software development | |
US8635253B2 (en) | Decorated model architecture for efficient model-driven application development | |
US10423571B2 (en) | Method for configuring a real or virtual electronic control unit | |
CN108228170B (zh) | 一种嵌入式软件构件化定制组装方法 | |
US20120124550A1 (en) | Facilitating database application code translation from a first application language to a second application language | |
CN111857777B (zh) | 基于双芯智能电表的系统更新方法、装置和计算机设备 | |
CN108205454A (zh) | 基于可扩展模板库的数据管理页面自动生成方法及系统 | |
CN114217772A (zh) | 一种安卓Treble架构下CarService代码配置生成方法及软件 | |
CN102054041B (zh) | 元数据升级方法和系统 | |
WO2002046909A1 (en) | Automatically deploy and upgrade an application based on markup language application definition | |
CN114047970A (zh) | 一种autosar架构软件的配置方法及系统 | |
KR102293274B1 (ko) | 테스트 환경 구축 방법 및 장치 | |
CN111651190B (zh) | 一种基于多维融合元素的发射控制软件动态装配方法 | |
Shaout et al. | Automotive embedded systems-model based approach review. | |
JPH06110733A (ja) | プログラムのテストケース生成装置 | |
Raghav et al. | Model based code generation for distributed embedded systems | |
Raghav et al. | Architecture driven generation of distributed embedded software from functional models | |
Zanon | The SimTG simulation modeling framework a domain specific language for space simulation | |
CN116894295A (zh) | 一种汽车四连杆铰链前盖任意开启姿态的有限元建模方法 | |
Buller | Developing ActiveX™ Internet Server Components with Visual Basic and Rational Rose | |
Roth | API development to improve integration and resource efficiency.: Decreasing user interactions and automating verification processes of information between applications. | |
CN116662213A (zh) | 一种摩托车的下线电检系统 | |
CN110647317A (zh) | 基于模板的应用框架生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |