如果传感器节点的能量低于0,我需要删除它。每个传感器节点都有输入输出,gate.Every传感器节点也连接到LCN.LCN有输入输出门。我写了这段代码来删除模块。
if(totPower<0){
deleteModule();
callFinish();
}它可以工作,但是如果另一个请求到达这个lcn来感测数据,Lcn假设这个被删除的传感器模块仍然连接到它,并抛出连接error.How我能解决这个问题吗?顺便说一下,我只使用Omnet++,而不是inet,Castalia.
<!> Error in module (LCN) Network.lcn[7] (id=254) at event #188, t=1200: send()/sendDelayed(): gate `lcnSN$o[11]' not connected.发布于 2016-05-18 17:36:56
首先,您应该将网络NED中的连接声明更改为:
connections allowunconnected:它允许门保持断开连接。
其次,callFinish()应该在 deleteModule()之前涉及。
此外,在发送之前,您必须检查是否连接了一个门。示例代码:
// 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表示门的输出部分。
https://stackoverflow.com/questions/37273236
复制相似问题