如何在 ns3 的 first.cc 中添加更多节点?
How can i adding more nodes in first.cc in ns3?
我刚了解 first.cc,我想将 first.cc 中的节点数从 2 更改为 3 或 4 5,但仅更改 nodes.Create(2) ==> nodes.Create(3) 导致我出现这样的错误
断言 failed.cond="c.GetN () ==2" , +0.00000000s -1 file=../src/point-to-point/helper/point-to-point-helper.cc, line=224
在没有活动异常的情况下终止调用
所以我必须在它们之间添加一些联系,否则?任何帮助或建议将不胜感激!
我想首先鼓励您使用 gdb(或 lldb)来调试程序。如果这样做,您会发现 this line in first.cc 导致错误:
devices = pointToPoint.Install (nodes);
为什么会这样?那么,如果我们转到 the definition of the function being called,我们会发现:
NetDeviceContainer
PointToPointHelper::Install (NodeContainer c)
{
NS_ASSERT (c.GetN () == 2); // line 224
return Install (c.Get (0), c.Get (1));
}
看这段代码,很明显 PointToPointHelper::Install(NodeContainer) 强加了 NodeContainer 只能包含两个节点的约束。这解释了您遇到的错误是如何发生的。
但是为什么呢?
这是一个(不错的)设计选择。 PointToPointChannel 只能安装在恰好两个 PointToPointNetDevice 之间,不能多也不能少。因此,实现强加了 NodeContainer 只能包含两个节点的约束。
我刚了解 first.cc,我想将 first.cc 中的节点数从 2 更改为 3 或 4 5,但仅更改 nodes.Create(2) ==> nodes.Create(3) 导致我出现这样的错误
断言 failed.cond="c.GetN () ==2" , +0.00000000s -1 file=../src/point-to-point/helper/point-to-point-helper.cc, line=224 在没有活动异常的情况下终止调用
所以我必须在它们之间添加一些联系,否则?任何帮助或建议将不胜感激!
我想首先鼓励您使用 gdb(或 lldb)来调试程序。如果这样做,您会发现 this line in first.cc 导致错误:
devices = pointToPoint.Install (nodes);
为什么会这样?那么,如果我们转到 the definition of the function being called,我们会发现:
NetDeviceContainer
PointToPointHelper::Install (NodeContainer c)
{
NS_ASSERT (c.GetN () == 2); // line 224
return Install (c.Get (0), c.Get (1));
}
看这段代码,很明显 PointToPointHelper::Install(NodeContainer) 强加了 NodeContainer 只能包含两个节点的约束。这解释了您遇到的错误是如何发生的。
但是为什么呢?
这是一个(不错的)设计选择。 PointToPointChannel 只能安装在恰好两个 PointToPointNetDevice 之间,不能多也不能少。因此,实现强加了 NodeContainer 只能包含两个节点的约束。