【问题标题】:Routing signal though Composition Software Component通过组合软件组件路由信号
【发布时间】:2017-11-22 13:11:19
【问题描述】:

如何通过软件组合路由“信号”而无需复制它(使用一些代码)? 用例:SW-Composition 有一些 RPort,其中数据必须修改,然后在一些 PPort 上提供。但是对于某些 RPorts/PPorts 组合,不需要接触数据,因此“简单地路由”从 RPort 到 PPort。 这个想法是简单地将 RPortPrototype 与 PPortPrototype 与一个代表团SwConnector 连接起来。但根据规范,这是不可能的。 知道如何在不需要“复制代码”的情况下做到这一点吗?

【问题讨论】:

    标签: autosar


    【解决方案1】:

    如果我正确理解您的 P- 和 R- 端口位于组合本身上(也就是说,它们是外部端口),您可以将直通连接器(PassThroughSwConnector 模型元素)用于您的用例。它是合成的子元素,因此您将PassThroughSwConnector 添加到您的CompositionSwComponentType,并使用它直接连接您的两个端口。

    请注意,如果两个端口之间通过装配连接器有另一条路径,则这是不可能的。这将创建一个由直通和组装连接器组成的循环,这在规范中是明确禁止的。

    【讨论】:

    • 谢谢。这正是我一直在寻找的。现在我知道要在规范中搜索什么,似乎 PassThroughSwConnector 是在 AR 版本 4.1 中引入的(这就是为什么我还不知道它的原因)。再次感谢您的支持!
    【解决方案2】:

    软件组合只是一个结构分组。在生成 Rte 之前,您必须运行一个工具来创建一个“EcuExtract”(请参阅​​系统模板),它可以展平模型。因此,Rte 的输入是一个大根组合,它只包含原子分量,没有其他组合。因此,不会有“复制节点”,数据始终是通过的。

    但是,(有一些限制)在 Ecu Extract 中,根组合的端口可能与组件的端口具有不同的类型,这将导致数据转换(例如,重新缩放数据或挑选出一个元素结构)。

    【讨论】:

    • 我了解软件组合没有代码并且在展平时“消失”。但我的问题是另一个问题:我有一个接收端口和一个发送端口。我想直接将 SenderPort 与 ReceiverPort 连接起来,这样我就不需要为此生成任何代码。
    • 您的意思可能是“直通连接器”。
    • 是的,请检查软件组件模板中的PassThroughSwConnector
    • 是的,软件组件模板中有 PassThroughSwConnector。
    • 谢谢。这正是我一直在寻找的。但我认为它是软件组合的一部分(不是组件)。但无论如何,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2022-01-01
    • 2018-09-10
    相关资源
    最近更新 更多