2016-01-13 39 views
0

由於我正在進行車輛間通信的項目,因此我需要計算車輛node[0]與車輛node[1]之間在所有給定模擬時間之間的距離。如何使用OMNet ++矢量數據計算車輛距離?

由於有在矢量數據posxposy,我可以在.csv文件輸出他們,但問題是,所有的數據被分成不同的CSV文件,例如,node[0]posx是在一個文件中,但node[0]posy在另一個。

我必須手動打開兩個文件並將結果複製並粘貼在一起。由於每個模擬中有四個不同的值,我必須每次打開四個不同的文件。

如果在仿真中有20個不同的迭代,那意味着我必須打開80個文件才能獲得我想要的車輛結果之間的距離。有沒有更快更簡單的方法可以完成這個過程?

回答

1

如果您打算通過查看個人.csv文件,你可以使用更先進的工具,如R(或Rsutdio IDE),以在更大的CSV合併的CSV,然後做自己的計算來計算距離。

測量靜脈中兩個實體之間距離的更好方法是使用Coord.h類中的distance()函數。這將比較兩個座標並提供它們之間的距離。

下面的代碼應該給你一個粗略的想法,雖然它不適用於你的情況。你

Coord eNodePos = Imobility->getCurrentPosition(); 
Coord selfPos = mobility->getCurrentPosition(); 
float distance = selfPos.distance(eNodePos); 

還可以使用從TraCICommandInterfacegetDistance()功能之一。這可能會讓你更好。 TraCITestApp.cc會給你一個如何使用這些功能的想法。

如果您需要比較兩個以上的成對距離,則最好在模擬中創建一個特定模塊,該模塊將有一張表,用於收集每個模擬的車輛位置和車輛ID第二,然後在矢量中輸出它們之間的距離。

對不起,由於您的問題缺乏提供即用型解決方案的代碼的細節是不可能的。