首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OMNeT++中子模块连接的错误

OMNeT++中子模块连接的错误
EN

Stack Overflow用户
提问于 2015-08-02 06:36:32
回答 1查看 1.2K关注 0票数 0

复合模块中有两个子模块。我试着用门连接它们,但是它会产生这样的错误:

网络设置过程中模块(Cmodule) wnetwork.host0中的错误。门'wnetwork.host.gate$i‘不连接到子模块(或内部连接到同一模块的另一个门)

我的复合模块代码是

wirelessnode.ned:

代码语言:javascript
复制
package core;

import org.mixim.modules.power.battery.BatteryStats;
import org.mixim.modules.power.battery.SimpleBattery;

module wirelessnode
{       
   parameters:
    volatile double Energy @unit(mW) = default(10.0mW);    
    double Tx_energy @unit(mW) = default(0.8mW);
    double Tx_interval @unit(s) = default(0.5s);
    @display("bgb=210,450,white;i=device/palm;i2=status/battery;b=40,40,rect");
submodules:
    batteryStats: BatteryStats {
        @display("p=110,221;i=block/table,#FF8040");       
    }
    battery: SimpleBattery {
        @display("p=101,90;i=block/plug,#FF8000");
                            }
 }

wirelessnodehost.ned:

代码语言:javascript
复制
package core;

module wirelessnodehost extends wirelessnode
{
    gates:
        inout gate[];
}

wnetwork.ned:

代码语言:javascript
复制
package core;

import core.wirelessnodehost;

network wnetwork
{
    parameters:
        int numDevices=default(3);
      submodules:
        host[numDevices]: wirelessnodehost;

    connections:
             for i = 0..numDevices-2 {
host[i].gate++ <--> host[i+1].gate++;
 }

}

如何解决这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 09:01:21

如果您检查错误消息,它会说:wnetwork.host[0].gate$i[0]没有连接到子模块(或者内部连接到同一模块的另一个门)。(请参阅重点),所以问题不在于连接这两个模块是错误的,而是wirelessnodehost的内部结构是不正确的。

具体来说,您将wirelessnodehost定义为一个复合模块(一个由其他模块构建的模块,通过将它们连接在一起,而不是在其中指定任何子模块)。我假设您有一些用于C++的wirelessnodehost代码。在这种情况下,您必须将其定义为simple wirelessnodehost。只有简单的模块有相应的代码,并且允许它们使用它们的代码处理传入的消息。另一方面,复合模块应该始终将传入的消息传递给子模块进行处理,这就是运行时抱怨的原因。您没有在内部连接大门,因此运行时不知道在哪里传递传入的消息。

顺便提一句,扩展wirelessnode模块(它本身应该有一个对应的C++代码,并且应该定义为'simple')是相当可疑的。如果处理节点行为的代码是在wirelessnode类中实现的,那么它就不知道wirelessnodehost中定义的门。我建议更深入地研究OMNeT++手册中描述简单模块和复合模块之间的区别的部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31769218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档