概述
1、概述
NED(Network Description)网络描述语言用于描述 OMNeT++ 网络中的网络拓扑结构,使用参数、门、信道连接等来表述模块的结构及连接方式等,以 .ned 文件存储于工程项目中。一个 OMNeT++ 工程往往是多个 .ned 文件的相互嵌套组合,层次分明,组合层数不限。
2、基础语法
2.1 保留字
网络描述必须注意不能使用保留字命名.NED 语言的保留字有:
Import, channel, endchannel, simple, endsimple, module, endmodule,error, delay, datarate, const, parameters, gates, submodules, connections,gatesizes, if, for, do, endfor, network, endnetwork, nocheck, ref, ancestor,true, false, like, input, numeric, string, bool, char, xml, xmldoc
2.2 标识符
模块名,子模块名,信道,网络,参数,网关,信道属性和函数都是标识符,类似其它编程语言,需要满足以下书写规则:
- 大小写敏感
- 仅能由大小写英文字母、数字、下划线组成
- 可由字母或下划线开头,若需以数字开头,在前面加下划线,如_3GPP
- 如标识符由几个单词组合而成,每个单词开头字母需要大写;模块、信道、网络名以大写字母开头;子模块、参数、门等以小写字母开头
2.3 注释
与 C 语言类似,注释以 “//” 开头延续到该行结尾,可以加到 NED 文件的任意位置。
3、NED组件定义
.ned 文件定义了组件的结构,包含以下几部分:
- 导入命令
- 模块类型(简单模块、复合模块、系统模块)定义
- 信道类型(有线连接、无线连接)定义
- 网络( OMNeT++ 中最大的结构)定义
3.1 模块定义
通常,模块通过声明门和参数来定义。
简单模块定义:
simple SimpleModuleName
{
parameters:
gates:
}
复合模块定义:
module CompoundModuleName
{
parameters:
gates:
submodules:
// 复合模块的子模块
connections:
// 子模块之间的连接
}
模块向量定义
submodules:
//子模块继承已定义的简单模块
SubmoduleName1[ num ]:
SimpleModuleName;
SubmoduleName2[ num ]:
SimpleModuleName;
...
创建一个子模块数组,num 为定义的子模块数量。
3.2 参数
模块的参数值可以在 .ned 文件中写入,也可以在 omnetpp.ini 中进行配置。通常参数名以小写字母开头,
3.3 门
门是模块间连接的起始点,OMNeT++ 支持单向连接,因此可分为输入门和输出门。消息由输出门发送,由输入门接收。通常,门的名称以小写字母开头。如果需要定义多个相同的门,可以使用门向量,类似于数组的定义,一个门向量包含多个相同的单一门。
单一门:
gates:
input in;
output out;
门向量:
gates:
output toPhysicalProcess[3];
input fromPhysicalProcess[3];
在使用门向量时,[ ] 内的值表示门的个数,以上述定义为例,门的编号为 0,1,2,类似于数组的定义规则。
3.4 连接
门与门之间通过连接相连。
最后
以上就是诚心路灯为你收集整理的OMNeT++ & SUMO 学习记录(四)NED语言基础知识的全部内容,希望文章能够帮你解决OMNeT++ & SUMO 学习记录(四)NED语言基础知识所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复