OPNET核心函数

合集下载

OPNET中常用函数

OPNET中常用函数

OPNET中常用函数1、与调度相关:(1)Evhandle op_intrpt_schedule_self(op_sim_time()+ 仿真推进的时间T,中断码),为调用进程调度一个自中断。

通过调用它,你可以设置在何时产生一次中断,然后针对中断类型,作出相应的处理。

其中,参数time指定了中断时间,而code 是你自己定义的一个中断标识,通过这个标识可以知道当前的中断类型。

返回类型就是此中断事件的句柄。

a)你可以利用这个函数来表示一次time out。

譬如,接收机正在等待接收数据包,如果2s后仍然没有收到相应数据,于是产生一个超时中断,便可以这样用:op_intrpt_schedule_self(op_sim_time( )+2, PKT_TIMEOUT)。

如果在2s内收到了数据包,需要用op_ev_cancel(PKT_TIMEOUT)来取消中断。

b)另一种用法是表示一次处理延时。

例如,发送方需要一定的时间来产生一个数据包,在这段时间后,才能发送数据包。

比如:/* self interrupt scheduling */evh = op_intrpt_schedule_self (sch_time, 5);/* self interrupt cancelling */op_ev_cancel (evh);2、与仿真(指仿真过程)有关:(1)double op_sim_time (),获得当前的仿真时间。

.3、与事件有关:(1)Compcode op_ev_cancel(Evhandle env),取消前面已经被调度过的一个事件。

返回值:OPC_COMPCODE_SUCCESS或OPC_COMPCODE_FAILURE。

(2)Evhandle op_ev_current (),获理当前执行事件的句柄。

(3)int op_ev_type (evhandle), 获得当前执行事件的类型。

常用的type有如下所示:OPC_INTRPT_ACCESS—access interruptOPC_INTRPT_BEGSIM—begin simulation interruptOPC_INTRPT_ENDSIM—end simulation interruptOPC_INTRPT_PROCEDURE—procedure interruptOPC_INTRPT_PROCESS—process interruptOPC_INTRPT_RECOVER—node/link recovery interruptOPC_INTRPT_REGULAR—regular interruptOPC_INTRPT_REMOTE—remote interrupt)OPC_INTRPT_SELF—self interruptOPC_INTRPT_STA T—statistic interruptOPC_INTRPT_STRM—stream interrupt4、与分配/布相关:(1)double op_dist_uniform (double limit),产生[0.0-limit)的随机数。

opnet编程类核心函数(1)

opnet编程类核心函数(1)

opnet编程类核⼼函数(1)编程类核⼼函数(1)编程(Prg,Programming)类核⼼函数可以分为五个部分,它们针对不同场合的需求,⽽且基本上互相独⽴,以下分别介绍这些⼦类函数:(1)通⽤数据⽂件(General Data File)⼦类通⽤数据⽂件是以*.gdf 为后缀的ASCII 码⽂件,可以⽤来存储⽤户⾃定义的路由表、地址映射表以及进程模型配置表等,op_prg_gdf_read()⽀持对通⽤数据⽂件采⽤列表的⽅式进⾏访问。

(2)列表⼦类列表⼦类包含9 个核⼼函数,它们管理数据元素的集合。

列表有以下属性(21)列表数据元素可以是任意类型,从常⽤的整型或双精度型到复杂的⾃定义的数据结构。

(22)列表可以包含不同种类的数据元素。

(23)列表⼤⼩没有限制,可以按照需求任意添加新的元素。

(24)列表包含的异质的数据结构通过指针相连。

列表的两端分别称为表⾸和表尾,它们是封装在列表数据结构(List*)的指针。

(25)列表指针可以保存在List*型的变量中。

List*变量可以在很多地⽅定义,如进程模型的临时变量块、状态变量块、头块(全局变量),以及外部C ⽂件。

List*变量还可以写⼊包域中,这样可以将它从⼀个进程模块捎带到另⼀个进程模块中。

(26)有关列表的操作有元素的插⼊、访问和删除等。

对于排序的列表,prg_list 类函数提供查找算法将元素插⼊到合适的位置。

(27)列表属性可以是排序的或⾮排序的,因此相应地元素的插⼊有以下两种⽅法:a、op_prg_list_insert()在指定位置插⼊元素,并将列表属性更改为⾮排序的。

