-
Notifications
You must be signed in to change notification settings - Fork 5
OMNet
SpereShelde edited this page Dec 4, 2020
·
2 revisions
OMNet++基于C++(和NED),需要有一定C++基础。
按照之前的教程安装之后可以通过omnetpp
打开OMNet++。打开后如果工程目录不存在或为空会提示安装INET和Examples;INET与Veins是类似工具,本例中不涉及使用,因此两个均可以不勾选。
先跑一个非常简单的例子,可以深刻理解OMNet++中的消息传递。
官方手册非常长,一开始只需要看完前三章,第四章简略看看,主要是能读懂.ned
和omnetpp.ini
。
每个项目由一个Network和其中的多个module/sub-module组成,如图
从文件角度来说包括
- 描述拓扑结构的
.ned
文件 - 定义消息(message)的
.msg
文件 - 定义各个模组(module)具体的功能实现的多个
.cc
文件
同级module之间可以通过gate连接并传输message,连接称为connection/link
在项目中通过基于NED语法的.ned
文件来描述网络结构;而每个模块的具体功能有对应的C++文件来定义。
官方手册 第三章
记录一些细节
-
*
匹配任意不含.
的字符串;**
匹配任意字符串;..
匹配自然数;*.**
匹配至少含有一个.
的字符串 - 作用于gate的
++
操作符会自动添加gate向量。因此gate向量可以不预先指定大小(size);但是submodules中的向量必须指定大小
对于OMNet++的了解到此暂时已经足够。总结起来就是
- 创建
.ned
文件(语法是NED)定义和描述仿真网络拓扑的文件 - 通过C++文件来定义同名模块的逻辑功能
- 使用
omnetpp.ini
文件对参数进行配置 - 运行仿真。可以勾选release模式,之后如果需要debug会询问是否切换成debug模式