1.

在OPNET中产生随机整数的方法如下

Distribution * random_integer_dist = op_dist_load("uniform_int",lowbound,upbound);

int rn =op_dist_outcome(random_integer_dist);

说明:

1、先用函数op_dist_load产生一个特定分布:uniform_int指定该分布为均匀整数分布

lowbound 指定分布的下界

upbound 指定分布的上界

然后用Distribution * 类型的变量指向该分布

特别指出, 这样产生的分布式 包含下界和上界的。

2、再用函数 op_dist_outcome(Distribution * var) 即可取得满足要求的随机整数

(2) 包类核心函数
包的操作有三类:创建和销毁包;设置和得到包中的内容;析取包的相关信息和属性。
op_pk_create(): 创建一个无格式的包,括号中的参数指示包的大小,这个函数可以看成是根据指定的规格(容器的容积)产生一个空的容器。   
op_pk_create_fmt(): 创建一个有格式的包,这个包的规格必须在包格式编辑器( Packet Format Editor )中定义好。   
op_pk_destroy()  :销毁包
op_pk_type(): 判断包的类型
op_pk_copy(): 可以复制一个包头和内容和原始包一模一样新包, 惟一不同的是包的创建时间和包的标识号( Packet ID )。    
op_pk_stamp() :仿真核心标志创建时间为当前的仿真时间,地点为创建包的进程所对应的对象标识号( Objid )   。
调用函数  op_pk_creation_time _get() 和  op_pk_creation _mod _get() 来分别得到包的原始创建时间和地点。
OPNET   规定包传输的两种方式,分别是“发送( sending )”和“传递( delivering )”。   Sending   是通过连接模块与模块的包流( packet stream )来实现,而   delivering   不需要实际的物理连接。
对于 sending ,有下面  4  种方式:
( 1 )常用的发送方式是调用  op_pk_send() ,当包沿着输出包流到达目的模块时立即向目的模块触发流中断。整个过程没有时延,所以包到达的时刻也是包发送的时刻。
( 2 )与第一种方式相比,如果要模拟包在包流传输过程的延时,以此来仿真模块有限的处理速度, 这时可以调用  op_pk_send_delayed() 函数, 包将滞后指定的时间到达目的模块。
( 3 )前面两种传输方式对于目的模块来说是被动的,因为包的到达会强加一个流中断通知它接收。如果目的模块希望隔一定的时间间隔主动地去从输入队列中取出一个包,此时包到达引起的时间上不规则的中断显得无意义。
( 4 )考虑到目的模块的这种要求,源模块应该调用  op_pk_send_quiet() 函数,采取一种静默的方式发送包。

1、两种发送packet的方式:
一种是使用主动的,也就是A要发packet给B的时候直接用op_pk_send()(或者加上时延、forced等)。那么在B就会收到一个OPC_INITRPT_STRM中断,B响应这个流中断时就把packet取出来。
一种是被动的,就是A不主动给B发packet,因为B可能还没准备好接收。那么等B准备好接收后就通过op_strm_access()告诉A我准备好了,要packet。op_strm_access()产生一个OPC_INTRPT_ACCESS中断。A响应这个access intrpt才把packet发给B。这时候用op_pk_send_quiet()来发送,就不会给B一个strm intrpt。那么B如何知道packet什么时候到来呢?因为是B自己要求发packet的,那么它已经做好了接收packet的准备,在它响应下一个中断的时候可以用op_strm_empty()来判断是否有pacekt来了。

举个例子如下

a、源端:

if (!op_subq_empty (0))
{
/* access the first packet in the subqueue /
pkptr = op_subq_pk_remove (0, OPC_QPOS_HEAD);
/
forward it to the destination /
/
without causing a stream interrupt */
op_pk_send_quiet (pkptr, 0);
}
b、目的端:

alloc_instrms = op_strm_max_index_in ();
/* loop through each allocated stream /
for (i = 0; i <= alloc_intstrms; i++)
{
/
if an input stream is connected, and… /
if (op_strm_connected (OPC_STRM_IN, i) == OPC_TRUE)
{
/
if an input stream is connected, access a packet from the source module. /
op_strm_access (i);
/
Collect and forward the packet onto the bus, if one was obtained. */
if (op_strm_empty (i) == OPC_FALSE)
op_pk_send (op_pk_get (i), OUTSTRM_BUS);
}
}