b、op_prg_list_insert_sorted()只针对排序的列表,将新的元素插⼊到合适的位置并保持列表属性(排序的)不变。

分配列表内存有两种⽅法,分别是动态分配和静态分配。

动态分配的列表在仿真需要时通过op_prg_list_create()创建,使⽤完可以通过op_prg_mem_free()销毁,它还有可在进程模块间移植的优点。

opnet第2章

opnet第2章
第2章 OPNET Moduler 体系结构
第2章 OPNET Moduler 体系结构
2.1 建立模型规范 2.2 建模通信机制 2.3 数据收集和仿真 2.4 数据分析
第2章 OPNET Moduler 体系结构
知识点:
模型简介 建模通信机制 数据采集和仿真 数据分析
第2章 OPNET Moduler 体系结构
本章导读:
OPNET Modeler为通信网络和分布式系统的建模及性能 评估提供了一个综合的开发环境和分析平台。OPNET软件 包由许多工具组成,每一个具体工具关注建模任务的一个具 体方面。对应于项目建模和仿真流程的三个阶段(规范说明 阶段、数据收集阶段、仿真分析阶段),这些工具也可划分 为三个主要类别:规范说明工具、数据收集工具和仿真分析 工具。
第2章 OPNET Moduler 体系结构
图2-5 外部系统编辑器
第2章 OPNET Moduler 体系结构
图2-6 需求编辑器
第2章 OPNET Moduler 体系结构
6. 路径编辑器
路径用来定义业务流量和数据路由,用户使用路径编辑 器(如图2-7所示)可创建新的路径对象。任何使用逻辑连接或 虚电路连接的协议,如MPLS、ATM、帧中继等,都可以使 用路径对象来定义路由和业务流流量。 7. 链路模型编辑器 链路模型编辑器(如图2-8所示)用于创建、编辑和查看链 路模型。用户创建的每种新链路都可以具有不同的属性和接 口。同时,用户还可以向新创建的链路模型添加注解和关键 字,以使其更容易识别和使用。
第2章 OPNET Moduler 体系结构
2.1.2 建模域
在OPNET中,网络、节点、进程和外部系统建模环境 横跨了一个模型的所有层次,有时统称为建模域。主要的模 型规范编辑器有其对应的建模域,一个建模域拥有它的建模 焦点,即建模的主要任务。表2-1中列举了OPNET软件中的 四种建模域以及对应的模型规范编辑器。

OPNET模型自定义方法与实现

OPNET模型自定义方法与实现

OPNET模型自定义方法与实现作者:李萍来源:《电脑知识与技术》2018年第19期可以完成大多数情况下的仿真任务,但是在特殊领域没有现成模型应用情况下,必须应用OPNET核心函数自定义模型,完成仿真任务。

在包结构定义、链路定义和节点定义完整流程的基础上,实现网络构建,完成仿真,加快网络协议研究进程。

关键词:OPNET;网络;仿真;模型;核心函数中图分类号:TP399 文献标识码:A 文章编号:1009-3044(2018)19-0255-02Abstract:OPNET is a kind of Network simulation software that is often used to simulate the network protocol. we can complete the most simulation tasks with OPNET. However, in some special fields without any ready-made models, it is necessary to use the OPNET core function to custom model for the simulation task. On the basis of the definition of packet format, link model node model and the corresponding process to the node, we can complete the network construction and the simulation tasks, so the proto col’s R&D process becomes shorter.Key words: OPNET; network; simulation; model; kernel functionOPNET是一款比较成熟的网络仿真软件,集成几乎所有的目前成熟应用的系统模型,因此,普通仿真需求,使用软件自带模型库可以完全满足[1][2],但是,在一些特殊场合,比如SCPS-TP、新协议验证等领域,需要自定义包格式、链路模型、节点模型,构建网络,实现仿真,达到改进设计的目的。

常用核心函数库

常用核心函数库

OPNET 核心函数集(目录)包函数集: (2)统计量函数集 (4)中断处理函数集 (5)ICI接口控制信息函数集 (6)鉴定函数集 (7)拓扑函数集 (7)内部模型访问函数集 (9)分布函数集 (10)进程函数集 (11)事件函数集 (12)仿真函数集 (12)包函数集1op_pk_create_fmt ()作用:创建一个具有预定义的特定的包格式的包。

