所以基本上,我在NS3中使用了随机路点模型,我得到了这样的节点结果:
/NodeList/5/$ns3::MobilityModel/CourseChange x = 10, y = 20
/NodeList/6/$ns3::MobilityModel/CourseChange x = 30, y = 40
/NodeList/7/$ns3::MobilityModel/CourseChange x = 50, y = 80
/NodeList/5/$ns3::MobilityModel/CourseChange x = 10, y = 20
/NodeList/6/$ns3::MobilityModel/CourseChange x = 30, y = 40
/NodeList/7/$ns3::MobilityModel/CourseChange x = 50, y = 80
/NodeList/5/$ns3::MobilityModel/CourseChange x = 10, y = 20
/NodeList/6/$ns3::MobilityModel/CourseChange x = 30, y = 40
/NodeList/7/$ns3::MobilityModel/CourseChange x = 50, y = 80
At time 2s client sent 1024 bytes to 10.1.2.4 port 9
At time 2.01596s server received 1024 bytes from 10.1.3.3 port 49153
At time 2.01596s server sent 1024 bytes to 10.1.3.3 port 49153
At time 2.02464s client received 1024 bytes from 10.1.2.4 port 9
......
但是如何记录每个节点运动的时间呢?我认为最相关的代码是关于使用
std::ostringstream oss2(std::ostringstream::ate);
oss2.str("TimeStamp:");
oss2 << Simulator::Now().GetSeconds ();
std::cout << oss2.str() << "\t";
但我得到的结果等于0。我对此感到困惑,如果有人能给我一个更好的解决方案,并帮助我解决这个问题,我将非常感激。
多谢。
逻辑是正确的,
std::cout << "TimeStamp:" << Simulator::Now().GetSeconds() << "\t";
t=0秒的事实,可能是因为节点在这之后没有‘改变’。CourseChange回调仅在速度或速度(方向)改变期间激发。如果节点以恒定的速度移动,则不会触发。
继您在上一篇文章中的评论之后,您说您使用了ListPositionAllocator。如果您在列表中只有一个条目,那么除了t=0处的首字母(您在输出中看到的内容)之外,它不会改变。