opnet(一)常用函数

  • 分布函数集

    • op_dist_load(dist_name,dist_arg0,dist_arg1)-加载分布产生随机值流,(指数分布、均匀分布),进程初始化完成调用,返回:指向分布函数的指针

    • op_dist_outcome(dist_ptr)为具有特定分布的随机变量产生一个浮点数,返回:double,描述具有特定分布随机变量的结果

    • op_dist_uniform(limit),获取0.0-limit之间double的均匀分布的一个值

  • 进程函数集

    • op_pro_create(model_name,ptc_mem_ptr)创建进程

      • 利用共享内存和创建他的进程通信,地址必须作为ptc_mem_ptr参数传递给该函数

      • 返回pre_handle

    • op_pro_destory_options(pro_handle,options)

      • 用于销毁动态创建的进程和该进程的所有预设文件

    • op_pro_self()

      • 返回当前正在进行的进程的句柄

    • op_pro_invoke()

      • 在当前事件或者模块的上下文环境下调用进程,接收两个参数。会导致进程终端,被终端进程可以通过该函数调用其他进程。

    • op_pro_argmem_access()

      • 获取进程调用传递的参数

  • 事件函数集

    • this_event = op_ev_current() 获取当前正在执行的事件

    • next_event = op_ev_next_locol(this_event) 获取下一个本地事件

    • next_event = op_ev_next(this_event)获取当前事件的下一个事件

    • event = op_ev_seek_time(time,OPC_EVSEEK_TIME_POST)获取与输入的仿真时间最接近的那个事件的句柄

    • op_ev_cancel(event)取消该事件

    • op_ev_pending(event)验证一个事件在未来是否会调用

  • ICI接口控制信息函数集

    • 进行进程间的数据传递

    • 使用流程

      • op_ici_create()创建ICI

      • op_ici_attr_set_xxx(iciptr,attr_name,value)设置属性的函数保存信息到ICI,int32\dbl\int64\ptr

      • op_ici_install()函数绑定ICI

      • 源进程通过发送包和自中断来产生事件

      • 事件发生导致中断,被中断进程获得ICI

      • 被中断进程通过op_ici_attr_get_xxx()获取ICI信息

      • 被中断进程通过op_ici_destory()销毁进程

  • 中断函数集

    • op_intrpt_schedule_self(time,code) 为调用进程预设一个中断

    • op_intrpt_schedule_remote(time,code,mod_objid)为指定进程预设远程中断

    • op_intrpt_type()获取调用进程的当前中断属性

      • 仿真核心中断

      • 状态中断

        • 监测到op_stat_local_read()函数查询stat值,一般是在收到OPC_INTRPT_STAT中断时去查询,进行stat触发。

      • 流中断

        • op_intrpt_strm()获取与调用进程当前中断相关联的流索引

      • 中断属性:

      • opnet(一)常用函数

  • 分组函数集(包相关

    • op_pk_create_fmt(format_name)

      • 创建具有预定格式的包

    • op_pk_nfd_set(ptr,name,value)

      • 为包的相应字段赋值

    • op_pk_copy()

      • 创建一个包的副本

    • pkptr = op_pk_get(op_intrpt_strm())获取中断流中的包

    • op_pk_nfd_get(pkptr,"int_value",&i)获取指定字段的值并保存在指向的内存中

    • op_pk_destory(pkptr) 销毁包

    • op_pk_stamp()设置时间戳

    • op_pk_creation_time_get()-获取包的原始创建时间(用于计算端到端的传输和处理延时)

    • op_pk_creation_mod_get()-获取包的原始创建地点

    • op_pk_send(pkptr,outstrm_index)包沿着输出包流到达目的模块时向目的模块触发流中断,无延时

    • op_pk_send_delayed(pkptr,outstrm_index,delay)-包将滞后一些时间

    • op_pk_send_quiet()目的模块每隔一段时间从源模块

  • 队列函数

    • 针对队列模块、进程模块和无线收发机管道程序不可以使用

    • subq_index = op_intrpt_code()确定那些子队列正在被访问

    • op_subq_empty(subq_index) 检查是否为空

    • op_subq_pk_insert(subq_index,pkptr,pos_index)插入

      • OPC_QPOS_PRID\OPC_QPOS_HEAD\OPC_QPOS_TAIL

    • op_subq_pk_remove(subq_index,pos_index)移出队列

    • op_q_insert_time()插入时间

    • op_q_wait_time()等待时间

 

上一篇:二叉搜索树中最接近的值 II——lintcode901


下一篇:Python学习的路——(3)元组与if 语句