txc7.cpp
来自「这是一个基于OMNeT++的仿真模型,编程语采用C」· C++ 代码 · 共 96 行
CPP
96 行
//
// 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 + =
减小字号Ctrl + -
显示快捷键?