我是靠谱客的博主 诚心路灯,最近开发中收集的这篇文章主要介绍OMNeT++ & SUMO 学习记录(四)NED语言基础知识,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 标识符

模块名,子模块名,信道,网络,参数,网关,信道属性和函数都是标识符,类似其它编程语言,需要满足以下书写规则:

  1. 大小写敏感
  2. 仅能由大小写英文字母、数字、下划线组成
  3. 可由字母或下划线开头,若需以数字开头,在前面加下划线,如_3GPP
  4. 如标识符由几个单词组合而成,每个单词开头字母需要大写;模块、信道、网络名以大写字母开头;子模块、参数、门等以小写字母开头
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语言基础知识所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部