- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Tictoc示例
OMNeT++ 教程——TicToc
3.2
通过一个建模&仿真实例,介绍OMNeT++的一些通用特色。
本教程使用的Tictoc 实例,位于在OMNeT++安装目录中samples/tictoc 子目录中。但是一步步按此教程学习,你将收获颇多。
注意:
假定你的系统已经正确安装了OMNeT++。并且你熟悉C++语言及其开发过程(编辑源程序,编译,调试等)。
例子中的源程序相关调用请参考OMNeT++ API 文档。
本文及TicToc 模型改自Ahmet Sekercioglu (Monash 大学)的TicToc 教程.
目录
• 1. 两节点乒乓网络仿真
• 2. 两节点TicToc 增强模型
• 3. 真实化模型
• 4. 统计
• 5. 矢量&标量结果可视化
1. 两节点乒乓网络仿真
Setp1:两节点乒乓网络仿真
作为入门级例子,我们先仿真一个两节点(tic 和toc )简单网络。节点tic 首先产生一个包,然后将此包在两个节点间来回转发。
1. 建立tictoc 工作目录,进入此目录。
2. 建立网络拓扑文件tictoc1.ned (文本文件)
simple Txc1 //简单模块类型说明
gates:
in: in;
out: out;
endsimple
module Tictoc1 //复合模块类型说明
submodules: //字模块列表
tic: Txc1; //节点tic
toc: Txc1; //节点toc
connections: //两个节点间的连接定义
tic.out -- delay 100ms -- toc.in;
tic.in -- delay 100ms -- toc.out;
endmodule
network tictoc1 : Tictoc1 //网络定义,可见网络就是复合模块类型Tictoc1 的一个变量(实例)
endnetwork
应该注意先定义后使用原则。其含义最好从下向上倒着看:
• (network..endnetwork) 定义了一个网络tictoc1 (仿真的对象);
• (module..endmodule) 定义了一个复合模块(类型)Tictoc1,其中包含子模块tic 和 toc ,它们都是简单模块类型Txc1 的
实例。Tic 的输出门(out )连接到toc 的输入门(in),Toc 的输出门(out )连接到tic 的输入门(in),传输延迟均为
100ms;
• (simple..endsimple) 定义了一个简单模块(类型)Txc1 。
3. 简单模块(类型)是NED 描述的基本单位,其算法需要C++语言实现。简单模块(类型)Txc1 的算法实现源文件txc1.cc 如
下:
#include string.h
#include omnetpp.h
class Txc1 : public cSimpleModule //简单模块在C++源文件中表现为一个cSimpleModule 派生类。
{
protected :
virtual void initialize();
virtual void handleMessage(cMessage *msg);
};
Define_Module (Txc1); //简单模块在OMNeT++中的注册宏
void Txc1::initialize ()
{
// 仿真初始化,由节点tic 发出第一条消息
if (strcmp(tic, name ()) == 0)
{
// 创建并从输出门out发出第一条消息tictocMsg,其消息内容这里并不关心.
cMessage *msg = new cMessage (tictocMsg);
send(msg, out);
}
}
void Txc1::handleMes
文档评论(0)