2016-04-11 104 views

回答

3

有,因爲每一個模塊,協議,信道的整個行爲,包等通過INET使用已經在C++文件中定義的在src目錄中INET例子沒有C++文件。編譯後的可用代碼存在於文件src\libINET.dll(或Linux的src/libINET.so)中。
要了解如何對協議進行建模查看模塊內部並查找簡單模塊。 (在OMNeT++行爲僅被定義爲簡單的模塊。)
例如:

  1. examples\wireless\lan80211Lan80211.ned。以源(文本)格式打開它。該網絡使用(在其他事物之間)WirelessHost
  2. 轉到聲明WirelessHost(提示:選擇該詞並按F3或單擊該詞並保持Ctrl)。可以看到,WirelessHost繼承自StandardHostNodeBase。此外:numRadios=1mgmtType = "Ieee80211MgmtSTASimplified"
  3. NodeBase.ned中可以看到它默認使用Ieee80211Nic wlan模塊。模塊Ieee80211Nicsrc\inet\linklayer\ieee80211\Ieee80211Nic.ned中定義。可以看到Ieee80211Mac(在其他之間)。這是一個在\src\inet\linklayer\ieee80211\mac\Ieee80211Mac.ned中定義的簡單模塊。其行爲在\src\inet\linklayer\ieee80211\mac\Ieee80211Mac.cc中定義。

這樣就可以發現一個簡單的模塊及其每個複合模塊的代碼C++。但是,考慮到要理解複合模塊如何工作,也應該考慮簡單模塊之間的連接。

+0

謝謝,所以在INET模塊中定義了像80211 mac層這樣的所有簡單模塊。如果我想在mac層和網絡層之間添加一個自定義層來處理網絡編碼。我怎樣才能組合定製模塊和INET模塊。 –

+0

最簡單的方法是創建一個新的'OMNeT ++'項目並將'INET'設置爲引用項目。而且,在你的新項目中,你應該爲你的主機定義自己的NED文件。主機將從'StandardHost'繼承。我建議爲這個問題添加一個新問題,我會爲您提供解決方案的示例代碼。 –

+0

謝謝耶日,我已經添加了一個新的問題。 –

相關問題