分布函数集
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()获取与调用进程当前中断相关联的流索引
中断属性:
分组函数集(包相关
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()等待时间