来自Omnet++网络的柠檬图
Lemon graph from Omnet++ network
我正在尝试从omnet++中提取网络图,并将节点和链接的信息提供给柠檬图。问题的部分很容易处理。使用代码:
cTopology *topo = new cTopology("topo");
std::vector<std::string> nedTypes;
nedTypes.push_back("inet.node.inet.StandardHost");
topo->extractByNedTypeName(nedTypes);
int numNodes = topo->getNumNodes();
EV << "cTopology found " << topo->getNumNodes() << " nodesn";
ListDigraph g;
ListDigraph::NodeMap<std::string> nodeName(g);
for (ListDigraph::NodeIt n(g); n != INVALID; ++n)
{
int i = 0;//counter
int numOutLinks = topo->getNode(i)->getNumOutLinks();
g.addNode();
std::vector<std::string> nodeList;
nodeName[n] = topo->getNode(i)->getModule()->getName();
nodeList.push_back(nodeName[n]);
for(int j = 0; j<numOutLinks; j++)
{
cTopology::LinkOut* lOut = topo->getNode(i)->getLinkOut(j);
cTopology::Node *rNode = lOut->getRemoteNode();
for (auto& nlist : nodeList)
{
auto nodeFound = std::find(std::begin(nlist), std::end(nlist), rNode);
if(nodeFound != std::end(nlist)){
g.addNode();
g.addArc(g.nodeFromId(i), g.nodeFromId(i+1));
}
}
} i++;
不知何故,我正在获取节点列表,现在我也在尝试获取链接信息。也就是说,节点以及它们之间的链接。如何获取链接信息并将其提供给 Lemon 图,我在代码中使用的方法有什么问题?
方法extractByNedTypeName()
需要完全限定的 NED 类型名称,即包含包。INET
StandardHost
通常在包inet.node.inet
中,因此您应该编写:
nedTypes.push_back("inet.node.inet.StandardHost");
编辑
循环for (ListDigraph::NodeIt n(g); n != INVALID; ++n)
永远不会执行,因为图形g
刚刚创建并且为空。外部循环应如下所示:
for(int j = 0; j<numOutLinks; j++)
。
编辑2
由于缺乏NodeMap
find
,必须编写自己的函数,例如:
ListDigraph::NodeIt::Node findNodeMap(const ListDigraph::NodeMap<std::string> & map, const ListDigraph & g,
std::string txt) {
ListDigraph::NodeIt it(g);
for (; it != INVALID; ++it) {
if (map[it] == txt)
break;
}
return it;
}
使用它的示例:
ListDigraph::NodeMap<std::string> nodeName(g);
// ... filling nodeName
std::string str = "node1";
ListDigraph::NodeIt::Node node = findNodeMap(nodeName, g, str);
if (node != INVALID) {
// node with name from str was found
}
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- 通过网络、跨平台传递std::变体是否安全
- 如何在MNIST上提高网络运行的准确性
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- OpenCV 4.1.2 - 从网络摄像头获取帧并将其拆分
- 使用OpenCV和覆盆子上的多个网络摄像头拍摄延时摄影,出现多个V4L错误
- 神经网络不学习.卡在50%
- 如何绑定 C++ gRPC 客户端的网络接口
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- 在不知道套接字的情况下关闭网络连接
- 是否有 Windows 用户空间函数来枚举连接的网络共享?
- 在没有管理员权限的情况下连接到同一网络中的命名管道
- 无法为 X.radio 创建中等可视化,因为找不到网络节点可视化 - Omnet++
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 像 POCO 这样的C++图书馆如何访问网络?
- 使用源读取器从网络摄像头源获取 H264 样本
- 如何将网络模块添加到 QT pro 文件中?
- q网络回复 无状态码或错误,但失败
- 来自Omnet++网络的柠檬图