opnet 学习之 process

目的:设计一个模块,能够记录它所收到的包的数量 ,然后将包数量写到统计表中。(此为opnet 文挡当中的例子,第二部分 process)

设计模块:

1,模块分3个状态 初始态 initilization 到达态 arrival ,空闲态 idle

2,做状态转移图FSM .initilization状态,arrival 状态为强迫状态,idle状态为非强迫状态。

     从idle状态转移到arrival状态的条件为 数据包packet的到达。

3,定义状态和变量

     #define ARRIVAL  (op_intrpt_type()==opc_INTRPT_STRM)

    ARRIVAL 为状态转移条件。它为真的条件为:op_intrpt_type() (中断类型)为 opc_INTRPT_STRM (流中断)

4, 定义两个状态变量(state variables)

    Type                      Name                                    Comments
     int                         pk_count                               Counts total packets
    Stathandle          pk_cnt_stathandle               Statistic to record   packet count

其中定义 pk_count 用来记录数据包的量,可以理解,可是为什么要定义 pk_cnt_stathandle 呢 ?这个变量的作用是什么 ?

5,create state executives 创建状态代码

   a ,初始状态进入代码  :

     pk_count = 0;

     //设置 数据包的统计量的初始值为 0
    pk_cnt_stathandle = op_stat_reg ("packet count",  OPC_STAT_INDEX_NONE, OPC_STAT_LOCAL);

   //这个又是干什么用的呢 ?不知道 哦

 b,arrival 状态的进入代码

   进入了arrival 状态,当然pk_count 必须自加1;destroy 掉进入的packet,先要获得使系统中断的packet stream的句柄。

         ++pk_count;  //自加1
        op_pk_destroy (op_pk_get (op_intrpt_strm ()));//得到流的句柄,销毁数据包
         op_stat_write (pk_cnt_stathandle, pk_count); //将变量写入统计表

6,编辑进程接口 edit process interface

7,实现结点和网络模型

8,运行仿真

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值