Archive

Archive for January 25th, 2010

OMNet++ 中的 NED 语言学习(2)

January 25th, 2010 leeing 1 comment

本节介绍简单模块。

简单模块是在模型中活动的组件,它用关键字 simple 来定义。

simple Queue
{
	parameters:
		int capacity;
		@display("i=block/queue");
	gates:
		input in;
		output out;
}

Parameters和gates部分都是可选的,即是说如果没有parameter或gate的话就可以不写。而且parameters关键字本身也是可选的,就算参数和属性存在也可以忽略它。

NED定义不包含模块的任何操作,操作是用C++来定义的,默认情况下OMNet将查找与NED类型同名的C++类(在这里是Queue)。

可以用@class 属性直接指定C++类,类也可以包括命名空间,如下例使用了mylib::Queue

simple Queue
{
	parameters:
		int capacity;
		@class(mylib::Queue);
		@display("i=block/queue");
	gates:
		input in;
		output out;
}

如果几个模块都在相同的命名空间里,那最好用@namespace代替@class属性,例如下面的例子会自动添加命名空间mylib作为前缀:

@namespace(mylib);
simple App {
	...
}
simple Router {
	...
}
simple Queue {
	...
}

Read more…

Categories: NED, OMNeT++ Tags: