添加gpcr

来源:互联网 发布:mysql更换引擎 编辑:程序博客网 时间:2024/05/22 03:11

//先实现不变内容的,添加一个gpsr协议实质的,gpcr选项。

1、改process model:
   另存gpsr_my_test-> gpcr_my_test;
   在manet_mgr_my_test中declarechild process,添加上这个子进程

2、改gpcr_my_test:将里面的文件中的gpsr换名为gpcr(entrance,exit,sv,gv)
   改头文件和外部文件(C:\ProgramFiles\OPNET\14.5.A\models\std\)中的gpcr
   //注意区分大小写替换
   //重名的问题!
   //注意修改sv中的数据类型,因为头文件数据类型变了

结构:gpcr.h
Node-》GpcrNode,
NodePtr-》GpcrNodePtr
neighborTableEnt -》 GpcrNeighborTableEnt
MyNode -》 GpcrMyNode;
DealingPacket -> GpcrDealingPacket;

函数名(参数类型Gpcr)前加:gpcr_ptypes.h

函数体gpcr:gpcr_support.ex.c

包格式:gpcr_pk.m

在gpcr的process model中declare一下gpcr的外部文件。

编译进程模型。


3、在manet_mgr_my_test中有gpsr的部分添加上gpcr
  改完编译有错,主要是几个关于Gpcr的宏不在这里定义。在上一层定义。

4、在ip_dispatch_my_test有gpsr的部分添加上gpcr
   FB
   ip_rte_v4.h ,ip_higher_layer_proto_reg_sup.h, ip_cmn_rte_table.h。
   ip_rte_support.h&& ip_rte_support.ex.c:编译下这个外部文件。
   编译进程模型

5、现在呢,具体里面的东西都改好了。现在就是要看看仿真的时候还缺啥了——GPCR的

tab。
   1)首先呢,我们给gpcr的local statistic 和 global statistics 改一下组group

名字:GPCR。编译该进程模型。~
    2)然后,我们在manet_station_adv_my_test 这个节点模型里:修改node

statistics:加上gpcr的数据。
    可能呢需要编译一下仿真场景。
    这个时候为神马在仿真场景的global和node里就出现了GPSR这个tab。
// 编译是出现错误:
<<< Recoverable Error>>>
Object repository construction failed
due to errors encountered by the binder program(bind_so_msvc)
T (0), EV (-), MOD (NONE)
具体下面写的是:
unresolved externals
——解决:在gpcr的process model中declare一下gpcr的外部文件。

6 然后呢就是在节点中能够选择GPCR这个协议选项卡要做的事情了。

  在manet那一级的进程模型中,添加modelattribute,加上GPCR,里面的具体Edit properties设置同AODV。(注意,先设置每个参数的Editproperties,最后统一设置Edit row和Edit Column);然后再model attribute的第一行里添加GPCR这一选项、编译后,在仿真场景里的节点-editattribute选择protocol就出现了GPCR这一项了。
 
//将这个gpcr的实质内容改过去

 

原创粉丝点击