opnet14.5学习总结三

本文是OPNET14.5学习的第三部分,重点讨论了Proto-C代码的位置、变量声明、控制权转移、初始化状态的作用、强制与非强制状态的区别、条件与默认条件、帮助文档的利用、进程接口以及模块属性提升和统计量声明。通过理解这些概念,有助于深入掌握OPNET的仿真逻辑和流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opnet14.5学习总结三

看懂的问题要总结
存疑的地方要记录

计包模型的总结。

1.那些地方可以写c代码

The three primary places to use Proto-C are as follows:

• Enter Executive—code that is executed when the module moves into a state
• Exit Executive—code that is executed when the module leaves a state
• Transition Executive—code that is executed in response to a specific event

疑问:转移的过程中会执行代码,然后到达一个新的状态。紧接着执行新状态的入口代码。为什么不把新状态的入口代码放在前一个状态的转移过程中呢?出口代码何时执行?

2.那些地方可以申明变量
临时变量、状态变量、代码中的变量

You can declare variables in three places:

  • Variables declared in the temporary variables block do not retain their values between invocations of the FSM.
  • Variables declared in the state variables block retain their values from invocation to invocation.
  • Variables declared inside a state’s executive are only defined while that executive is executed.

2.控制权
仿真的控制权主要掌握在仿真核心手里。当发生中断的时候,仿真核心会将控制权交给相应的进程模型。进程模型处理完后又将控制权还给仿真核心。
这里的控制权是指对什么的控制呢?应该是系统资源,比如内存等。

3.为什么需要init状态?
计包的逻辑需要两部:

  • 一个状态等待包的来临
  • 包来临后计算包的个数

个人感觉这里只需要一个idle状态就可以。当包到达时指向自身。
当然,包来临后跳转到另一个状态也是可以。FSM的分工更加清晰。
那么何时需要init状态呢?

You also need an initialization state that sets the appropriate variables to zero.

如果init只是为了使一些程序即将用到的变量赋初始值的话,直观第一个包到达时就可以设置。
不过有些变量的初始值只需要设置一次,如果放在包达到时设置的话就会多次赋值。

4.强制状态和非强制状态
区别在于执行完入口代码是否将控制权返还给仿真核心。

An unforced (red) state is one that returns control of the simulation to the Simulation Kernel after executing its enter executives. A forced (green) state is one that does not return control, but instead immediately executes the exit executives and transitions to another state.

5.condition
condition是状态转移的条件,转移状态时不一定需要执行代码。

6.default condition

  • 仿真核心维持的时间列表是面向所有的进程模型的
  • 每一次只有一个进程模型响应
  • 其余的进程不响应,变设置为default

You may be wondering why you included a transition from idle back to itself and named that transition default. As the simulation executes, the Simulation Kernel manages a list of events to take place. As each event reaches the top (or head) of that list, it becomes an interrupt. Interrupts are often delivered to specific modules, and this occurrence is what activates the module’s process model.

7.帮助文档
提供了两个帮助文档:

  • ctrl+h 最常用的
  • ctrl+shift+h 最全面的

如何使用帮助文档?
我们不可能对所有的核心函数都熟悉,当我们觉得自己需要什么函数的时候,我们先找到大致的方向,然后进一步查找,做到有的放矢。

举例:

  1. The first task—determining the packet stream for the current interrupt—has to do with processing an interrupt. Find the section called Interrupt Processing.
  2. From the KP descriptions, you determine that op_intrpt_strm() will return the necessary information.
  3. The next two tasks, getting the packet’s pointer and using that pointer to destroy the packet, both involve packet manipulation. Look in the Packet Generation and Processing section. You can use op_pk_get() to determine the packet’s pointer, then use that return value (the pointer) to call op_pk_destroy() to destroy the packet.
    4.The final task is to write out the value of the statistic. Refer to the Statistic Recording section for information on the op_stat_write() KP.

8.Process Interfaces

  • 进程模型组成模块,模块组成节点模型。节点的属性本质上来源于进程的属性。
  • 进程相当于操作系统的底层,里面有很多变量,但是为了降低使用者的复杂度或者没必要让使用者接触那么多变量,我们可以设置其属性为hidden,这样在节点层就看不见这个属性。
  • 属性提升的层级:进程层设置属性promoted,这样模块在选择进程模型时会显示这些属性。将这些属性进一步提升promoted,这样在节点层就能看见。
  • 每一个进程模型都要设置其begsim intrpt attribute to enabled。仿真开始执行这件事也是一个中断。所有节点的所有进程都会接受这个中断,从而取得控制权。
  • 仿真核心维护的事件列表不断的发生,事件发生就是中断,中断的通信机制是广播。
  • 进程接口中设置的priority有什么用?

9.模块的属性提升
我们队模块进行属性配置时,经常会用到一个操作就是属性提升promoted
发包的函数我们可以自定义。
在进程模型中我们申明了一个统计量packet count,这个统计量可以在节点层可见,从而收集数据。