指向新创建的包的一个指针。

如果发生可恢复的错误,返回OPC_NIL符号常量。

2op_pk_copy ()作用:创建指定包的新复制包。

语法:op_pk_copy (pkptr)返回值:Packet*指向新复制的包的指针。

3op_pk_destroy()作用:销毁指定的包,并释放其内存资源。

4op_pk_get()作用:获取到达输入包流的包的指针,并将其从流中移除。

语法:op_pk_get (instrm_index)返回值:Packet*指向从输入包流中移除的包(也就是获取的包)的指针。

如果流中无包,返回OPC_NIL。

可以首先通过函数op_strm_empty()来确定流中是否有包存在。

5op_pk_send()作用:将指定的包发送到输出包流中去;基于当前仿真时间安排包到达某个目的模块的时间;并释放调用进程对包的所有权。

语法:op_pk_send (pkptr, outstrm_index)6op_pk_send_delayed()作用:将指定包发送到输出包流中去;基于一段延时的仿真时间后,安排包到达目的模块的时间;并释放调用对包的所有权。

语法:op_pk_send_delayed (pkptr, outstrm_index, delay)7op_pk_nfd_set()作用:给指定包的某个字段赋值,该字段由其名称确定,所赋的值只能是int,double和包字段三种。

(封装)语法:op_pk_nfd_set (pkptr, fd_name, value)返回值:Compcode如果指定字段成功赋予新值,返回完成代码。

网络仿真软件OPNET基础介绍

网络仿真软件OPNET基础介绍

网络仿真软件OPNET1.1 OPNET仿真软件概述OPNET公司是全球领先的决策支持工具提供商,总部在美国华盛顿特区,主要面向网络领域的专业人士,为网络专业人士提供基于软件方面的预测解决方案。

OPNET公司最早是由麻省理工学院(MIT)信息决策实验室受美国军方委托而成立的。

1987年OPNET公司发布了第1个商业化的网络仿真软件,提供了具有重要意义的网络性能优化工具,使得具有预测性的网络性能管理和仿真成为可能。

1987年以来,OPNET迅速而稳步地发展,作为高科技网络规划、仿真及分析工具,OPNET在通信、国防及计算机网络领域已经被广泛认可和采用。

成千上万的组织使用OPNET软件来优化网络性能、最大限度地提高通信网络和应用的可用性。

至今OPNET已经升级到了11.5以上版本。

它的产品线除了Modeler 外,还包括ITGuru、SP Guru、OPNET Development Kit 和WDM Guru等。

OPNET的产品主要针对网络服务提供商、网络设备制造商和一般企业这3类客户。

OPNET目前在全球有超过5000个客户,在全美设立了4个办事处,分别在加州、德州、北卡罗来纳州及马萨诸塞州,另外,OPNET也在全球设立了4个办事处,分别为法国的巴黎、英国的剑桥、澳大利亚的悉尼以及比利时的根特。

新加坡经纬线科技公司是OPNET产品在亚洲地区的总代理。

OPNET的全球部分电信级运营商客户,如AT&T、NTT DoCoMo、France Telecom等,这部分客户相对于中型企业,具有更复杂的网络结构和协议配置,因此管理起来更复杂。

OPNET利用高网络智能来辅助运营商的网管人员管理网络,同时OPNET 具有很好的开放性和互联性,可以和当前很多流行的网络管理和监控软件一起协同工作,如HP公司的OpnetView、Tivoli公司的NetView、Cisco的Netflow以及Angilent公司的NetMetrix等。

OPNET基础入门

OPNET基础入门

OPNET基础入门1.从协议间关系看,节点模块建模完全符合OSI 标准,业务层->TCP 层->IP 层->IP 封装层->ARP 层->MAC层->物理层2.从网络物件层次关系看,提供了三层建模机制,最底层为进程模型,以状态机来描述协议;其次为节点模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。

三层模型和实际的协议、设备、网络完全对应,全面反映了网络的相关特性。

3.在进程层次模拟单个对象(模块)的行为,在节点层次中将其(模块)互连成设备(节点),在网络层次中将这些设备互连组成网络。

4.使用Modeler 仿真可以大体分成6 个步骤:配置网络拓扑(Topology->Rapid Configuration)、配置业务、收集统计量(对象统计量和全局统计量)、运行仿真并查看结果(设置repositories属性Edit->Preferences)、调试模块再次仿真、最后发布结果和拓扑报告。

