Как подключить динамический модуль к статическому модулю в OMNet++

У меня есть проект по вычислению облаков, и я использую Omnet++. Я пытаюсь создать случайное количество динамических модулей для представления виртуальных машин. Теперь я могу это сделать, но не могу подключить новый динамический модуль к статическому модулю, представляющему ядро ​​виртуальных машин. В руководстве пользователя OMNet++ объясняется, как подключить динамический модуль к другому динамическому модулю, но не динамический к статическому.

Может ли кто-нибудь помочь, пожалуйста?


person user2414110    schedule 24.05.2013    source источник
comment
Сегодня у меня такая же проблема. Вы решили это?   -  person SagittariusA    schedule 06.02.2014


Ответы (1)


Я создал динамический модуль и подключил его к статическому модулю, используя этот код:

void Txc::initialize()
{
    if(strcmp( getName(), "txc" ) ==0){
        index =0;
        cModuleType *moduleType = cModuleType::get("createmoduledynamically.Txc");
        cModule *module = moduleType->create("node", getParentModule(), 10 , index);//createScheduleInit()

        module->setGateSize("in", 2);
        module->setGateSize("out", 2);

        gate("out",0)->connectTo(module->gate("in",0));
        module->gate("out",0)->connectTo(gate("in",0));

        cMessage *msg = new cMessage("Data");
        send(msg,"out", 0);
    }
}

void Txc::handleMessage(cMessage *msg)
{
    cModule *mod = getParentModule()->getSubmodule("txc");
    Txc * txcMod = check_and_cast<Txc *>(mod);
    txcMod->index++;
    if(txcMod->index<10){
        cModuleType *moduleType = cModuleType::get("createmoduledynamically.Txc");
        cModule *module = moduleType->create("node", getParentModule(), 10 , txcMod->index);//createScheduleInit()

        module->setGateSize("in", 2);
        module->setGateSize("out", 2);

        gate("out",1)->connectTo(module->gate("in",0));
        module->gate("out",0)->connectTo(gate("in",1));

        module->callInitialize();

        send(msg, "out", 1);
    }
}

при наличии только одного модуля, созданного в статическом сетевом файле:

подмодули: txc: txc;

Надеюсь, это будет полезно.

person Mahmoud Bahnasy    schedule 23.12.2015