Omnet++ 如何在omnet++;?

Omnet++ 如何在omnet++;?,omnet++,inet,Omnet++,Inet,我想得到邻居地址(在传输范围内的节点)的列表。我在omnet++手册中找到了这段代码,但是当我编译时,在“cTopology”中没有名为“extractByModuleType”的成员,我确实返回了类cTopology,并且函数“extractByModuleType()”不存在。我尝试了其他功能,但没有成功。如果有人知道如何访问cTopology,请回答我的问题 致以最良好的祝愿 cTopology topo; topo.extractByModuleType("Host", nullptr)

我想得到邻居地址(在传输范围内的节点)的列表。我在omnet++手册中找到了这段代码,但是当我编译时,在“cTopology”中没有名为“extractByModuleType”的成员,我确实返回了类cTopology,并且函数“extractByModuleType()”不存在。我尝试了其他功能,但没有成功。如果有人知道如何访问cTopology,请回答我的问题

致以最良好的祝愿

cTopology topo;
topo.extractByModuleType("Host", nullptr);
for (int i = 0; i < topo.getNumNodes(); i++) {
  cTopology::Node *node = topo.getNode(i);
  EV << "Node i=" << i << " is " << node->getModule()->getFullPath() << endl;
  EV << " It has " << node->getNumOutLinks() << " conns to other nodes\n";
  EV << " and " << node->getNumInLinks() << " conns from other nodes\n";

  EV << " Connections to other modules are:\n";
  for (int j = 0; j < node->getNumOutLinks(); j++) {
    cTopology::Node *neighbour = node->getLinkOut(j)->getRemoteNode();
    cGate *gate = node->getLinkOut(j)->getLocalGate();
    EV << " " << neighbour->getModule()->getFullPath()
       << " through gate " << gate->getFullName() << endl;
  }
}
cTopology-topo;
topo.extractByModuleType(“主机”,nullptr);
对于(int i=0;i
topo.extractByNedTypeName("Host");
根据文件

此外,您还表示希望获取“传输范围”中的节点列表。因此,假设您有一个无线网络,其中节点之间没有连接。cTopology根据连接发现拓扑,而无线网络没有连接,因此您无论如何也不会得到有意义的结果

除非您的节点没有移动,并且您实际上在相邻节点之间创建了连接。请回答我的“给您帮助”,如何做到这一点:


如果您确实连接了它们,那么您只需遍历所有连接即可到达邻居节点,您将不需要任何cTopology魔术。

感谢您的回复,我知道我无法使用cTopology获得邻居地址,因为我有一个无线传感器网络。您提出了一个解决方案,但其中节点不移动。如果是移动无线传感器网络,请提供一个获取邻居列表的解决方案。不客气。如果您有其他问题,请将其作为单独的问题进行阐述。作为堆栈溢出的策略,您不应在评论部分提出不同的问题。原因是整个讨论将另外,如果给定问题的答案是可以接受的,你应该发出信号并接受它,这样其他用户也会看到它。