目录
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