標籤:

OMNET++中如何使用msg自定義消息/報文

知乎不能直接粘貼圖片,我只好保留了文字,不想每次都重新上傳了。如果要看原文的,請點:如何使用msg自定義消息/報文

------------------------------------------------------

請關注公眾號:薇薇驛站,獲得最新教程。

公眾號功能:不定期更新OMNET++相關資料,關注者越多,動力越多。偶爾會發點吐槽文。【加】近期想增加更新其他教育類的信息~~~~

課程導引:

在通信模擬中,傳輸的消息通常比較複雜,有些協議中,對於消息的格式都有定義,例如:消息中包含校驗碼、目的節點地址等信息。那麼,在OMNET++中如何實現這一定義呢?本文將詳細講解。

註:本文以OMNET++提供的sample/tictoc中的tictoc13常式為例進行說明。

目錄:

一、定義消息的主要步驟

二、自定義消息的相關函數及使用

三、模擬分析

課程詳解:

一、定義消息的主要步驟:

1、新建MSG文件:選中需要創建文件的項目 > 右鍵菜單 > 新建 > Message Definition。

2、定義MSG的語法:message 類定義,需要使用的參數可以直接在類中定義,如下圖所示,也可直接賦初值。參數的類型可以根據用戶自行定義,例如可以是記錄傳輸時間的simtime_t類型等。

3、編譯項目,編譯後會出現於MSG文件相關的.cc和.h文件:

4、節點定義的C++文件中,頭文件需要引用步驟3中生成的msg編譯的頭文件:#include "tictoc13_m.h"

5、完成上述步驟後就可以在節點定義文件中使用該msg了,例如:virtual TicTocMsg13 *generateMessage();

二、自定義消息的相關函數及使用:

1、定義一個msg:

TicTocMsg13 *ttmsg = check_and_cast<TicTocMsg13 *>(msg);

註:與一般的C++參數定義相同。

2、獲取自定義消息中的參數值:

ttmsg->getHopCount();

註: hopCount是自定義消息類型TicTocMsg13中的一個子參數,通過get+參數名稱,可以獲取該參數的具體值。注意,在使用get時,需要將參數的首字母大寫。

3、給自定義消息中的參數賦值:

msg->setSource(src);

註: Source是自定義消息類型TicTocMsg13中的一個子參數,通過set+參數名稱,可以給該參數的賦值。注意,在使用set時,需要將參數的首字母大寫。

4、作為函數的返回值

TicTocMsg13 *generateMessage(); //定義函數時,設定返回值類型

5、作為函數的參數

Txc13::forwardMessage(TicTocMsg13 *msg)

三、模擬分析

本文講解中以sample/tictoc中的tictoc13作為例子,所以,本節講解該常式的模擬過程。

1、模擬界面:注意左邊的導覽欄中消息的類型是TicTocMsg13。

2、模擬結果:模擬中,節點tic[0]要傳輸消息到tic[5],消息中包含源節點、目的節點、以及跳數信息。注意下圖的最後一行,顯示了msg中記錄的從節點0到節點5需要的跳數。


推薦閱讀:

卡車吊機的運動和力學
千篇一律的模塊化編程遊戲——《while True: learn()》
windows下hspice模擬環境安裝
論FPGA模擬重要性
國產單機遊戲波西亞時光名列Steam榜單第四,僅次於GTA5,國產單機遊戲的希望?

TAG:通信 | 模擬 |