为什么每当我尝试 运行 我的模拟时都会收到此消息。达到模拟时间限制——在 t=10000,事件 #1

Why do I get this message whenever I try to run my simulation. Simulation time limit reached -- at t=10000, events #1

每当我尝试 运行 我在 omnet++ 中的模拟时,我都会收到消息 Simulation time limit reached -- at t=10000, events #1。我不知道是什么阻止了我的程序正常运行 运行ning。

这是我的 NED 代码:

simple rdr
{
    gates:
        input in[];
        output out[];
}

//

network radr
{
    @display("bgb=356,232");
    submodules:
        rdrchk1: rdr {
            @display("p=49,41");
        }
        rdrfail1: rdr {
            @display("p=207,146");
        }
        rdrsucess1: rdr {
            @display("p=207,48");
        }
    connections:
        rdrchk1.out++ --> {   } --> rdrfail1.in++;
        
        rdrchk1.out++ --> {   } --> rdrsucess1.in++;
        
        
}

这是我的 C++ 代码。

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

using namespace omnetpp;


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


};

// The module class needs to be registered with OMNeT++
Define_Module(rdr);

void rdr::initialize()
{
    int v1 = rand() % 100;
        int v2 = rand() % 100;
        int v3 = rand() % 100;
    if (strcmp("rdrchk1.out", getName()) == 0) {
        cMessage *msg = new cMessage("objectcheck");

     if (v1<78|| v2 < 82 || v3 <69){
                 send(msg, "rdrsucess1.in");

     }
     else{
         send(msg, "rdrfail1");

     }
    }

}

void rdr::handleMessage(cMessage *msg)
{

    send(msg, "out");
}

这是我的 ini 代码:

[General]
network = radr
cpu-time-limit = 1000s
real-time-limit = 1000s
sim-time-limit = 1000s
simtime-resolution = ps

我的程序应该在 rdrchk1 上生成一个消息,然后将它发送到 rdrfail1 或 rdrsucess1。如果有人能告诉我我错过了什么,那就太好了。谢谢你的时间。

这是阻止它的原因:sim-time-limit = 1000s

作为旁注,也删除 cpu-time-limitreal-time-limt

如果 (strcmp("rdrchk1.out", getName()) == 0).

,则从 "rdrchk1.out" 中删除 .out 允许模拟通过