⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 txc7.cpp

📁 这是一个基于OMNeT++的仿真模型,编程语采用C
💻 CPP
字号:
//
// This file is part of an OMNeT++/OMNEST simulation example.
//
// Copyright (C) 2003-2005 Andras Varga
//
// This file is distributed WITHOUT ANY WARRANTY. See the file
// `license' for details on this and other legal matters.
//

#include <stdio.h>
#include <string.h>
#include <omnetpp.h>


class Tic7 : public cSimpleModule
{
  private:
    double timeout;     //define timeout
    cMessage *timeoutEvent;    

  public:
    Tic7();
    virtual ~Tic7();

  protected:
    virtual void initialize();
    virtual void handleMessage(cMessage *msg);
};

Define_Module(Tic7);

Tic7::Tic7()
{
    timeoutEvent = NULL;
}

Tic7::~Tic7()
{
    cancelAndDelete(timeoutEvent);
}

void Tic7::initialize()
{
    timeout=1.0;
	timeoutEvent = new cMessage("timeoutEvent");
    ev<<"Sending initalize message!\n";
	cMessage *msg=new cMessage("tictocMsg");
	send(msg,"out");
	scheduleAt(simTime()+timeout,timeoutEvent);
}

void Tic7::handleMessage(cMessage *msg)
{
    if (msg==timeoutEvent)
    {
        ev << "Timeout expired, resending message and restart Timer\n";
		cMessage *msg=new cMessage("tictocMsg");
        send(msg, "out");
        scheduleAt(simTime()+timeout,timeoutEvent);
    }
    else
    {
        // message arrived;
        ev<<"Timer Canceled!\n";
		cancelEvent(timeoutEvent);
		cMessage *msg=new cMessage("tictocMsg");
		send(msg,"out");
		scheduleAt(simTime()+timeout,timeoutEvent);
	}
}

class Toc7 : public cSimpleModule
{
	protected:
		virtual void handleMessage(cMessage *msg);
};

Define_Module(Toc7);
void Toc7::handleMessage(cMessage *msg)
{
		if (uniform(0,1) < 0.1)
        {
            ev << "\"Losing\" message\n";
			bubble("message lost");
            delete msg;
        }
        else
        {
            ev << "Message arrived\n";
            send(msg,"out");
        }
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -