九步入门OPNET编程
在菜单栏依次点击File-New,选择Project,然后点击OK进入Entername页面,分别输入Project Name和Scenario Name,如下图所示,单击OK进入主页面。
2.建立包格式
在菜单栏依次点击File-New,选择Packet Format,然后单击OK进入Packet Format页面,单击工具栏Create New Field图标创建包中的一个字段,可以连续放置多个字段,右键退出,如图所示。可以右键Edit Attribute设置该字段的属性,如名称、大小等。最后保存,设置数据包文件的名称,以后通过该名称使用该数据包。
3.建立同时具有发送和接收功能的节点模型
在菜单栏依次点击File-New,选择Node Model,然后单击OK进入Node Model页面,使用工具栏上的相应图标建立如图所示的模型,图中包含的图标有Create Point-to-Point Receiver、Create Packet Stream、Create Processor、Create Point-to-Point Transmitter。最后保存节点模型。
4.建立进程模型
4.1在菜单栏依次点击File-New,选择Progress Model,然后单击OK进入Progress Model页面,使用工具栏上的相应图标建立如图所示的模型,图中包含的图标有Create State、Create Transition,需要在起始状态st_0上点击set intial state这样左边会有一个黑色箭头,起初状态的颜色都是红色的,需要在状态上右击Make State Forced才能使状态变成绿色(具体原因有待确定)。
4.2右击st_2到st_4的链路,点击Edit Attribute,将属性表里的condition值改为SEND,这样箭头线会变成虚线并有文字,如图所示,点击OK。
同理,右击st_2到st_3的链路,点击Edit Attribute,将属性表里的condition值改为ARRIVAL。这里SEND和ARRIVAL是中断的名称,接下来会在头文件中定义。
4.3单击工具栏Edit Header Block图标,输入以下代码,保存。
#include
#define SEND (op_intrpt_type()==OPC_INTRPT_SELF&&op_intrpt_code()==0)
#define ARRIVAL (op_intrpt_type()==OPC_INTRPT_STRM)
4.4双击st_1上半部分,输入以下代码,保存。
op_intrpt_schedule_self(0.0,-1);
双击st_1下半部分,输入以下代码,保存。
op_intrpt_schedule_self(op_sim_time()+0.0,0);
4.5双击st_3上半部分,输入以下代码,保存。
Packet *pkptr;
pkptr=op_pk_get(op_intrpt_strm());//通过流得到数据包
op_pk_destroy(pkptr);//销毁数据包
4.6双击st_4上半部分,输入以下代码,保存。
Packet *pkptr;
pkptr=op_pk_create_fmt("packet1");
op_pk_send(pkptr,0);
op_intrpt_schedule_self(op_sim_time()+1,0);//设立自中断,获取当前仿真时间并+1表示在该包发送1s后再发送下一个包,0表示中断名称
4.7单击菜单栏Interfaces-Process Interfaces,将begsim intrpt设为enabled,单击OK保存进程模型,如图所示。
4.8单击工具栏Compile Process Model图标,编译该进程模型,如图所示,编译正确。
5.在节点模型中,右击p_0,选择Edit Attribute,将process model的值设为刚才保存的进程模型名,如图所示,单击OK,保存节点模型。
6.建立网络模型
在Project页面的工具栏里单击Open Object Palette图标,查找到刚才保存的节点模型,选择固定节点,放置在页面中,分别设置名称为send和receive,如图所示,此时并没有两个节点之间的连线。
7.建立链路模型
在菜单栏依次点击File-New,选择Link Model,然后单击OK进入Link Model页面,在Support link types中设置如下图所示。
将Attributes中的closure model、coll model、error model、ecc model、propdel model、txdel model都设置为NONE,保存。
8.在Project页面的工具栏里单击Open Object Palette图标,查找到刚才保存的链路模型,移动到页面中,连接两个节点。
9.在Project页面的工具栏里单击Configure/run图标,运行仿真,首先如图所示,在这里可以设置仿真相关参数。
在左侧点击Execution-OPNET Debugger,选中右边的方框,如图所示。
然后点击Run,进入如下图所示界面。
选中中间的Run Animations方框,点击Continue,可以看见以动画的形式显示数据包交互的过程。
点击Break暂停,在ODB中输入q,运行完仿真并结束。可以在Process标签栏中查看具体信息,如图所示。