5.在任何打开OPNET 时候,最高层次永远为一个工程,每个场景代表网络模块,一个工程就是一组仿真环境,一个场景就是其中的一个具体网络仿真环境配置方案(如网络拓扑、协议、流量等)。

6.工程编辑器最开始用来新建一个工程,指定工程名字和第一个场景名字后,网络配置小精灵(StartupWizard)就出来了。

可以选择手动建立网络,或者可以从特殊格式文件导入。

之后设定网络的范围,同时也可以指定度量单位,可以是经纬度、米、公里、英尺、英里等。

接着选择常用的模板家族(Model Family),把它们包含(include)进去后,它们作为构建网络的候选组件。

7.可以设置背景的显示分辨率(Resolution:pixels/degree)和背景网格的解析率(Division)。

View->Background->Set Properties8.在背景中,也可以引进OPNET 自带的地图。

OPNET代码

OPNET代码

Process状态机的输入输出编程代码:packet=op_pk_get(in_index);op_pk_send(out_index,packet);编程的宏定义#define STRM_WTX 1#define STRM_WRX 1#define STRM_GEN 2#define STRM_SINK 2发送Packet=op_pk_get(STRM_GEN);op_pk_send(STRM_WTX,Packet);接收Packet=op_pk_get(STRM_WRX);op_pk_send(STRM_SINK,Packet);状态机编程环境OPNET的Process模块AMacOPNET的报文发生器模块(Gen)OPNET的报文销毁模块(Sink)Gen按设定参数产生报文,递交到AMac上AMac将报文送到WTx模块,在那儿送上无线信道1.HB:头文件状态机接口定义,如#define STRM_WTX 1#define STRM_GEN 2状态机转移事件定义,如#define PKT_ARVL(op_pk_type()==xxx)产生了报文(PKT_ARVL),PKT_ARVL事件,用pkt_send()函数处理#define PKT_RCVD(op_pk_type()==yyy) 收到了报文(PKT_RCVD),PKT_RCVD事件,用pkt_recv()函数处理函数原型定义,如Void pkt_send(void);数据结构定义2.SV:状态机全局变量定义状态机所有函数可直接使用的变量定义,如int Total_Send_counter;int Total_Recv_counter;3.FB:状态及功能函数各种功能函数体,如Void pkt_send(void){………}仿真过程中属性值设定和获取:op_ima_obj_attr_set()op_ima_obj_attr_get()优先级设定:op_intrpt_priority _set()事件分类:1、自中断事件:对应于计时器和时延行为op_intrpt_schedule_self(),成为自中断是因为此类事件被某个进程调度后又回到这个进程,即源和目的模块是同一模块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OPNET Modeler核心函数1. 核心函数简介1.1 命名规则OPNET中的核心函数具有非常标准的命名规则,以增强函数在C/C++代码中的可视性,避免名称与非OPNET函或变量冲突。

以下列出了一些简单的命名规则:●名称均采用op_作为前缀,以标识其为OPNET仿真核提供的核心函数。

●函数名的第二部分为函数集名,用小写字母表示,通常是函数所处理对象的名称缩写,如pk、ici、stat等。

●函数名的第三部分是子函数集名,对核心函数进一步进行了分类,如核心函数op_pk_nfd_set()中的nfd。

●核心函数主要用于对对象的操作。

在函数名中,对象总是出现在动作之前,比如名称中的attr_set和subq_flush就将对象(attribute和subqueue)放在动作(set和flush)之前。

1.2 参数类型大部分核心函数的参数和返回值都是标准的C/C++数据类型,如int、double、char*。

除此之外,在仿真数据结构中还通过C/C++的typedef语句定义了许多参数和返回值作为特殊的OPNET数据类型。

尽管用户通过核心函数来操作OPNET数据类型,可能对每个数据类型的基本容都越来越熟悉,但用户并不需要关心数据类型确切的部结构,因为OPNET仿真数据结构的容因软件版本的不同而有所改变。

表1-1列举了部分特殊的数据类型。

1. Animation Entity动画集由操作中特定动画实体的ID号表示。

之所以采用ID号来代替中的指针,是因为对于动画观察函数op_vuanim,ID号通信超过了了仿真围。

尽管ID号只是存储在规则的C/C++整型变量中的简单整数值,但OPNET也声明了特定的数据类型来准确标记ID参数和变量。

三种基于ID号的动画实体包括浏览器(Viewer)、宏(Macro)和图画(Drawing)。

2. Boolean核心函数通过返回布尔值来表示结果是否正确。

布尔值可与符号常量OPC_TRUE和OPC_FALSE进行比较。

3. Compcode核心函数通过返回Compcode值来表示操作是否正确完成。

Compcode的值可与符号常量OPC_COMPCOED_SUCCESS和OPC_COMPCOED_FAILURE进行比较。

4. DistributionDistribution是一种与概率密度函数(PDF)一致的数据结构,它描述了随机数到特定数字输出的映射。

Distribution包含一对映射进行编码的数字表,指出完成该映射的算法。

对于基于表格的Distribution,数据从PDF编辑器的PDF模型文件中读入。

这些结构均由Dist函数集中核心函数操作。

5. Event Handle事件句柄是惟一一种确定未决仿真事件(中断)的数据结构。

该结构主要在Intrpt核心函数集中使用,因此可通过它们处理预设的中断。

注意,事件句柄是一种数据结构,而不是整型或指针。

因此不能把它存储在整型或指针变量中。

6. Statistic Handle统计量句柄是一种确定动态产生的全局和局部统计量的数据结构。

统计量句柄的数据类型为Stathandle,获得盲文句柄的惟一方法是通过核心函数的Stat函数集来注册统计量。

注册统计量时将为其指定一个惟一的名称,并和时间一起存储在一个输出矢量中。

局部统计量用在特定处理器或队列中;全局统计量由仿真模型中的实体共享,每个实体分布式地作用于输出矢量。

7. ICIICI(Interface Control Information,接口控制信息)是与仿真中断相关的结构化数据的集合用于进程间通信机制,传输分层协议接口的控制信息。

ICI由Ici函数集中的杧函数操作。

8. ListList是存储在双向链表中的数据元素的集合。

List中的元素可按照从简单的C/C++数据类型在复杂的数据结构进行排列。

List学用于临时存储数据结构组,可包含各种不同类型的元素,但通常并不这样使用。

对List的大小没有限制,可在其任意位置插入或移除元素。

List由Prg函数集的List子函数集操作。

9. Object ID对像ID惟一地确定了一个仿真对象。

通过使用Objid数据类型声明该标识符,供Id、Ima、Topo和Pk函数集使用。

10. PacketPacket是数据封装和传输建模中的基本仿真实体。

它由Pk函数集中的核心函数操作。

11. Memory Object Type某些建模需要为其动态分配存来存储各种信息。

每个相同大小数据组成的集合记为一个池,核为每个池分配大量的数据条目以提高标准存分配器的效率。

每个汇聚池中的存对象必须通过调用核心函数op_prg_pmo_define()来创建,该函数将返回一个汇聚存对象句柄来标识池,用Pmohandle表示。

创建汇聚存对象时都为其分配了一个惟一的名称,仿真模型中的实体可以共享汇聚存对象。

12. Log Handle当在仿真调试或数据分析中创建仿真日志时,日志句柄对于每个日志项非常必要。

13. Procedure某些核心函数将C/C++函数指针作为参数,但并不声明这些参数作为指向返回整型值的函数的指针,而是定义了一种特殊的数据类型——Procedure。

14. Process Handle进程句柄是惟一一种标识仿真中活动进程的数据结构,由Pro函数集中的核心函数使用。

需注意进程免柄是数据结构,而不是整形或指针,因而不能将它们存储在整型或指针变量中。

15. Sar Buffer HandleSar缓冲句柄是惟一一种标识Sar(Segmentation & Reassembly,分段与重组)缓冲区的数据结构。

Sar缓冲区缓存包序列,并可对包进行分段和重装。

Sar缓冲区由Sar函数集中的核心函数创建,该函数返回访问新缓冲区的Sar缓冲句柄。

Sar函数集函数利用Sar缓冲名柄来处理被标识的Sar缓冲区。

与其他OPNET数据结构一样,不能将Sar缓冲句柄分配到整型或指针变量中。

16. Vartype除标准的C/C++数据类型和特殊的仿真核数据类型外,OPNET还提供了另外一种数据类型——Vartype。

