Veins文件(中文)

2021-09-02 18:54:27 字數 3010 閱讀 4267

正如之前所討論的那樣,veins的每個**並行執行在兩個**器上:omnet++(用於網路**)、sumo(用於車輛交通**)。所有的**器都是通過tcp套接字連線。這意味著道路交通流量和網路流量是雙向耦合的。由道路交通**器sumo所**的車輛移動將會被對映為omnet**軟器中的移動節點。節點能夠於正在執行的道路交通**器進行互動,譬如,能夠模擬道路交通的進氣門關閉的影響。

更多資訊請查閱下面的**:

veins tutorial

frequently asked questions (faq)

modules

sumo-launchd

關於模擬器和traci的資訊分別將在以下**能被查詢到:

omnet++ - the objective modular network testbed

sumo - simulation of urban mobility

traci description on the sumo wiki

為了更加精確的模擬物理層的效果,特別是模型化和工作在時間和空間上的分布上,veins依賴mixim所提供的功能,並被整合進veins中。

veins將sumo中的每一輛行駛的車輛例項化成乙個網路節點。這個任務由traciscenariomanagerlaunchd模組處理:這個模組連線上乙個traci伺服器(sumo或者是sumo-launchd)並且訂閱像創造車輛和移動車輛的事件。對於每個在sumo中創造的車輛,都將在omnet++**軟體中例項化乙個omnet++組合模組。這個模組被假定包含乙個tracimobility型別的移動子模組。每隔一段時間,這個模組將會被sumo用於高階**並且根據車輛的行為來更新節點的移動資訊(例如位置、速度和方向)。為了更快的測試,這個tracimobility模組同時包含了乙個函式功能來使得車輛能夠在乙個預先定義的時刻停止(由引數accidentstartaccidentduration來配置)。

整個模組的api文件在之前討論過的文件中。traciscenariomanagerlaunchd中最重要的引數如下所示:

updateinternval

sumo**更新的時間間隔

moduletype

選擇那乙個種omnet++模組來例項化每個正在行駛的車輛

port

使用哪乙個tcp埠來連線sumo-launchd

seed

選擇哪乙個隨機的種子來配置sumo

roirects

用來僅僅**指定區域的車輛,roi的意思指感興趣的區域(region of interest)

應用模型能夠使用traciscenariomanagerlaunchd類和相關類,很方便的就能從tracimobility中拿到想要的東西。下面這個例子顯示出車輛如何在意識到一條名為second street的街道擁有緩慢的交通環境,可能改變原先的路線而避開這條擁擠的街道。

mobility = tracimobilityaccess().get(getparentmodule());

traci = mobility->getcommandinte***ce();

tracivehicle = mobility->getvehiclecommandinte***ce();

tracivehicle->changeroute("second street", 3600);

其它的車輛相關聯的指令像setspeed或者setparking。相似的方法將被利用到整個**,例如(addvehicleaddpolygon),在道路上拿到平均速度(getmeanspeed),單獨某條車道getshape。交通指示燈setprogram。多邊形setshape。任何感興趣的點,如路口、路線、車輛型別或者使用者圖形介面。

如何使用這些模型,你需要閱讀veins的源**,同時,總共有80+的方法能夠在raciscenariomanagerlaunchd中找到,或者是自動生成的模型文件。

veins包含了適合車聯網網路的802.11協議模型,這包括ieee802.11p。這包含了符合edca的qos通道訪問機制(包含四條佇列擁有不一樣的訪問類別)。這個協議能夠抓取時間幀,模型化,程式設計和通道模型。

未完持續

車輛之間的廣播訊號的傳遞被訊號陰影效應(signal shadowing effects)嚴重影響。精確的抓取訊號資訊對於執行在城市環境的車聯網路系統相當重要,建築物能夠遮蔽掉廣播訊號的傳播。veins包含了乙個簡單的賬號陰影模型,這個模型已經被現實世界驗證並校準,如下圖所示:

這個模型將會精確的抓取大型建築限制傳播的效果以及不太厚的牆壁降低傳播的效果。

為omnet++設計的sumo交通控制介面模型和乙個小的守護程序共同作用來讓模擬**過程更加簡單:

設計好的守護程序和sumo-launchd執行在後台,監聽著發生的請求。在每筆發生的輸入連線中,該守護程序接受xml格式的**建立檔案,並依此構建乙個單獨的sumo例項以及omnet++和sumo之間的優先請求。

所有的網路節點的管理和tempfile管理由daemon完成。sumo例項被創造並在需要的時候被毀滅,簡言之就是簡化版本的執行模型。

Testing with Xcode文件 中文版

本系類文章由cocoachina翻譯小組成員翻譯自蘋果的 testing with xcode文件,參與譯者 dada github位址 migrant 微博 da杯檸檬水 微博 校對 wae childhoodandy 部落格 testing with xcode文件 中文版 簡介和快速開始 xc...

中文ruby文件

學習ruby過程中總結了一些ruby中常用的陣列操作。1 陣列定義 arr1 arr2 array.new arr3 1 2 3 2 輸出 print arr3,n 123puts arr3 0 1 print arr3.join 1,2,3 3 訪問陣列元素 arr1 0 arr1 1 這個比較有...

veins安裝及執行筆記

開啟omnet file import veins資料夾,引入veins。file import general existing projects into workspace,匯入veins,開啟omnetpp下的mingwenv.cmd cd veins 5.0 examples veins,...