当前位置:   article > 正文

OMNET实践总结——signal机制概述_omnet+中的statistic属性

omnet+中的statistic属性

1、引言

1.1、信号机制的用途

本节描述模拟信号,简称信号。信号是最早出现在 O M N e T + + 4.1 OMNeT++4.1 OMNeT++4.1中的一个通用概念。

应用场景

  1. 作为public模型的统计属性,而不要指定记录他们的细节以及具体实现;
  2. 运行时响应仿真模型更改的通知;
  3. 实现模块之间的发布-订阅式通信功能
    1. 当信息的生产者和消费者不了解彼此时,这是有利的,并且它们之间可能存在多对一或多对多的关系;;
  4. 用作其他的发射信息:例如作为自定义动画效果的输入
    1. 信号由组件 c o m p o n e n t s components components(模块 m o d u l e s modules modules和通道 c h a n n e l s channels channels)发出——继承自模块或者通道 c l a s s   H o s t : p u b l i c   c S i m p l e M o d u l e class \space Host : public \space cSimpleModule class Host:public cSimpleModule
    2. 信号在模块层次结构上传播到根。从根往下任何级别上,都可以使用回调方法注册侦听器 r e g i s t e r S i g n a l ( " s t a t e " ) registerSignal("state") registerSignal("state")
    3. 每当发出信号值 e m i t ( s t a t e S i g n a l , s t a t e ) emit(stateSignal, state) emit(stateSignal,state)(注册的都会接收到相关信号),将通知这些侦听器(调用它们相应的方法)。向上传播的结果是,注册在复合模块上的侦听器可以接收来自该子模块树中所有组件的信号。在系统模块注册的监听器可以接收来自整个模拟的信号。
    4. 大致调用例子源代码示例:
class Host : public cSimpleModule
{
	simsignal_t stateSignal;//设置一个信号句柄
    
    //实现部分
    stateSignal = registerSignal("state");//1.句柄初始化注册为state信号监听器,对应到名为state的信号
    emit(stateSignal, state);//2.将state的值发送给句柄
}

//ned文件中
simple Host
{
    parameters:
        @signal[state](type="long");//信号定义
    	//统计数据说明,主要其他都是一个信号发送等必要代码,这行是在信号绑定之后
    	@statistic[radioState](source="state";title="Radio state";enum="IDLE=0,TRANSMIT=1";record=vector);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

注意

  1. 通道channel的父级是包含连接的(复合)模块,包含的是连接而不是所连接门对应的所有者

  2. 信号这样一种机制,虽然不是太懂

    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/785339
推荐阅读
相关标签