tictoc3
tictoc3网络(NED)不改变
更改c++文件
#include <stdio.h>
#include <string.h>
#include <omnetpp.h>
using namespace omnetpp;
/**
* In this class we add a counter, and delete the message after ten exchanges.
*/
class Txc3 : public cSimpleModule
{
private:
int counter; // Note the counter here加入一个计数器模块
protected:
virtual void initialize() override;
virtual void handleMessage(cMessage *msg) override;
};
Define_Module(Txc3);
void Txc3::initialize()
{
// Initialize counter to ten. We'll decrement it every time and delete
// the message when it reaches zero.
counter = 10;
// The WATCH() statement below will let you examine the variable under
// Qtenv. After doing a few steps in the simulation, click either
// `tic' or `toc', and you'll find its `counter' variable and its
// current value displayed in the inspector panel (bottom left).
WATCH(counter);
if (strcmp("tic", getName()) == 0) {
EV << "Sending initial message\n";
cMessage *msg = new cMessage("tictocMsg");
send(msg, "out");
}
}
void Txc3::handleMessage(cMessage *msg)
{
// Increment counter and check value.
counter--;//每接受到一条消息计数器减一
if (counter == 0) {
// If counter is zero, delete message. If you run the model, you'll
// find that the simulation will stop at this point with the message
// "no more events".
EV << getName() << "'s counter reached zero, deleting message\n";
delete msg;
}
else {
EV << getName() << "'s counter is " << counter << ", sending back message\n";
send(msg, "out");
}
}
运行结果
我们设定的变量10 initialize() 和递减 handleMessage(), 也就是说,在每一个消息来。 后达到零,模拟 将运行的活动并终止。
可以在这个模式下看到数据的传输