首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >omnet++删除模块元素

omnet++删除模块元素
EN

Stack Overflow用户
提问于 2016-05-17 18:14:02
回答 1查看 303关注 0票数 0

如果传感器节点的能量低于0,我需要删除它。每个传感器节点都有输入输出,gate.Every传感器节点也连接到LCN.LCN有输入输出门。我写了这段代码来删除模块。

代码语言:javascript
复制
if(totPower<0){
       deleteModule();
       callFinish();
    }

它可以工作,但是如果另一个请求到达这个lcn来感测数据,Lcn假设这个被删除的传感器模块仍然连接到它,并抛出连接error.How我能解决这个问题吗?顺便说一下,我只使用Omnet++,而不是inet,Castalia.

代码语言:javascript
复制
<!> Error in module (LCN) Network.lcn[7] (id=254) at event #188, t=1200: send()/sendDelayed(): gate `lcnSN$o[11]' not connected.
EN

回答 1

Stack Overflow用户

发布于 2016-05-18 17:36:56

首先,您应该将网络NED中的连接声明更改为:

代码语言:javascript
复制
connections allowunconnected:

它允许门保持断开连接。

其次,callFinish()应该在 deleteModule()之前涉及

此外,在发送之前,您必须检查是否连接了一个门。示例代码:

代码语言:javascript
复制
    // i - is an index of gate lcnSN you want to send
    cGate *outGate = gate("lcnSN$o", i);
    if (outGate->isConnected()) {
        send(msg, "lcnSN$o", i);
    } 

后缀$o表示门的输出部分。

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

https://stackoverflow.com/questions/37273236

复制
相关文章

相似问题

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