首页 > 解决方案 > Omnet++ 复合模块:将 1 个输入门连接到多个子模块

问题描述

我制作了一个带有 1 个输入和两个子模块的简单复合模块:

module System
{
    parameters:
    gates:
        input sensorDataIn;
    submodules:
        metric1: Metric1 {
            @display("p=30,26");
        }
        metric2: Metric2 {
            @display("p=30,26");
        }

    connections:
        sensorDataIn --> metric1.metricIn;
        sensorDataIn --> metric2.metricIn;
}

当我开始模拟时,我收到门已连接的错误。那么如何将进入我的复合模块的数据传递给两个子模块呢?

谢谢和亲切的问候,

坦克也

标签: omnet++

解决方案


首先,sensorDataIn通过更改为定义为门向量:

gates:
  input sensorDataIn[2];

其次,对门使用++运算符,即:

connections:
  sensorDataIn++ --> metric1.metricIn;
  sensorDataIn++ --> metric2.metricIn;

第三,在您的 NED 文件中进行网络更改为:

 connections allowunconnected:

门向量的大小可以省略,因为运算符会++自动扩展门向量的大小。


推荐阅读