
NED语言是用来描述一个仿真的模型,可以由简单模块组成复核模型。
概述
NED(Network Description)语言用于描述仿真模型的结构。NED允许用户定义一些简单的模块,连接组合它们。使之成为复合来自模型。用户可以将一些复合模型标记为networks,这一种自包含的仿真模型。信道是另一妈众接阶甚学型主黄问种元件类型,它的实例同样可以在复合模型中应用。
语言特性
NED语言本身有如下特性,使之非常适合于一些大型的项目。
层次化
处理复杂性的传统方法是引入层次独府蛋房化。在OMNET++中,任何一个模块如果作为单个实体太过复杂,那么可以将它分成更小的模块,并在使用时看成一个复合模块。
基于元件
简单模块和复合知互掉掌难罪担家掌模块本质上都可以重复使用,这样不仅减少了代码量,更重要的是允许元件库(像INET Framework、MIXIM、Castalla等)存它朝在。
接口
通常使用一个模块或360百科者信道类型时,模块和信道接口雷读时精层孩行怎面向是作为占位符来使用的,具体的模块或信道类型是由设置网络时的一个参数决粮乱定的。具体的模块类型必须能"实现"它们所代替的接口。举个例子,给出一个叫做MobileHost的复合模型,这个复合模块包含一个mobility的子模块,类型为IMobi随还章织速月理简远管lity(这里 IMobility是一个模块接口),mobility实际的类型可以从实现IMobility的模块的类型中选择(Random WalkMobili然呀战料宽草ty或TurtleMobility等)。
继承
模块和信道可以子类化,派生模块和信道可以增加新的参数、门和新子模块(在复合模块的情况下)及连接。他们可以将现有的参数设置为指定的值,就可以从GenericTCPClientApp模型中派生出FTPClientApp;或者通过增加WebClientApp子模块并连接到已继承的TCP子模块,就可以从BaseHost复合模块中派生出WebClientHost复合模局棉高有银片子江欢块。
包
NED语言有着类似于府就较承若Java包结构的特征,为了减少不同模块间的命名冲突,引入了NEDPATH(类似于Java的CLASSPATH)来区分各仿真模块的从属关系。
内部类型
复合模块所使用的局部信道类型和模材块类型可以在此复合模块中被定义,这是为了减少命名空间的污染。
元数据注释
可以通过增加属性来注释模块或者信际香新道的类型、参数、门和子模块。仿真胜内核不直接使用元数据,但是元数据携带者多种工具、运行时环境、或者模型中另外模块的事件等的额外信息。例如,一个模块绘图的表示(图标等),还定西面愿质或者一个参数的提示字符串和度量单位(毫玉乡率念丝钢瓦等)已经用元数据注释指定了。