OMNet++仿真基础
OMNet++是面向对象的离散事件模拟工具,为基于进程式和事件驱动两种方式的仿真提供了支持。
OMNet++采用了混合式的建模方式,同时使用了OMNet++特有的ned(NEtwork Discription)语言和C++进行建模。
在ned中,主要的实体是模块(module)。模块分为两种,一种是普通模块(simple);一种为复合模块(compound)。模块有gates,模块之间通过门(gates)进行消息(message)传输。
下面是一个simple模块的实例:
simple Acceptor
gates:
in: in;
out: out;
endsimple
gates:
in: in;
out: out;
endsimple
Acceptor包括了一个输出gate和一个输入gate。
而复合模块有一组模块将相互之间的gates连接而成,比如:
import "client",
"server";
"server";
module MyModel
submodules:
client1: Client;
server1: Server;
connections:
client1.out --> delay 10ms --> server1.in;
endmodule
submodules:
client1: Client;
server1: Server;
connections:
client1.out --> delay 10ms --> server1.in;
endmodule
对于simple模块来说,其行为还需要使用c++进行定义,而对于复合模块就不需要了。
ned语言还可以定义自己的message格式。在完成消息格式、ned和c++代码以后,使用
opp_nmakemake,就可以直接生成VC的makefile。如果是类unix平台,用opp_makemake即可。
opp_nmakemake,就可以直接生成VC的makefile。如果是类unix平台,用opp_makemake即可。
编译完成,得到一个可执行文件。为这个可执行文件添加一个配置文件交omnetpp.ini,就可以在任意机器上执行仿真过程,完全脱离仿真平台了。
{TriStone_Xie转载自
http://blog.xjtu.edu.cn/user1/31/archives/2005/38324.shtml}