DaVinci工具链之DaVinci Configurator工程创建

news/2024/12/1 15:33:24/

目录

1、用DaVinci Configurator新建项目工程​编辑

2、用DaVinci Developer打开GL_Demo项目工程​编辑

3、在DaVinci Developer中新建一个调光控制模块

3.1.创建SWC Types

3.1.1.创建调光控制模块Composition SWC Type

3.1.2.创建调光分析计算Application SWC Type

3.1.3.创建左门开关传感器和右门开关传感器SensorActuator SWC Type 

3.1.4.创建执行器左顶灯SensorActuator SWC Type  

3.2.创建应用数据类型Application Data Types(ADT) 

3.2.1.创建左门开关状态(Variable)和右门开关状态(Variable)需要使用的应用数据类型ADT 

3.2.2.创建开关左顶灯的控制指令(Variable)需要使用的应用数据类型ADT 

3.3.创建Application Port Interface(这里我们只需要创建S/R接口)

3.3.1.创建存放门开关状态的S/R Port Interface(Port)

3.3.2.创建存放开关左顶灯的控制指令的S/R Port Interface(Port)

3.4.在Atomic SWC上创建的Port实体

3.4.1.配置调光分析计算SWC的接口(Port)实体

3.4.1.1.将创建的PiLightState的S/R Port Interface以Sender接口图形来显示

3.4.1.2.将创建的PiDoorState的S/R Port Interface以Receiver接口图形来显示

3.4.1.3.再创建一个名为PiDoorState的S/R Port Interface以Receiver接口图形来显示

3.4.1.4.创建数字常量

3.4.1.5.PiLightState改名为PpLightStateFront

3.4.1.6.PiDoorState改名为PpDoorStateFrontLeft

3.4.1.7.PiDoorState_1改名为PpDoorStateFrontRight

3.4.2.配置左门开关传感器和右门开关传感器SWC的接口(Port)实体

3.4.2.1.将创建的PiDoorState的S/R Port Interface以Sender接口图形来显示

3.4.3.配置执行器左顶灯SWC的接口(Port)实体

3.4.3.1.将创建的PiLightState的S/R Port Interface以Receiver接口图形来显示

3.5.对调光控制模块Composition SWC Type进行配置

3.5.1.实例化Atomic SWC 

3.5.2.Port连线 ​

3.6.创建实现数据类型Implementation Data Types(IDT)

3.6.1.创建左门开关状态(Variable)和右门开关状态(Variable)需要使用的实现数据类型IDT 

3.6.2.创建开关左顶灯的控制指令(Variable)需要使用的实现数据类型IDT 

3.7.建立数据映射

3.8.将三个Atomic SWC Type(CtApMySwc、CtSaDoor、CtSaInteriorLight)都添加数据映射

3.9.实例化Composition SWC


1、用DaVinci Configurator新建项目工程

1.1. 打开DaVinci Configurator(Cfg),点击“File->new”,则出现如下项目配置界面,按照下图配置完成后单击“Next”

 1.2.上面单击完“Next”之后,就会出现如下配置界面,这里我们默认配置即可,而“ECUC File Granularity(ECUC文件颗粒)”选项可以勾选“Single File”,该选项跟生成的arxml文件形式有关。这里我勾选了“Single File”生成的ECUC文件和勾选“One File per Module”生成的ECUC文件是一样的,暂时还没搞清,后面再研究一下有何区别吧 )

1.3.选择要使用的芯片以及编译器类型(IDE-集成开发环境) 

1.4.继续默认配置即可,单击“Finish”选项后,即可生成创建的工程。如果大家想要根据自己的需求进行配置,则按照下图说明做相应改动

 5.最后退出DaVinci Configurator(Cfg)软件,找到之前创建的项目工程路径C:\AUTOSAR_Demo,如下图所示(可以看到生成了.dpa格式的工程文件):

 2、用DaVinci Developer打开GL_Demo项目工程

2.1.打开DaVinci Developer(Dev)点击“File->Open Workspace...”,选择上面生成的GL_Demo.dpa工程文件,此时就会出现如下界面:

3、在DaVinci Developer中新建一个调光控制模块

调光控制模块(Dimming control module)细分为

  • 左门开关传感器(发出一个左门开关状态)、
  • 右门开关传感器(发出一个右门开关状态)、
  • 执行器左顶灯(接收一个开关左顶灯的控制指令)
  • 调光分析计算(接收左门和右门开关状态经过计算后发出开关左顶灯的控制指令)

基于SWC架构方案对该模块进行设计:

  • 调光控制模块设计为Composition SWC
  • 左门开关传感器右门开关传感器执行器左顶灯调光分析计算分别设计为调光控制模块下的Atomic SWC
  • 将每个Atomic SWC需要的Variable组设计为Port,需要将Variable设计为Port下的Data Element,将Port相互连接
  • 将每个Atomic SWC需要的函数设计为Runnable

开始在DaVinci Developer软件中配置SWC:

3.1.创建SWC Types

3.1.1.创建调光控制模块Composition SWC Type

为调光控制模块设计成Composition SWC而定义了一个名为CtCoApplicaton的Composition型的SWC Type

3.1.2.创建调光分析计算Application SWC Type

为调光分析计算设计成Application SWC而定义了一个名为CtApMySwc的Application型的SWC Type

3.1.3.创建左门开关传感器和右门开关传感器SensorActuator SWC Type 