10.属性提升和申明统计量的区别
属性提升是一级一级的提升。
进程层的统计量申明在节点层直接可见。
这两者的不同本质在与属性和统计量不是一回事。属性属于输入,我们可以对其进行控制。统计量是输出,我们对属性设置后希望得到相应的统计量的变化情况。
统计量的名字有一个继承的特征。count模块使用了包计数的进程模型,包计数的进程模型中申明了统计量packet count,这样在节点层这个统计量就是count.packet count。我们可以对其重命名。
提升的属性的命名也是继承。

11.同时进行两个仿真
复制场景,设置不同的输入量,同时进行两个仿真。

tags:opnet

第1部分OPNET Modeler简介 第1章OPNET仿真概述............................................................................... 1.1网络仿真简介 1.2 OPNET简介 1.3 OPNET网络环境 1.4 OPNET编辑器简介 1.5配置一个简单的网络 1.5.1定义问题................................................................................. 1.5.2建立网络拓扑结构................................................................. 1.5.3收集统计量............................................................................. 1.5.4保存项目................................................................................. 1.5.5运行仿真................................................................................. 1.5.6查看结果................................................................................. 1.5.7复制场景并扩展网络............................................................. 1.5.8再次运行................................................................................. 1.5.9比较结果................................................................................. 第2章OPNET Modeler环境变量的设置及文件管理................................. 2.1 OPNET Modeler环境变量的设置.................................................... 2.1.1 Windows 2000下环境变量的设置........................................ 2.1.2 Unix下环境变量的设置........................................................ 2.2 OPNET常用文件格式......................................................................OPNET网络仿真–陈敏 2.3 OPNET文件管理 第2部分OPNET Modeler使用(基本篇) 第3章OPNET的通信仿真机制................................................................... 3.1离散事件仿真机制............................................................................ 3.1.1 OPNET中的事件推进机制................................................... 3.1.2同一时刻事件优先级的界定................................................. 3.2基于包的通信.................................................................................... 3.3使用接口控制信息进行通信............................................................ 3.4点对点和总线管道阶段 5章收集、查看、导出以及发布仿真结果......................................................... 5.1收集统计量........................................................................................ 5.1.1收集矢量统计量..................................................................... 5.1.2收集标量统计量..................................................................... 5.2查看和导出仿真结果........................................................................ 5.3发布仿真结果 第6章OPNET Modeler编程基础................................................................ 6.1从例程开始——创建一个包交换网络............................................ 6.1.1概述......................................................................................... 6.1.2开始建立................................................................................. 6.1.3创建新的包格式..................................................................... 6.1.4创建新的链路模型................................................................. 6.1.5创建中心交换节点模型......................................................... 6.1.6创建hub进程模型................................................................. 6.1.7创建周边节点模型................................................................. 6.1.8创建网络模型......................................................................... 6.1.9收集统计量并分析结果......................................................... 6.1.10配置仿真............................................................................... 6.1.11运行仿真............................................................................... 6.2 OPNET Modeler核心函数介绍....................................................... 6.2.1动画类核心函数..................................................................... 6.2.2分布类核心函数..................................................................... 6.2.3事件类核心函数..................................................................... 6.2.4接口控制类核心函数............................................................. 6.2.5标识类核心函数.....................................................................第1章OPNET仿真概述 6.2.6内部模型访问类核心函数..................................................... 6.2.7中断类核心函数..................................................................... 6.2.8包类核心函数......................................................................... 6.2.9进程类核心函数..................................................................... 6.2.10队列类核心函数................................................................... 6.2.11分割与组装类核心函数....................................................... 6.2.12统计类核心函数................................................................... 6.2.13队列和子队列类核心函数................................................... 6.2.14表格类核心函数................................................................... 6.2.15传输类核心函数................................................................... 6.2.16拓扑结构类核心函数........................................................... 6.2.17编程类核心函数................................................................... 6.3子进程...................................................................................... 6.3.1有关进程的几个概念............................................................. 6.3.2子进程的初始化..................................................................... 6.3.3仿真核心使用权的管理模式................................................. 6.3.4进程对仿真核心控制权获取方式的识别............................. 6.3.5进程间的内存共享机制......................................................... 6.3.6使用子进程可能出现的几种错误 第3部分OPNET Modeler使用(高级篇)186 第7章OPNET的调试................................................................................... 7.1查看OPNET日志文件 7.2使用OPNET Debugger调试..................................................... 7.2.1 ODB调试概述........................................................................ 7.2.2针对结构错误(Structural Error)的ODB调试实例 7.2.3针对逻辑错误的ODB调试实例 7.2.4针对进程模块的ODB调试................................................... 7.2.5调整ODB窗口缓存大小......................................................... 7.3 OPNET与Visual C++联合调试............................................... 7.3.1 VC的安装及环境变量的设置............................................... 7.3.2修改OPNET有关与VC联合调试的属性........................... 7.3.3仿真时OPNET与VC联合调试的步骤............................... 7.4常见错误及其说明 第8章业务建模 8.1 ON/OFF业务建模 8.2配置标准端对端业务OPNET网络仿真–陈敏 8.2.1设定应用参数 8.2.2设定业务主询 8.2.3配置服务器支持的应用 8.2.4设定客户端业务主询 8.3自定义多端业务 8.4流业务建模技巧 8.4.1针对话音和视频业务背景流的设置 8.4.2应用流背景流建模 8.4.3网络层背景流建模 8.4.4 Micro-Simulation技术 8.5链路背景业务建模 8.6混合业务建模 第9章无线信道建模..................................................................................... 9.1无线模拟简介 9.2无线移动方式 9.2.1分段移动方式 9.2.2设置向量轨迹的方式 9.2.3修改节点的位置属性 9.2.4使用移动配置器(Mobility Config) 9.3无线收发机管道建模........................................................................ 9.3.1接收主询................................................................................. 9.3.2传输时延................................................................................. 9.3.3物理可达性............................................................................. 9.3.4信道匹配................................................................................. 9.3.5发射机天线增益..................................................................... 9.3.6传播延时................................................................................. 9.3.7收信机天线增益..................................................................... 9.3.8接收功率................................................................................. 9.3.9干扰噪声功率......................................................................... 9.3.10背景噪声功率....................................................................... 9.3.11信噪比................................................................................... 9.3.12误比特率............................................................................... 9.3.13错误分布............................................................................... 9.3.14错误纠正............................................................................... 9.4加快无线仿真的速度 9.4.1采用优化的仿真核心 9.4.2在仿真中动态删减接收主询成员第1章OPNET仿真概述 9.4.3简化无线封包的复制 9.4.4动态更新接收主询 9.4.5通过无线区域划分接收主询 9.4.6过滤无关的管道阶段 9.4.7采用并行仿真 9.5创建一个移动无线网络...................................................................... 9.2.1概述......................................................................................... 9.2.2开始建立................................................................................. 9.2.3创建天线模型......................................................................... 9.2.4创建指向处理器..................................................................... 9.2.5创建节点模型......................................................................... 9.2.6创建网络模型......................................................................... 9.2.7收集统计量并运行仿真......................................................... 9.2.8查看并分析结果..................................................................... 第10章OPNET标准模块介绍..................................................................... 10.1 IEEE 802.11模块内部结构及仿真................................................. 10.1.1 IEEE 802.11无线局域网概述.............................................. 10.1.2无线局域网的协议行为建模............................................... 10.1.3 IEEE 802.11无线局域网MAC的输入接口...................... 10.1.4 IEEE 802.11无线局域网MAC的输出接口...................... 10.1.5仿真和实验........................................................................... 10.2 X.25模块介绍................................................................................. 10.2.1引言....................................................................................... 10.2.2基于X.25传输控制协议的应用会话建立流程................. 10.2.3基于X.25数据链路的建立和包交换流程......................... 10.3干扰机模型...................................................................................... 10.4 OPNET IPv6模块介绍及仿真........................................................ 13.1 ICMPv6 Route Print场景....................................................... 13.2 Manual Tunnel......................................................................... 10.5小区系统模型 10.5.1模型的导入 10.5.2模型的适用范围和限制 10.5.3模型包含的文件 10.5.4模型的属性 10.5.5模型的接口OPNET网络仿真–陈敏 第4部分OPNET Modeler的高级应用186 第11章自定义动画编程的运用................................................................... 11.1动态队列计量器...................................................................... 11.1.1设置探针属性 11.1.2动态队列计量器动画程序讲解 11.2无线包传输.............................................................................. 11.2.1设置探针属性 11.2.2无线包传输动画初始化程序 11.2.3在接收功率阶段加入动画程序 11.2.4在干扰噪声功率计算阶段加入动画程序 11.2.5在错误纠正阶段加入动画程序 第12章自定义流媒体协议的实现............................................................... 12.1 OPNET应用层建模构架........................................................ 12.2自定义的应用协议.................................................................. 12.3修改头文件“gna_mgr.h”....................................................... 12.4在应用配置进程模型中增加应用属性.................................. 第13章自定义IP协议的实现 13.1自定义IP协议接口 13.2 IP包的创建和高层数据包的封装 13.3 IP路由表初始化 13.4路由表的查找 第14章图形化建模和文本方式建模EMA................................................. 14.1 EMA配置网络模型................................................................ 14.2 EMA与外部数据的接口 14.2.1 EMA设置对象的固有属性 14.2.2 EMA设置对象的自定义属性 第15章高级体系架构(HLA)........................................................................ 15.1 RTI的安装及其环境变量设置 15.2建立控制联邦成员 15.3 OPNET HLA仿真实例 15.3.1准备所需的文件 15.3.2运行HLA仿真环境 15.3.3实现HLA交互 15.3.4多个OPNET联邦成员联机仿真 附录A本书中英文术语对照表271 附录B参考文献271第1章OPNET仿真概述 附录C关于本书存在的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值