OPNET软件使用

1.6.1、菜单栏介绍

在子网模块界面,OPNET菜单栏工具栏如图所示。

第一部分:文件操作

点击File,弹出如图1-9所示。

(1)点击New,弹出新建内容窗口,会有多种创建内容选择。点击Open和Save以及Save As同样会有不同的文件格式类型。OPNET文件、名称与功能对应如图1-10所示。


(2)点击Declare External Files,可以进行外部文件声明。

声明外部文件主要针对,在c语言函数中调用了外部函数时,需要将调用的文件声明到当前进程中,如本书末尾实例2中,引入光纤链路时,需要声明部分外部文件,才能保证光纤链路的管道模型正常运行。声明只需在相应文件名选中即可。

(3)点击Manage Model Files可实现模型文件管理。

在模型文件管理中存在如图1-12所示的快捷操作。由于OPNET在打开时会按照所包含的模型目录扫面模型文件,在模型目录外的模型是不会被OPNET识别的。所以当我们创建了新的项目时,需要将存在模型的目录使用Add Model Directories添加到OPNET的模型目录中,这样,下次启动OPNET就会自动扫描其中的文件。当然还可以通过删除模型文件,更新模型目录等操作。

对模型目录的操作,还有一种方法,在Edit菜单栏中,选择preference,在输入框中输入mod_点击Find,出现如图1-13所示结果。

点击Model Directories属性值的位置出现如图1-14所示的模型目录,在这里添加删除模型目录,调整模型目录顺序,第一个模型目录为默认打开文件对话框。

第二部分:场景操作

场景操作请参考2.2章节

第三部分:拓扑操作

拓扑操作请参照2.8章节

第四部分:DES介绍

点击DES,弹出如图1-15所示的菜单选项。

1)Choose Individual Statistics为选择自定义统计量,点击后进入统计量选择,可以选择全局统计量,节点统计量以及链路统计量。在子网模型空白处单击右键选择Choose Individual DES Statistics同样可以进入这个窗口。

2)Choose Statistics(Advanced)为高级统计量设计,点击后进入各类型的探针设计界面。如图1-16所示,其中包含了Global Statistic Probes全局统计量探针,Node Statistics Probes节点统计量探针,Link Statistic Probes链路统计量探针,Path Statistic Probe路径统计量探针,Demand Statistic Probes业务统计量探针,Attribute Probes属性探针,Automatic Animation Probes自动动画探针,Statistic Animation Probes统计量动画探针,Custom Animation Probes自定义动画探针。

3)Configure/Run Discrete Event Simulation为仿真环境配置,点击后仿真环境配置界面。参考4.1章节调试部分。

4)Configure/Run Discrete Event Simulation(Advanced)为高级仿真环境配置,参考4.1章节调试部分。

5)Run Discrete Event Simulation运行离散时间仿真,等同于在仿真配置界面点击Run按钮,运行仿真。

6)Open DES Log打开DES调试日志

7)Results查看各种结果和调试报告

8)Play 2D Animation为播放2D动画,在设置了动画探针,并在仿真输出中设置了存储动画文件时有效。

1.6.2、工具栏介绍

