【OMNet++】tictoc示例一

众所周知,作为一名omnet初学者应该知道一个简单的omnet project最基本的文件就是ned文件,cc文件以及ini文件。接下来,我将用一些例子讲述对其的一些认识,希望和各位交流学习。首先是ned文件,程序如下
package lingx;//声明程序包名为lingx
simple Txc
{
    parameters:
        bool sendMsgOnInit=default(false);
        @display("i=block/routing");//显示字符串指定Txc模块的图标为路由器
    gates:
        inout gate;//声明Txc模块的门为双向门
}
network TicToc
{
    //指定组成整个模型的子模块:tic和toc,这两个模块都是从Txc派生而来的
    submodules:
        tic:Txc
        {
            parameters:
                sendMsgOnInit=true;
                @display("i=,cyan;p=34,45");//此显示字符串与定义Txc模块的显示字符串合并,
                //指定tic的图标为路由器图标,颜色为红色,p标签指定其位置为(34,45)。
        }
        toc:Txc
        {
            parameters:
                sendMsgOnInit=false;
                @display("i=,green;p=109,98");//此显示字符串与定义Txc模块的显示字符串合并,
                //指定tic的图标为路由器图标,颜色为绿色,p标签指定其位置为(109,98)。
        }
        connections:
            tic.gate<-->{delay=100ms;}<-->toc.gate;//与toc通过双向门相互连接,
            //中间的信道类型为ned.DelayChannel,延迟为100ms。
}

描述的图形如下
技术分享
下面是cc文件,程序如下:

#include<Omnetpp.h>             //omnet++头文件
class Txc:public cSimpleModule  //定义Txc
{
protected:
    virtual void initialize();
    virtual void handleMessage(cMessage *msg);
};
Define_Module(Txc);         //与ned文件定义的Txc建立联系
void Txc::initialize()      //Txc的初始化函数
{
    if(par("sendMsgOnInit").boolValue()==true)//获取ned文件sendMsgOnInit的默认值
    {
        EV<<"sending initialial message!";  //显示字符串
        cMessage *msg=new cMessage("msg");
        send(msg,"gate$o");       //将消息msg从输出门发送出去
    }
}
void Txc::handleMessage(cMessage *msg)  //消息处理
{
    send(msg,"gate$o");         //将消息msg从输出门发送出去
}

最后是ini文件,如下

[General]
network =lingx.TicToc

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。