当前位置: 首页 > news >正文

深圳制作网站制作公司活动营销推广方案

深圳制作网站制作公司,活动营销推广方案,东莞人才网站,做dw网站图片怎么下载地址上一篇第一弹介绍了OMNeT是什么以及如何安装OMNeT,现在来说一下如何新建一个自己的OMNeT的工程。 在 Omnet安装完成后,samples/tictoc 中有该例子的完整文件,你可以立刻运行该文件看他是怎么工作的,不过更推荐按接下来的步骤一步…
上一篇第一弹介绍了OMNeT++是什么以及如何安装OMNeT++,现在来说一下如何新建一个自己的OMNeT++的工程。

在 Omnet++安装完成后,samples/tictoc 中有该例子的完整文件,你可以立刻运行该文件看他是怎么工作的,不过更推荐按接下来的步骤一步步完成该项目的构建。

图片1

开始

模型介绍

创建一个有两个节点的网络,其中一个节点会创建一个数据包,两个节点会来回传递相同的数据包,这两个节点分别叫做 tic和toc ,接着我们会逐渐拓展这个模型,在这个过程中介绍Omnet++的特征。

构建项目

在omnetpp-6.0.3中新建一个文件夹来存储自己的工程。选择File---->New---->OMNeT++ Project…
然后选择路径到自己创建的新的文件夹

图片2
点击Next之后选择创建一个空项目

图片3

添加NED文件

选择右击Learn_1---->New---->Network Description File(NED)

图片4
然后为新建的NED文件命名,点击Next,然后选择Empty NED file

创建后,可以在 OMNeT++ IDE 的 “Editor”(编辑器)区域中编辑该文件。

OMNeT++ IDE 的 NED 编辑器有两种模式:Design 和 Source,在它们之间使用编辑器底部的选项卡可以进行切换。

  • 在“设计”模式下, 可以使用鼠标和右侧的调色板以图形方式编辑拓扑。
  • 在源模式下,NED源码可以直接编辑为文本。

在一种模式下完成的更改将立即反映在另一种模式中,因此您可以 在编辑过程中自由切换模式,并在任何模式下进行更改。

图片5
上图是已经编辑好的拓扑结构,是我搭建的一个网络模型,其源码如下:

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
{@display("bgb=162,204");submodules:tic: Txc1 {@display("p=32,163");}toc: Txc1 {@display("p=126,31");}connections:tic.out --> {  delay = 100ms; } --> toc.in;tic.in <-- {  delay = 100ms; } <-- toc.out;
}
  • 文件中的第一个块声明 Txc1作为简单的模块类型。 简单模块在NED级别上是原子的。它们也是有源成分, 他们的行为是在 C++ 中实现的。该声明还说,Txc1有一个名为 in 的输入门和一个名为 out 的输出门。

  • 第二个块 Tictoc1 声明为网络。 Tictoc1由两个子模块 tic和 toc 组装而成 ,两者都是模块 Txc1的实例。tic的输出门连接到toc的输入门,反之亦然。 双向传播延迟为 100 毫秒。

注:ned语言更详细的介绍见ned语言 ,在安装完Omnet++后再 doc文件夹下也可以找到这些文档

添加C++文件

图片6
图片7
上图中命名为Txc2.cc,是因为已经创建了Txc1.cc的文件,所以这里通过重新命名来进行演示,实际上大家在新建工程时,应该命名为Txc1.cc,因为这个.cc文件是针对简单模块Txc1的功能定义。

在新建的C++文件中输入以下代码:

#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
}

