相关文章推荐
才高八斗的啄木鸟  ·  Maven ...·  10 月前    · 
个性的骆驼  ·  javascript - ...·  1 年前    · 
正直的冲锋衣  ·  imagecreatefromstring ...·  1 年前    · 
首发于 AUTOSAR专栏
CP AUTOSAR Port 入门知识梳理

CP AUTOSAR Port 入门知识梳理

Port




我们来看一个常见的例子,SWC1的输出信号,是SWC2的输入信号。我们在嵌入式软件开发中,经常要用到全局变量或者函数去读取或者发送信号。在AUTOSAR 的虚拟功能总线概念中,我们引入了一个专有的词描述这种情况——Ports(端口)


Ports的定义


Port是软件组件的属性之一,软件组件的端口是软件组件之间信号交互的节点。软件组件的端口根据输入/输出方向可分为需求端口(Require Port,RPort)与提供供端口(Provide Port,PPort),和供需端口(Provide and Require Port,PRPort。注意,Port端口仅仅定义了信号的方向。
Ports的分类


  1. 需求端口,Require Ports, RPorts ,有需求的端口,从其他软件组件读取数据元素,使用此类型的端口。
  2. 提供端口,Provide Ports, PPorts ,提供服务的端口,向其他软件组件读取数据元素,使用此类型的端口。
  3. 需求/提供端口,Provide Require Ports, PRPorts ,兼有需求端口与提供端口的特性。


Port交互原理





需型端口可以和供型端口连接。如图所示,软件组件'SeatHeatingControl'有一个需求端口(Rport)'SeatSwitch',软件组件'SeatSwitch'有一个提供端口(PPort)Switch,两者的端口接口使用了Port Interface 'SeatSwitch',它们之间的交互关系由SeatSwitch的提供端口指向SeatHeatingControl的需求端口。



Composition中CS/SR接口端口交互示例

未连接的Port


出现未连接端口,可能本身并不是设计错误。 比如当数据元素的提供程序不存在,并且默认初始化值足以操作时,这个端口可能是有效的。

  1. 未连接的PRPorts :就算没有任何连接,需求/提供端口PRPorts也不会被认为未连接,一个需求/提供端口端口,它可被认为自我相连
  2. 未连接的Sender/Receiver Ports :如果PPort 未连接,则提供者发布的数据将不会出现在 VFB 上,因此任何其他软件组件都无法访问。如果 RPort 未连接,则 RPort 应提供未连接 RPort 的初始值和报告。
  3. 未连接的Client/Server Ports :如果CS接口的 PPort 未连接,服务端口将不会收到任何请求。 RPort 未连接,则 RPort 应报告未连接的 RPort。

总结


在项目中应用的时候,需要为SWC端口配置Port方向,难度不大,还是比较容易掌握的。

文章被以下专栏收录