为左门开关传感器和右门开关传感器设计成SensorActuator SWC而定义了一个名为CtSaDoor的SensorActuator 型(传感器/执行器型)的可重用的SWC Type(左门和右门都可以此SWC类型来定义

3.1.4.创建执行器左顶灯SensorActuator SWC Type  

为执行器左顶灯设计成SensorActuator SWC而定义了一个名为CtSaInteriorLight的SensorActuator 型(传感器/执行器型)的SWC Type(这里选不选Support Multiple Instantiation(可重用)无所谓,因为我们只想定义一个执行器左顶灯的SWC

3.2.创建应用数据类型Application Data Types(ADT) 

3.2.1.创建左门开关状态(Variable)和右门开关状态(Variable)需要使用的应用数据类型ADT 

为了将左门开关状态(Variable)和右门开关状态(Variable)在DaVinci Developer软件的图形显示界面能够正常使用而定义了一个名为AdtDoorState的boolean型的ADT

3.2.2.创建开关左顶灯的控制指令(Variable)需要使用的应用数据类型ADT 

为了将开关左顶灯的控制指令(Variable)在DaVinci Developer软件的图形显示界面能够正常使用而定义了一个名为AdtLightState的boolean型的ADT

3.3.创建Application Port Interface(这里我们只需要创建S/R接口)

3.3.1.创建存放门开关状态的S/R Port Interface(Port)

将上面设计的Atomic SWC所需要的门(左门和右门)开关状态设计成一个名为PiDoorState的S/R Port Interface(Port),需要门开关状态设计为Port下的Data Element变量类型选择之前定义的AdtDoorState类型变量名设置为DeDoorState

 

3.3.2.创建存放开关左顶灯的控制指令S/R Port Interface(Port)

将上面设计的Atomic SWC所需要的开关左顶灯的控制指令设计成一个名为PiLightState的S/R Port Interface(Port),需要开关左顶灯的控制指令为Port下的Data Element(变量类型选择之前定义的AdtLightState类型,变量名设置为DeLightState

3.4.在Atomic SWC上创建的Port实体

在Object Browser对象浏览界面双击CtApMySwc,进入CtApMySwc的Software Design软件编辑设计界面,选中左下角的Interface Graphic(图形界面)图标,即可看到CtApMySwc以图形化的形式显示在Software Design软件编辑设计界面,标志着我们已经进入图形编辑界面 

3.4.1.配置调光分析计算SWC的接口(Port)实体

单击Graphic图形选项卡,切换至图形界面编辑工具栏,这里就可以用来添加图形化端口(Port)

3.4.1.1.将创建的PiLightState的S/R Port Interface以Sender接口图形来显示

S/R Port Interface通过Sender接口图形在Software Design软件编辑设计界面显示时,该S/R Port Interface已经在此界面下已实例化了(后面可以按照AUTOSAR标准命名把头缀由“Pi(应用类)”改成“Pp(实例类)”) 

3.4.1.2.将创建的PiDoorState的S/R Port Interface以Receiver接口图形来显示

S/R Port Interface通过Sender接口图形在Software Design软件编辑设计界面显示时,该S/R Port Interface已经在此界面下已实例化了 (后面可以按照AUTOSAR标准命名把头缀由“Pi(应用类)”改成“Pp(实例类)”) 

3.4.1.3.再创建一个名为PiDoorState的S/R Port Interface以Receiver接口图形来显示

S/R Port Interface通过Sender接口图形在Software Design软件编辑设计界面显示时,该S/R Port Interface已经在此界面下已实例化了(后面可以按照AUTOSAR标准命名把头缀由“Pi(应用类)”改成“Pp(实例类)”) 

3.4.1.4.创建数字常量

在Contants中创建数字常量为接口变量提供初始值

3.4.1.4.1.创建名为CDoorClose的数字常量(值为0)

3.4.1.4.2.创建名为CLightOff的数字常量(值为0) 

3.4.1.5.PiLightState改名为PpLightStateFront

双击PiLightState该接口(Port),按照AUTOSAR标准要求将PiLightState改名为PpLightStateFront,并为Port中存放的变量DeLightState添加CLightOff初始值

3.4.1.6.PiDoorState改名为PpDoorStateFrontLeft

双击PiDoorState该接口(Port),按照AUTOSAR标准要求将PiDoorState改名为PpDoorStateFrontLeft,并为Port中存放的变量DeDoorState添加CDoorClose初始值

3.4.1.7.PiDoorState_1改名为PpDoorStateFrontRight

双击PiDoorState_1该接口(Port),按照AUTOSAR标准要求将PiDoorState_1改名为PpDoorStateFrontRight,并为Port中存放的变量DeDoorState添加CDoorClose初始值

3.4.2.配置左门开关传感器和右门开关传感器SWC的接口(Port)实体
3.4.2.1.将创建的PiDoorState的S/R Port Interface以Sender接口图形来显示

双击PiDoorState该接口(Port),按照AUTOSAR标准要求将PiDoorState改名为PpDoorState,并为Port中存放的变量DeDoorState添加CDoorClose初始值

3.4.3.配置执行器左顶灯SWC的接口(Port)实体
3.4.3.1.将创建的PiLightState的S/R Port Interface以Receiver接口图形来显示

双击PiLightState该接口(Port),按照AUTOSAR标准要求将PiLightState改名为PpLightState,并为Port中存放的变量DeLightState添加CLightOff初始值

3.5.对调光控制模块Composition SWC Type进行配置

3.5.1.实例化Atomic SWC 

此处的Atomic SWC Types被拖到Composition SWC Types的Software Design软件编辑设计界面,界面上就是生成实例化的Atomic SWC

由于自动生成的实例化的SWC名字跟定义的Atomic SWC Type(也就是和我们说的应用类SWC)相同,需要按照AUTOSAR标准用Cp头缀表示实例化的SWC

3.5.2.Port连线 

3.6.创建实现数据类型Implementation Data Types(IDT)

3.6.1.创建左门开关状态(Variable)和右门开关状态(Variable)需要使用的实现数据类型IDT 

为AdtDoorState的boolean型的ADT新建一个代码级的名为IdtDoorState的boolean型的IDT(对ADT的具体实现)ADT是图形化的类型,而IDT是代码级别的数据类型,定义此IDT类型就是为了将图形化类型用对应的IDT类型在代码生成工具中生成此数据类型的代码,所以我们后面要做数据映射。

3.6.2.创建开关左顶灯的控制指令(Variable)需要使用的实现数据类型IDT 

 为AdtLightState的boolean型的ADT新建一个代码级的名为IdtLightState的boolean型的IDT(对ADT的具体实现)

3.7.建立数据映射

为了将之前定义ADT和IDT相互映射,需要在Type Mapping Sets中创建数据类型映射,并将创建的Data Type Mapping取名为DemoTypeMapping

 

 将之前定义好的ADT和对应的IDT在映射表上进行映射

3.8.将三个Atomic SWC Type(CtApMySwc、CtSaDoor、CtSaInteriorLight)都添加数据映射

3.9.实例化Composition SWC

双击ECU_Composition(对一个ECU整体封装)

 此处的调光控制模块Composition SWC Type被拖到ECU_Composition的Software Design软件编辑设计界面,界面上就是生成实例化的调光控制模块Composition SWC


http://www.ppmy.cn/news/985758.html

相关文章

出海周报|Temu在美状告shein、ChatGPT安卓版上线、小红书回应闪退

工程机械产业“出海”成绩喜人,山东相关企业全国最多Temu在美状告shein,跨境电商战事升级TikTok将在美国推出电子商务计划,售卖中国商品高德即将上线国际图服务,初期即可覆盖全球超200个国家和地区ChatGPT安卓版正式上线&#xff…

基于STM32CubeMX和keil采用STM32F407的基本定时器中断实现LED闪烁

文章目录 前言1. 电路原理图理解2. 基本定时器2.1 STM32定时器中断的流程:2.2 部分参数详解2.2.1 时钟源2.2.2 预分频系数2.2.3 自动重装载值 3. STM32CubeMX参数配置3.1GPIO配置3.2 时钟配置3.2 配置定时器相关参数3.3 Debug配置3.4 中断配置3.5 代码生成 4. keil代…

7.28 作业 QT

手动完成服务器的实现&#xff0c;并具体程序要注释清楚: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QMessageBox> //对话框类 #include …

探寻数据服务的本质:API之外的可能性

数据服务在数据建设中发挥着重要的作用。数据服务到底啥样&#xff1f; 是不是只对外提供一个API&#xff1f; 这么简单&#xff1f; 而我希望你能在学完这部分内容之后&#xff0c;真正掌握数据服务的产品功能设计和系统架构设计。因为这会对你设计一个数据服务&#xff0c;或…

设计模式五:建造者模式(Builder Pattern)

建造者模式(Builder Pattern)是一种创建型设计模式&#xff0c;用于通过一系列步骤来构建复杂对象。它将对象的构建过程与其表示分离&#xff0c;从而允许相同的构建过程可以创建不同的表示。 建造者模式中的几个角色&#xff1a; 产品(Product)&#xff1a;表示被构建的复杂…

【AHK】通过唤醒窗口快捷菜单调节窗口位置/打开窗口控制菜单的其他方法

需求&#xff1a;触控板使用AHK传统控制窗口位置和大小的方式不方便&#xff0c;故打算通过快捷方式唤醒窗口移动图标的方式来调节。但本人有使用utools的习惯&#xff0c;altspace打开快捷方式菜单/窗口控制菜单会冲突&#xff0c;所以一直尝试新的打开该菜单的方式——先点击…

Go 发送邮件

要在Go中发送电子邮件&#xff0c;您可以使用第三方库&#xff0c;如 gomail 。以下是一个使用 gomail 发送电子邮件的示例代码&#xff1a; package main import ("fmt""gopkg.in/gomail.v2" ) func main() {// 创建邮件消息m : gomail.NewMessage()m.Se…

求整数中的最大值

才用打擂台的形式&#xff0c;先放一个数max在擂台上&#xff0c;然后每个数都上去和他比较&#xff0c;如果上去的那个数比max大&#xff0c;那么就把max替换成那个数站在擂台上&#xff0c;依次比较&#xff0c;直到所有数都比较完后&#xff0c;站在擂台上的那个max就是最大…