opnet物联网仿真-编程集锦相关推荐

  1. opnet物联网仿真2.5 陈敏 包交换网络全解----修正版

    首先我们搭建包格式 packet_format 首先这里就是一个大坑,陈敏这本书里面有明显错误,在他2006年的那本书里面,他用的是32位(4字节)的包,但是这本书里面他建议使用4位的包,这里是大错, ...

  2. 迈思德物联网网关问答集锦

    1.IP地址忘记了? 可以通过按钮重新设置为默认IP地址,单以太网网关为192.168.1.253,双以太网网关LAN1为192.168.1.253,LAN2为192.168.2.253. 可以通过串 ...

  3. 机器人弧焊焊钳型号_Delmia机器人仿真编程 第4节 创建资源库

    在Catia或者Delmia软件中我们可以创建自己的资源库,将常用的资源全部分类加载到资源库中,比如机器人底座.自定义的机器人.焊钳等等都可以分类加载到资源库中,这样在使用时就可以直接从资源库中调用, ...

  4. abb机器人焊接编程视频教程_智能制造仿真编程之带导轨的ABB机器人

    智能制造仿真编程之带导轨的ABB机器人 作为机器人四大家族之一的ABB机器人以其领先的技术和良好的质量闻名于世,在ABB机器人手册中提供了大量的可选项功能.例行程序和设备型号帮助工程师减少工作量,提升 ...

  5. 【项目工程】利用安卓手机NFC功能和KPC物联网仿真平台的智能花盆设计

    ​项目准备: KPC物联网仿真平台 局域网搭建 具有NFC功能的安卓手机 安卓开发环境Android Studio 项目流程图: 项目开发环节: 第一步,安卓APP开发 登录界面: 首先APP会检测手 ...

  6. 《安富莱嵌入式周报》第280期:支持在线仿真编程的网页版电子开发,CAN总线防攻击实现,BigFAT 规范打破了 FAT 每个文件 4GB 的限制

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  7. VS2015平面四杆机构运动仿真编程

    VS2015平面四杆机构运动仿真编程 一.软件运行界面 二. 编程步骤 1. 新建MFC应用程序,项目名取为"FourBar",在location中指定一个工作路径用于放置程序文件 ...

  8. 英文数据集txt_Delmia机器人仿真编程 点焊仿真 第1节 焊点坐标数据提取

    在进行Delmia点焊项目仿真之前,如果焊点数量较多,则可以通过宏命令将焊点数据提取出来,保存为xls或者txt格式文件,仿真项目创建完成后再将焊点数据导入使用.当然如果焊点数量较少,则可以直接在仿真 ...

  9. 物联网网络编程和web编程

    本文是基于嵌入式物联网研发project师的视觉对网络编程和web编程进行阐述. 对于专注J2EE后端服务开发的同学来说,这篇文章可能略微简单.可是网络编程和web编程对于绝大部分嵌入式物联网proj ...

  10. 物联网可编程高灵活度IoT网关或集线器是解决方案

    移动宽带网络及相关技术的不断演进对满足不断增长的连接和带宽需求来说至关重要.同样重要的是引入相应的功能和机制来通过网络创收,以维持持续投资.考虑当前已部署的业务,从营收角度来说基于 LTE 的移动宽带 ...

最新文章

  1. python知乎-学会python的好处,轻易搭建自己的知乎
  2. 哪个版本python适用于windows-何种版本的Python适合您
  3. 《那些年啊,那些事——一个程序员的奋斗史》——115
  4. ubuntu给pip换源,给conda换源
  5. 圆形取景框 相机_据说这款设备可以使老旧单反相机解决无线联机拍摄方案
  6. Leetcode 516.最长回文子序列
  7. Android抓包工具tcpdump
  8. c语言通讯录程序设计个人感言,C语言学习感悟(1)
  9. 关于RTSP在HTML5前端播放问题解决办法
  10. SVN局域网服务器搭建
  11. RPLIDAR在ROS下快速上手教程
  12. 微导管行业调研报告 - 市场现状分析与发展前景预测
  13. 机器人仿真的应用价值
  14. Weighted Boxes Fusion 源码解析
  15. 手机/笔记本电脑看电视直播
  16. 微信开发网页授权获取用户信息
  17. linux内核如何支持多核cpu,现在的多核CPU,Linux操作系统是否能够实现单个进程(多线程)的多核调度(跨CPU核心调度)?...
  18. 如何自动识别视频语音内容并生成字幕
  19. http://bbs.pediy.com/showthread.php?p=1365122
  20. 抖音运营干货:3个月4抖音号狂吸400W+粉丝

热门文章

  1. Python周刊520期
  2. 虚拟usb打印机服务器,usb打印机服务器 云盘
  3. arcgis创建城市路网
  4. SWD离线烧写器(完全开源)
  5. dx逆向建模步骤_初级反求逆向建模(一)
  6. Android将网页转为pDf,UrlToPDF 输入网址直接将网页转存为 PDF 档(Android)
  7. kafka及可视化工具offset explorer
  8. html手机表白弹窗,火热的程序员表白方式,调皮弹窗表白代码,赶紧拿去试试吧...
  9. 统计学中p值计算公式_统计学中的P值应该怎么计算
  10. 旋转式直流无刷Maxon电机与copley驱动器调试