0
所以基本上,我用RandomwayPoint模型NS3和我喜歡這個節點的結果:如何跟蹤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
......
但如何記錄每個節點的運動的時間呢? 我覺得最相關的代碼是如何使用Simulator:: Now().GetSeconds()
這裏是我寫的代碼:
std::ostringstream oss2(std::ostringstream::ate);
oss2.str("TimeStamp:");
oss2 << Simulator::Now().GetSeconds();
std::cout << oss2.str() << "\t";
但我得到的結果等於爲0。我對此感到困惑,如果有人能爲我提供更好的解決方案並幫助我弄清楚這一點,我將不勝感激。
ManyThanks。
Thanks @ Konstantinos!這是真的,你知道我得到輸出後,我發現 輸出行像'客戶端發送數據包到xxx.xxx.xxx.xxx'節點的位置**不**完全改變(你可以觀察上面的代碼)只有在輸出行後,節點的位置開始改變。 但是在ListPositionAllocator中,我設置了3個條目(我理解你在這裏提到的條目是節點) 我想在這裏實現的是獲得每個節點位置變化後的時間,你有一些想法想辦法? –
突然我有一個想法: 我可以改變RWP模型中的代碼,並且有一行'Time pause = Seconds(m_pause-> GetValue());'我打算在打印出來之後添加打印輸出行暫停時間並設置計時器記錄整個過程。因爲在每次暫停之後,方向將被改變,這意味着節點的位置將被改變。我對嗎? –
不需要這樣做,因爲如果有變化,追蹤源將會觸發,您可以捕獲它。目前默認暫停時間爲2秒,速度在[0.3,0.7] m/s之間隨機選擇。可能需要幾秒鐘才能到達列表中的每個要點。例如要覆蓋100米的距離,您需要〜200秒。然後它會轉到下一個航點,那將激發追蹤源! – Konstantinos