日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OMNet++新建工程及运行

發布時間:2023/12/31 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OMNet++新建工程及运行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版本:5.6.2
剛下了OMNet++,嘗試跑了一下例程。因為是第一次接觸,所以感覺OMNet和自己配合的并不是很好。昨天新建并運行了第一個工程:TicToc1,流程大概是這樣的:

創建及運行仿真

1.打開OMNET++的IDE

2.新建OMNET++工程文件:

FILE-NEW-OMNET++PROJECT

3.工程文件設置

輸入工程名稱

選擇一個空工程選項,Finish

然后就出現了你創建的工程文件

4.添加NED文件

NED文件是用來定義網絡和節點數目的。我們也是通過添加NED文件來部署我們的節點。
可點擊FILE-NEW-Network Description FIle(NED)或者
右鍵點擊工程名稱-NEW-Network Description FIle(NED),二者是一樣的。

選擇文件名稱:

選擇空文件

點擊finish就行了

這個時候會出現新建的NED文件,此時下方會有兩個選項供你選擇,一個時Design,一個是SOURCE,
Design模塊:你可以使用鼠標拖拽,圖形式的添加節點
Source模塊:通過文本編輯節點信息

5.選擇source編輯NED文件

選擇下方的Source選項,將tictoc1的例程敲(復制)進去就行了

// // This file is part of an OMNeT++/OMNEST simulation example. // // Copyright (C) 2003 Ahmet Sekercioglu // Copyright (C) 2003-2015 Andras Varga // // This file is distributed WITHOUT ANY WARRANTY. See the file // `license' for details on this and other legal matters. //simple Txc1 {gates:input in;output out; }// // Two instances (tic and toc) of Txc1 connected both ways. // Tic and toc will pass messages to one another. // network Tictoc1 {submodules:tic: Txc1;toc: Txc1;connections:tic.out --> { delay = 100ms; } --> toc.in;tic.in <-- { delay = 100ms; } <-- toc.out; }

如果完成了返回Design時,就會出現這樣的界面:


文件中的第一個塊將Txc1聲明為簡單類型模型,他的說明如下:
他有一個名為in的輸入門和名為out的輸出門
這些簡單模塊在NED中只是網絡的一部分,是活動組件,他的行為(傳輸行為)是在C++文件中實現的。

第二塊聲明Tictoc1是一個網絡
Tictoc1由兩個子模塊tic和toc組裝而成,這兩個子模塊都是Txc1模塊類型的實例。

tic的輸出門連接到toc的輸入門,反之亦然,雙向都會有100毫秒的傳播延遲。

6.添加C++文件

右鍵點擊工程名選擇NEW-Source File

然后添加如下內容:

#include <string.h> #include <omnetpp.h>using namespace omnetpp;/*** Derive the Txc1 class from cSimpleModule. In the Tictoc1 network,* both the `tic' and `toc' modules are Txc1 objects, created by OMNeT++* at the beginning of the simulation.*/ class Txc1 : public cSimpleModule {protected:// The following redefined virtual function holds the algorithm.virtual void initialize() override;virtual void handleMessage(cMessage *msg) override; };// The module class needs to be registered with OMNeT++ Define_Module(Txc1);void Txc1::initialize() {// Initialize is called at the beginning of the simulation.// To bootstrap the tic-toc-tic-toc process, one of the modules needs// to send the first message. Let this be `tic'.// Am I Tic or Toc?if (strcmp("tic", getName()) == 0) {// create and send first message on gate "out". "tictocMsg" is an// arbitrary string which will be the name of the message object.cMessage *msg = new cMessage("tictocMsg");send(msg, "out");} }void Txc1::handleMessage(cMessage *msg) {// The handleMessage() method is called whenever a message arrives// at the module. Here, we just send it to the other module, through// gate `out'. Because both `tic' and `toc' does the same, the message// will bounce between the two.send(msg, "out"); // send out the message }


7.添加OMNetpp.ini文件

為了能夠成功地方針,我們需要添加一個.ini文件,這個文件是告訴仿真器你要模擬哪個網絡。也可以將參數傳遞給模型,生成隨機數等。
點擊File-New-Initialization file(INI)

點擊空文件

創建完成后:

輸入你剛才在NED中定義的網絡名稱Tictoc1

你也可以切換下面的Form模塊中輸入創建的網絡名稱

8. 仿真

選擇ini文件,點擊運行按鈕

一路ok下去就行,下面點擊全部保存

就會出現仿真圖

點擊運行:

小總結:

一個工程文件中,總共包含了三個文件,分別是NED文件,.cc文件,,ini文件

  • NED文件:包含了網絡及節點的數目,定義了簡單模塊和網絡,網絡由簡單模塊組成。
  • .cc文件:代碼源文件,此文件制定信息傳輸的方式,節點與節點之間的行為特性
  • .ini文件:仿真初始文件,包含了需要仿真的網絡。

總結

以上是生活随笔為你收集整理的OMNet++新建工程及运行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。