OPNET Basic Process Lesson

来源:互联网 发布:js上拉查看图文详情 编辑:程序博客网 时间:2024/06/04 23:34

目标:对收到的包进行统计,并写入统计量

主要学习建立过程模型和节点模型。


建立过程模型:首先建立状态转移图,过程模型就是有限状态机。包括状态和转移。状态分为强制状态和非强制状态,强制状态是指当执行完状态的入口代码后立即执行出口代码,并且转移至下一状态;非强制状态是指当执行完状态的入口代码之后,将控制转回仿真核心,等待下一次中断来临后继续执行。转移分为条件转移和无条件转移,条件转移是指当中断来临之后,要判断是否满足转移条件(逻辑判断),满足则转移到下一状态。另外在idle状态应该加一个default自转移,这样当其他中断来临时,状态可以转回自身。

注意:强制状态中的代码通常写在入口代码中。

其次,定义变量。变量包括临时变量、状态变量。状态变量是指在每次中断来临之间会储存的变量,而临时变量则不会储存。通常,会把目标统计量以及状态句柄写入状态变量表中,与后续分析有关的变量存储在状态变量中。

定义header block和function block。head block可以用来写入宏,是状态转移条件和执行代码的简化形式,通常用#define...的格式,此外还可以写入#include,struct与typedef定义和外部变量声明以及全局变量定义、函数声明。function block用来写入模型包含的函数。

注意:opnet的内建函数可以通过Help->Essential Kernel Procedures查阅使用。编程中小写的带括号是仿真核心函数,大写的不带括号是常量。

编辑process interfaces。只有编辑了process interfaces,仿真核心的中断才能进入该模型中。其中,begsim intrpt设置为enabled,可以使仿真开始时的中断进入,以便模块进行初始化。

编译模块。

建立上层节点模型。

此处注意,如果要对底层的某个属性的值设定不同值来观察仿真结果,则需要将相应的值提升至更高层。Interfaces->Node Statistics

建立网络模型。

注意:设置目标统计量Choose Individual DES Statistics。



原创粉丝点击