代码解读

  • 类Txc1 代表了基础模块 Txc1 ,Txc1是 Omnet++中 cSimpleModule 的子类,并且使用Define_Module() 函数宏注册到 Omnet++中 。
  • 如果忘记使用 Define_Module() 将自己新构建的模块宏注册到 Omnet++中,将会得到如下类似的报错: “Error: Class ‘Txc1’ not found – perhapsits code was not linked in, or the class wasn’t registered with Register_Class(), or inthe case of modules and channels, with Define_Module()/Define_Channel()”
  • 在Txc1中重定义了函数 initialize() 和handleMessage() ,他们从仿真内核调用 ,第一个函数仅仿真开始时调用一次,第二个函数当有一个消息到达该模块时就会进行调用。
  • 在 initialize() 函数中,创建了一个消息对象 cMessage ,并通过门 out 发送出去. 如果这个门连接到其他模块的 input门 ,仿真内核将传输这个消息到另一个模块的 handleMessage() ,根据 NED文件中的链接有100ms的传播时延。另一个模块将会将其传回,构成一个乒乓一般的传播。
  • 消息(数据包、帧、作业等)和事件(计时器、超时)都是由 OMNeT++ 中的 cMessage 对象(或其子类)表示。 发送或调度它们后,它们将保持在仿真内核的“计划事件”或“未来事件”列表中,直到时间到了,他们才会通过 handleMessage()传输到模块。
  • 注意:这个仿真没有内置停止条件,但可以在那个GUI中停止。

添加omnetpp.ini

为了运行这个仿真,我们要创建一个 omnetpp.ini文件,该文件告诉仿真程序想要仿真的网络是哪一个(NED文件可能包括多个网络),通过该文件还可以传递参数到模型中,显式的为随机数生成器指明seeds等。
图片8
该文件命名为omnetpp.ini

注:与 NED的编辑器类似,ini文件的编辑器也有两个模式,Form和Source ,前者适合配置仿真内核,后者适合输入仿真参数。

现在选择Source,输入如下代码:

[General]
network = Tictoc1

现在已经完成了第一个模型的创建,接下来准备编译和运行该模型,如下图所示:
图片9
至此,第一个工程创建成功!!!

总结

  • 通过该流程的学习,我们了解到一个模型的创建包含了三类主要文件ned 、cpp和ini

    • ned文件构建模块和网络,可以通过图形化界面或文本输入构建
    • cpp文件编程各个模块的具体功能
    • ini文件确定运行那个网络或传递参数等。
  • 除了学习到创建各个文件的用途、创建方式、命名规则等。还学习到cMessage 、initialize()函数、handleMessage()函数相关的知识。

  • 进一步学习ned语言可以通过官方文档。在cpp文件中使用 omnetpp.h头文件和 omnetpp命名空间,可以进一步学习。

下一篇将开始进行INET框架的安装以及无线网络模型的搭建!

http://www.khdw.cn/news/55157.html

相关文章:

  • 赣榆网站制作大数据比较好的培训机构
  • 哈尔滨做公司网站的公司有哪些怎么做网站关键词优化
  • 网站手机端怎么做新媒体运营培训学校
  • 少女bilibili视频网站页面优化方法
  • 私服网站空间武汉疫情最新情况
  • 网站建设业务员主要工作百度官方下载
  • 佛山建设局官方网站百度官网下载安装
  • 搜狗推广做网站要钱吗郑州seo联系搜点网络效果好
  • 数据资源网站如何做培训机构排名全国十大教育机构排名
  • 深圳有哪些公司比较可靠成都seo整站
  • 网站qq线客服咋做站长统计网站
  • 外贸做独立网站怎么样百度搜索引擎的功能
  • 哪里有做网站网上永久视频会员是真的吗
  • 农产品网站开发技术方案与设施惠州seo计费
  • 标准网站建设公司网络营销方式哪些
  • 湖南网站建设有限公司谷歌广告平台
  • 房地产行业网站开发百度搜索引擎下载免费
  • 做网站运营有前途吗站长工具 seo查询
  • 纯css做的响应式网站福建搜索引擎优化
  • 响应式手机网站个人网站该怎么打广告
  • 阜新建设工程信息网站广州seo网站优化培训
  • 2022永久免费客服系统南京seo网络推广
  • 社区网站推广方案app推广30元一单平台
  • 常见的网站盈利方式网站的建设流程
  • 平台网站是什么百度推广助手手机版
  • 怎么做化妆品网站内容规划免费域名 网站
  • 网站开发项目的简介2024免费网站推广大全
  • 南宁手机网站建设网络营销产品
  • 网站的前台后台自己怎么免费做网站
  • 单页网站怎么优化营销推广活动策划