Vartype数据类型可用在变量声明或类型转换语句中,它是OPNET文档中的特殊关键词,表示函数参数可以是多种可能的数据类型之一。

类型参数的传递由C描述的调用函数确定,Vartype用于确定哪个函数参数可用来传递多种数据类型。

但需要注意的是,Vartype 并不像C中的varargs那样可传递多种参数,每个Vartype参数一次只能接受一个传递值。

Vartype类型的参数,可接受int、double或指向数据结构的指针。

Vartype*是Vartype 的一种变体,它可接受指向变量类型的指针。

Vartype*类型的参数可接受的值包括:指向整型的指针、指向double的指针、指向数据结构的指针,或参数用于返回filled-in值时指向数据结构指针的指针。

每个核心函数中都描述了可被Vartype或Vartype*参数接受的类型值。

具有该类型参数的部分核心函数如表1-2所示。

返回变量类型参数的部分核心函数如表1-3所示。

1.3 多线程安全无线模块允许OPNET采用多处理器进行收/发信机管道计算。

为确保并行传输的正确性和尽可能快速,五个管道阶段必须采用多线程安全核心函数。

核心函数定义了三个多线程安全级别,分别是MT-safe、MT-unsafe和Forced serialization。

(1)MT-safe:该类核心函数已手动进行重编码以支持多线程。

多个线程可安全地并行执行该类核心函数。

(2)MT-unsafe:在该安全级别下,若在核心函数中采用并行处理,将导致性能的下降,达不到预期的结果。

使用MT-unsafe核心函数时,应当执行适当的代码序列化(Serialization)。

(3)Forced serialization:对于所有已手动重编码以支持多线程的核心函数,仿真核采用部互斥来执行严格的序列化。

最终每个核心函数将进行手动重编码来支持多线程,它们的状态也将由Forced serialization变为MT-safe。

2. 基本核心函数OPNET Modeler10.0提供了21个核心函数集,只有熟悉核心函数才能在建模时方便地进行代码编写。

本节按照不同的功能对常用的核心函数作了详细的介绍。

2.1 部模型访问函数集Ima(Internal Model Access,部模型访问)函数集是一系列提供对仿真实体动态访问的核心函数的集合,其中仿真实体包括仿真属性、对象属性、对象命令(Object Command)和进程状态变量。

1. op_ima_obj_attr_get (objid,attr_name,value_ptr)此核心函数的作用是获取给定对象的某属性值,其参数说明如表2-1所示。

表2-1 op_ima_obj_attr_get()函数的参数说明1)返回值Compcode——如果成功获取属性值,即返回OPC_COMPCODE_SUCCESS,否则返回OPC_COMPCODE_FAILURE。

如果需要获取给定对象的复合属性值,则若复合属性相等,value_ptr的值即设为复合属性中的一个对象ID,并返回OPC_COMPCODE_SUCCESS;若不相等,则返回OPC_COMPCODE_FAILURE。

注意:在复合属性中,所谓的“相等”,是指复合属性中的所有属性都具有相同的名称、类型和值,并且复合忏悔的所有子对象也相等。

2)详解对于网络域对象(子网、节点和链路)、节点域对象(模块)以及预先由网络、节点、进程或链路编辑器定义的复合属性,都可以获取对象属性值。

提升的属性值可以从父对象中获取。

要引用提升属性,必须为每个中间对象的属性名附加一个点分前缀。

例如,若要在节点级获取进程属性,则属性名应在包含该进程的模块名称之前。

并不是所有的对象属性都可仿真中调用该函数来获取。

比如Simulation/Access字段被标记为N/A的属性就不能通过调用op_ima_obj_attr_get()来获取。

此外,该核心函数的命令级别为Forced serialization。

3)目的该函数提供了一种在仿真中动态获取对象属性的机制。

它可用于处理器或队列确定自身或网络中其他对象的属性值。

将该函数与op_ima_obj_attr_set()结合,无需包、ICI或中断递送就可提供远程进程间的通信。

4)错误Program Abort:分段错误(由无效值指针、指针所指存不足或指向无效的attr_name地址所引起)。

Recoverable Error:对象无法识别属性名。

Recoverable Error:对象ID溢出。

Recoverable Error:对象ID指向受限对象(由受护模型中的相关对象引起)。

相关文档
最新文档