OMNeT++4.1 基本操作指南


OMNeT++4.1 基本操作指南(v1.0) OMNeT++4.1 基本操作指南 PART 1:安装 声明: 1、本安装指南参考了OMNeT++官方网站(http://www.omnetpp.org/)提供的 4.1 版本下载页面 (http://www.omnetpp.org/omnetpp/doc_details/2218-omnet-41-win32-source--ide--mingw-zip) InstallGider(http://www.omnetpp.org/doc/omnetpp41/InstallGuide.pdf); 2、本安装指南仅提供 windows 版安装过程 指南: 1. 本安装程序支持的操作系统为:windows xp,vista,win 7。 2. 前提条件:需 Java 运行环境/JRE,推荐 6.0 及以上版本(http://www.java.com),原因是 4.1 版本的 IDE 模拟平台是基于 Eclipse 环境开发/运行。其他诸如c++编译平台已内嵌于 OMNeT++ 系统,无需单独安装。JDK 安装及配置不再赘述(务必确保预安装 JDK6.0 以上版本!!!)。 3. 安装: 1. 下载OMNET++4.1 版 (http://www.omnetpp.org/omnetpp/doc_details/2218-omnet-41-win32-source--ide --mingw-zip); 2. 下载后,建议复制到 D 盘,或其他常用程序安装盘根目录下,自解压即可(会自动解压 至 omnetpp-4.1 目录),这样做主要是便于管理,否则路径太长不易管理; 3. 进入 omnetpp-4.1 目录; 4. 发现 mingwenv.cmd 可执行程序; 4. 配置: 1. path 路径编辑:为便于 windows 操作系统自动识别 omnet 相关命令,建议添加 omnet 的 bin 路径(这个不需要多说,相信大家都知道); 2. 确认配置文件 configure.user,用记事本打开即可,不过你根本不需改变任 何选项; 3. 直行配置文件,实现系统配置: 1. 双击运行 mingwenv.cmd(位于解压后的 omnetpp-4.1 目录); 2. $ ./configure (命令可能执行若干秒) 3. $ make (命令可能执行若干分钟) 5. 测试: 1. 系统自带范例保存于./samples 路径下,可以随机测试其中的任何一个是否正确运行, 以确认安装是否成功。如果测试失败,则安装失败,务必注意; 2. 以下指令依然运行于 mingwenv.cmd 执行之后的 shell; 3. 以 dyna 为例; 4. $ cd samples/dyna (进入 samples/dyna 路径) 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 5. $ ./dyna (执行 dyna 仿真程序) 6. 默认情况下,程序以图型界面运行。你可以通过 GUI 与其互动。 6. IDE: 1. 配置成功后,也就完成了 omnet++4.1 的安装。进入安装目录下 ide 目录,会发现 omnetpp.exe 程序。为便于运行,可右键-->发送到-->桌面快捷方式,于桌面生成快捷 方式。 2. 亦可通过 mingwenv.cmd 执行之后的 shell 3. $ omnetpp 4. 即,打开 omnet IDE(集成开发环境) 7. 其他 1. omnet++4.1 除了基本的系统外,还提供了其他的包,以用于具体的网络仿真。 2. 关于这些包的安装操作指南,会陆续推出。 8. ENJOY IT! 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) PART 2:IDE仿真范例 声明: 1、本节操作指南参考了百度文库之《OMNeT++ 4.0 IDE(集成开发环境)教程》 (http://wenku.baidu.com/view/863dc2c789eb172ded63b712.html),并针对OMNeT++ 4.1 做了修正。 2、本操作指南仅适用于 OMNeT++ 4.1 IDE 指南: 1、 启动 omnet++4.1 IDE 2、 进入欢迎界面 3、 进入 workbench 4、 在左侧 project explorer,右键 aloha,选择“open project”(记住只有第一次运行才会出 现该选项) 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 5、 编译 aloha 6、 在左侧 project explorer,右键 aloha,选择“build project” 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 7、 在左侧 project explorer,右键 aloha,选择“run asÆrun configrations” 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 8、 在弹出的窗口中,展开左侧 OMNeT++ Simulations,自动创建 New Configration,并点 击 New Configration 9、 在弹出的窗口中设置“Record Eventlog”选项置为“Yes”,表示仿真中存储 Event Log。之 后,点击右下角的“Run”按钮 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 10、 在弹出的窗口下拉菜单中,我们能够选择不同的场景进行运行,此处我们选择第一 个场景“PureAloha1 -- "pure Aloha, overloaded"”,点 击 “OK”(类似的,我们可以选择运行 其他场景) 11、 之后弹出仿真显示界面,点击上面的 Run 按钮(旁边的倒三角符号以及进度条能 够调节仿真速度) 12、 仿真运行起来的界面,以“慢速”(Run)进行仿真能够看到发包过程,而且消息能 够被双击点开,看到消息的具体内容 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 13、 结束仿真,点击“OMNeT++/Tkenv – Aloha”界面右上角关闭按钮(X),在弹出的 窗口中询问是否调用 finish() 函数,选择“是”调用 Finish() 并收集统计结果。 14、 察看顺序表 15、 End 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) PART 3: 创建一个tictoc模拟实例 声明: 1、本实例改编自 omnet++4.1 帮助文档 2、本实例仅在 windows 环境中测试 指南: 1、 概述 Omnet 的大部分仿真对象概念属于通信领域(telecommunications)。我们这里的“tictoc” 亦是源于此领域。本实例构建了一个仅含有两个节点(node)的网络(network),其节点 分别称为“tic”和“toc”。它们分别创建一个“包”(pocket),并互传给对方。 2、 过程 a) 创建工作路径,tictoc,并进入该路径。实现过程是:在 omnet 安装路径下建文件 夹 tictoc,并在 mingw 命令窗口中输入: $ cd tictoc b) 创建网络拓扑(topology)文件,即 ned 文件。描述网络拓扑,节点,及其连接关 系。你可选择自己喜欢的任何类型记事本程序处理,我选择的是 UitraEdit。文件名 为 tictoc.ned。代码如下(后续所有文件均默认保存于./tictoc 路径下): // // This file is part of an OMNeT++/OMNEST simulation example. // // Copyright (C) 2003 Ahmet Sekercioglu // Copyright (C) 2003-2008 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; } 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) // // 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; } 说明:代码最好从下向上读: • Tictoc1 是网络(network)函数,它装配了两个子模块(submodules),tic,toc。 tic 和toc是相同子模块类型的实例,实例类型为Txc1。Tic的出口连接到toc的入 口,tic的入口连自toc的出口。分别设定了 100ms的延迟时间。 (network ... { ... }).。 • Txc1 是一个简单模块类,它是NED文件的原子类,以c++语言编写。Txc1 拥有 一个入口(input gate)和一个出口(output gate),分别定为位in,out(simple ... { ... }). c) 用C++实现简单模块Txc1,并保存为C++ file txc1.cc // // This file is part of an OMNeT++/OMNEST simulation example. // // Copyright (C) 2003 Ahmet Sekercioglu // Copyright (C) 2003-2008 Andras Varga // // This file is distributed WITHOUT ANY WARRANTY. See the file // `license' for details on this and other legal matters. // #include #include 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) class Txc1 : public cSimpleModule { protected: // The following redefined virtual function holds the algorithm. virtual void initialize(); virtual void handleMessage(cMessage *msg); }; // 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? Tic! 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"); } 说明:看英文吧,翻译还不如看原文来的快! 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) The Txc1 simple module type is represented by the C++ class Txc1, which has to be subclassed from cSimpleModule, and registered in OMNeT++ with the Define_Module() macro. We redefine two methods from cSimpleModule: initialize() and handleMessage(). They are invoked from the simulation kernel: the first one only once, and the second one whenever a message arrives at the module. In initialize() we create a message object (cMessage), and send it out on gate out. Since this gate is connected to the other module's input gate, the simulation kernel will deliver this message to the other module in the argument to handleMessage() -- after a 100ms propagation delay assigned to the link in the NED file. The other module just sends it back (another 100ms delay), so it will result in a continuous ping-pong. Messages (packets, frames, jobs, etc) and events (timers, timeouts) are all represented by cMessage objects (or its subclasses) in OMNeT++. After you send or schedule them, they will be held by the simulation kernel in the "scheduled events" or "future events" list until their time comes and they are delivered to the modules via handleMessage(). Note that there is no stopping condition built into this simulation: it would continue forever. You will be able to stop it from the GUI. (You could also specify a simulation time limit or CPU time limit in the configuration file, but we don't do that in the tutorial.) d) Makefile,编译、链接文件,生成可执行文件 tictoc $ opp_makemake e) 编译、链接形成仿真程序 $ make f) 编写配置文件 omnetpp.ini: [General] network = tictoc1 这个配置文件非常简单。后续的范例中应用的配置文件 omnetpp.ini(本例仅包含上述 两行即可,也可一次性完成如下所有配置内容),可扩展至如下: # This file is shared by all tictoc simulations. # Lines beginning with `#' are comments [General] # nothing here 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) [Config Tictoc1] network = Tictoc1 [Config Tictoc2] network = Tictoc2 [Config Tictoc3] network = Tictoc3 [Config Tictoc4] network = Tictoc4 Tictoc4.toc.limit = 5 [Config Tictoc5] network = Tictoc5 **.limit = 5 [Config Tictoc6] network = Tictoc6 [Config Tictoc7] network = Tictoc7 # argument to exponential() is the mean; truncnormal() returns values from # the normal distribution truncated to nonnegative values Tictoc7.tic.delayTime = exponential(3s) Tictoc7.toc.delayTime = truncnormal(3s,1s) [Config Tictoc8] network = Tictoc8 [Config Tictoc9] network = Tictoc9 [Config Tictoc10] network = Tictoc10 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) [Config Tictoc11] network = Tictoc11 [Config Tictoc12] network = Tictoc12 [Config Tictoc13] network = Tictoc13 [Config Tictoc14] network = Tictoc14 [Config Tictoc15] network = Tictoc15 record-eventlog = true [Config Tictoc16] network = Tictoc16 **.tic[1].hopCount.result-recording-modes = +histogram **.tic[0..2].hopCount.result-recording-modes = -vector g) 完成上述所有步骤后,即可在 MINGW 命令窗口中输入./tictoc。提醒,如果你在编 写上述文件时,已经启动了 omnet IDE,此时要关闭、充启,否则会提示找不到 ned、 ini 等文件。因为 IDE 尚未获知相关路径信息。 $ ./tictoc 我们下面的截图是采用了扩展版 omnetpp.ini,因此出现了选择框。 选择仿真配置对象窗口 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) Tictoc1 仿真窗口 Tictoc1 仿真过程演示窗口 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 仿真初始化及事件流窗口 说明: The main window toolbar displays the simulated time. This is virtual time, it has nothing to do with the actual (or wall-clock) time that the program takes to execute. Actually, how many seconds you can simulate in one real-world second depends highly on the speed of your hardware and even more on the nature and complexity of the simulation model itself. Note that it takes zero simulation time for a node to process the message. The only thing that makes the simulation time pass in this model is the propagation delay on the connections. h) 结束仿真。 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) PART 4: 安装INET 声明:本安装教程源自INET安装脚本英文版,且于windows xp&omnet++4.1& winpcap driver 测试通过(英文版安装脚本见:https://github.com/inet-framework/inet/blob/master/INSTALL)。 前期准备:本教程仅限于 windows xp 操作系统 1、 安装 omnet++4.1 或更高版本 2、 下载INET最新版本(https://github.com/inet-framework/inet/downloads) 3、 安装winpcap driver(visit http://www.winpcap.org) 指南: 1、 基本操作 a) 确认 omnet++工作正常(可通过运行一些范例来验证,此处不赘述); b) 进入自己的工作目录(workspace,只要用过 IDE 均知道,即为自己工程所在目录), 如没有,自己于已安装的 omnet 目录下创建一个,比如“wsn”。 c) 将下载的 INET 源文件压缩包解压到自己的工作目录。注意,最好不用 windows 下的解压缩程序,而是要进入 omnet 命令窗口,进入工作目录(比如,cd wsn): 输入:tar xvfz inet-yyyymmdd-opp4-src.tgz //yyyymmdd 为下载的 INET 源文件名所附 日期,且勿机械照搬;之后会自动解压缩至 INET 子目录下。 2、 如果你选择用命令模式安装: a) 打开命令窗口:MINGW32 b) 进入 INET 所在路径,比如 cd wsn/inet(笔者的路径,具体参考你自己的安装信 息) c) 输入:make makefiles // 自动生成 makefiles d) 输入:make //生成 inet 可执行文件 e) 运行范例,进入 examples 目录,选择某一个范例,进入其根目录 f) 输入:./run //强烈建议运行前要充启一次命令窗口,因为安装相关系统 信息需要注册进系统 3、 如果你选择用 IDE 模式安装: a) 打开 IDE,选择自己的工作空间目录 b) 导入 project(inet):File | Import | General | Existing projects into Workspace.期间选 择工作目录为根目录,切记不要选择"Copy projects into workspace" box. 完成即可 c) 创建项目:Project | Build all //在 explorer 选中导入的项目 INET d) 运行范例: i. 进入 INET 的 examples 路径,选择一个范例,右击其中的 omnetpp.ini,Run As / Simulation ii. 强烈建议,此时进入命令窗口,进入 examples 路径,输入./rundemo,之后运 行 INET demo 帮助文件 4、 注意事项 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) a) If you add/remove files/directories later in the src directory, you MUST re-create your makefile. Run "make makefiles" again if you are building from the command line. (The IDE does it for you automatically) b) by default INET is creating a shared library (libinet.dll, libinet.so etc.) in the "src" directory. To use the shared library you can use the "opp_run" command to load it dynamically. Open the "src/run_inet" script to see how to do it. c) 可自行阅读上述英文注意。但最务实的建议是如果先用命令行模式安装,且运行可 能会报错,不宜慌张。解决办法是按照 IDE 模式重新操作一次肯定就会自然解决 了。 5、 ENJOY IT! 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) PART 5: 安装MiXiM 声明: 1、 URL Resource: http://sourceforge.net/apps/trac/mixim/wiki/Installation 2、 本安装指南仅于 windows 操作系统测试通过 安装指南: 1、 前提条件 a) OMNeT++, at least version 4.1 b) OMNeT++ must be compiled with dynamic NED loading (WITH_NETBUILDER=yes setting) //只要安装好 omnet,该配置项自动完成,不 需要再手工设置 c) XML support enabled //该项,我在安装时未检查,未手工设置,但目前没发现问题 d) make (for Linux) //只要安装好 omnet,该配置项自动完成,不需要再手工设置 e) C++ compiler (for Linux) //只要安装好 omnet,该配置项自动完成,不需要再手 工设置 f) at least Mac OS X 10.5 (for Mac users) //windows 用户无需考虑 2、 MiXiM and Mixnet 的相关说明 a) MiXiM2.0 版本后,自动包含了 Mixnet。安装前你必须确认是否需要 Mixnet。Mixnet 的安装前提是,安装了 INET(安装指南见 PART3)。 b) 对于刚入门者,我强烈建议不安装 Mixnet,因此在导入项目时,去掉 Mixnet 前的 复选框,切记!!! c) 如果你的确需要 Mixnet,且之前正确安装调试好 INET,那么在后续的安装中则选 中 Mixnet。否则,参考意见 b。 3、 从 IDE 安装 1. Choose "File->Import" from the menu. 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 2. Choose "General->Existing Projects into Workspace" from the upcoming dialog and proceed with "Next". 3. Choose "Select archive file" and select the MiXiM archive file. 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 4. "MiXiM" and "Mixnet" should appear in the "Projects" list below. Remove the check before "Mixnet"!!! You can always install it later separately. Only if you have the correct INET branch already installed and you are sure that you need "Mixnet", you can leave "Mixnet" checked. At last click "Finish". 5. To build MiXiM right-click on the project and choose "Build Project". 6. Run an example: a. Choose an example from the examples directory (e.g. "examples/baseNetwork"). b. Right click its executable and choose "Run as" -> "Run configurations...". a. Double click on "OMNet++ Simulation" in the left list to create a new OMNet++ run configuration for this example (each example needs its own Run configuration). The "Working directory" should be the examples directory. Also make sure the correct executable is chosen under "Executable: ... Other:" (should be the one inside the examples directory). b. Click "Run" 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 4、 从命令窗口安装 a) Unpack the archive (you have probably already done so) b) tar xzf mixim.tgz c) run the following command in the MiXiM root dir (you can alternatively also use the "gcc-release" configuration) d) make -f makemakefiles CONFIGNAME=gcc-debug e) type "make all" to make the mixim library and binary and to build the test networks At last try to run one of the examples from the examples folder. 5、 ENJOY IT! 资源延伸(关于mixim的各类教程及文档资源):http://sourceforge.net/apps/trac/mixim/ 自己深入阅读并学习,定有相当收获! 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning OMNeT++4.1 基本操作指南(v1.0) 西南大学电子信息工程学院嵌入式系统与无线网络实验室:李太华 litaihua@gmail.com, http://blog.sina.com.cn/grouplearning 教 PART 6: 安装MF 鉴于 MF 自 2007 年之后不再更新,所有代码已整合进 MixiM。因此无需再独立安装 MF。 PART 7: 安装Castalia 声明:本安装指南参考了Castalia Installation 程,可从如下网址下载 (http://castalia.npc.nicta.com.au/documentation.php) 前提:安装 omnet4.0 或更高版本。本指南是安装了 omnet4.1 版本。 指南: 1、 下载Castalia3.0(http://castalia.npc.nicta.com.au/download.php)到工作目录(比 如,wsn); 2、 打开命令窗口 3、 进入工作路径,比如,cd wsn 4、 解压缩:$ tar –xvzf Castalia-3.0.tar.gz 5、 解压缩后会生成一个 Castalia-3.0 目录 6、 进入 Castalia-3.0 目录:$ cd Castalia-3.0 7、 Build Castalia: a. $ ./makemake b. $ make 8、 等待若干时间,结束即成功安装完毕。 9、 Enjoy it! 提醒: 1、 不要尝试通过 IDE 模式 Import Castalia,因为它不是以工程模式创建。目前根据我的经 验,仅能在 CMDENV 模式(命令窗口模式)下运行。 2、 深入学习,参考Castalia手册(下载地址http://castalia.npc.nicta.com.au/documentation.php)
还剩22页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 4 人已下载

下载pdf

pdf贡献者

水灵蓝齐

贡献于2011-12-21

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf