omnet++中ticitoc1学习笔记

一、首先需要打开三个文件

1、 omnetpp.ini文件前三个例子不用看

2、.cc文件放的是具体的代码

3、.ned文件放的是网络的搭建设计

 .ned文件下方的design显示的是设计出的网络图,source是设计的代码。

二、.cc文件的解读

#include <string.h>
#include <omnetpp.h>
using namespace omnetpp;

首先是头文件,这里和c++的含义一样。

class Txc1 : public cSimpleModule
{
  protected:
    // The following redefined virtual function holds the algorithm.
    virtual void initialize() override;
    virtual void handleMessage(cMessage *msg) override;
};

接着,是设计了一个Txc1的类,这个类还继承了cSimpleModule这个类,其中cSimpleModule这个类应该是在其他文件中包含了,这里我也没看他的具体定义,大概就是一个模板。这个Txc1类中有两个保护的虚函数,一个叫initialize(初始化),一个叫handleMessage(处理消息),因为他们都加了virtual,所以在后边还需要重新定义。(C++的内容,我也是今天才看到的,哈哈哈)

Define_Module(Txc1);

这句话我也不知道啥含义,但是这十几个tictoc中都在这个位置有这么一行,先写上。

void Txc1::initialize()//这里是初始化模块
{
    if (strcmp("tic", getName()) == 0) {
        //发送的是tic则执行下边的操作
        cMessage *msg = new cMessage("tictocMsg");
        send(msg, "out");
    }
}

这里就重新定义了initialize函数,我理解它是一个初始化的版块,if里边的判断条件是说如果getname的名字是tic,就执行{}中的内容,getname是获取当前实例的名称。{}中定义了一个cMessage的指针变量msg,定义了一个消息,这个消息是一个字符串,字符创是消息的名称,通过out门发出。

void Txc1::handleMessage(cMessage *msg)
{
    send(msg, "out"); // send out the message
}

这是消息处理函数,cMessage的指针变量msg,通过out门发出。

三、ned文件的解读

simple Txc1
{
    gates://gate表示一个门,这里定义了连门,一个输出,一个输入
        input in;
        output out;
}

network Tictoc1
{
    @display("bgb=86.185326,77.27674");
    submodules:
        tic: Txc1 {
            @display("p=38.327606,63.60311");
        }
        toc: Txc1 {
            @display("p=11.601871,13.466456");
        }
    connections:
        tic.out --> {  delay = 100ms; } --> toc.in;
        tic.in <-- {  delay = 100ms; } <-- toc.out;
}

先定义了一个节点,这里gates就是门,定义了两个门,一个输出,一个输入。

network中定义网络的构成,其中@display中的所有内容都会随着你拖拽那几个模块而变动,他们表示颜色,位置,大小等等信息,无关紧要。

connections定义了他们的连接方式,tic的out门发出信息,延时100ms送到toc的in门。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值