1.创建一个单独的工程
2.创建SWC
CtCoApplication
CtCoApplication,类型为Composition,集合级的SWC,可以包含多个原子级的SWC(Atomic SWC)
CtApMySwc
CtApMySwc,Atomic型SWC,具体为Application型
CtSaDoor
CtSaDoor,类型为SensorActuator(传感器/执行器)的SWC,Support Multiple Instantiation可重用
CtSaInteriorLight
CtSaInteriorLight,同CtSaDoor
3.创建ADT Types
AdtDoorState(boolean类型)
AdtLightState(boolean类型)
4.创建S/R Port Interface
PiDoorState
还需要关联上相应的ADT数据类型
Name为DeDoorState
ADT数据类型选择AdtDoorState
PiLightState
Name为DeLightState,ADT数据类型选择AdtLightState
5.在SWC上创建Port实体
CtApMySwc
双击CtApMySwc
点击左下角的Interface Graphic图标
添加端口
添加左右车门和内饰灯3个Port
这里需要回到主界面创建常量,后面修改端口的初始值需要用到
定义CDoorClosed和CLightOff
双击Port编辑属性
PiDoorState -> PpDoorStateFrontLeft (Init value: CDoorClosed)
PiDoorState -> PpDoorStateFrontRight ( Init value: CDoorClosed)
PiLightState -> PpLightStateFront (Init value: CLightOff)
最终如下
接下来需要创建另外两个SWC的Port实体
CtSaDoor
piDoorState -> PpDoorState (Sender, Init value: CDoorClosed)
CtSaInteriorLight
PiLightState -> PpLightState (Receiver, Init value: CLightOff)
至此,3个SWC的Port已经分别创建好了,接下来需要连接
6.SWC的连接
这里最好改一下窗口布局
修改各实例化后的SWC的名字。注意这里的名字格式是CpApMySwc::CtApMySwc,就是说实例化后的CpApMySwc继承于CtApMySwc的意思
CpApMySwc
CpSaDoorFrontLeft
CpSaDoorFrontRight
CpSaInteriorLight
修改后如图
最后使用连接工具将对应的线连接起来即可
7.创建IDT
创建两个IDT
IdtDoorState (Data Type:boolean;Compu Method:boolean_CompuMethod)
IdtLightState (Data Type:boolean;Compu Method:boolean_CompuMethod)
8.添加数据映射
ADT和IDT都创建好后,需要创建数据映射
创建Data Mapping Set,并取名为DemoTypeMapping
9. 使用数据映射
在我们的三个Atomic SWC(CtApMySwc、CtSaDoor和CtSaInteriorLight )中右键Properties,打开后点击Mapping Sets选项卡
检查