簡體   English   中英

如何在OMNet ++中將動態模塊連接到靜態模塊

[英]How to connect dynamic module to static module in OMNet++

我有一個關於計算雲的項目,我正在使用Omnet ++。 我試圖創建一個隨機數量的動態模塊來表示虛擬機。 我現在能夠這樣做,但我無法將新的動態模塊連接到代表虛擬機核心的靜態模塊。 OMNet ++的用戶手冊介紹了如何將動態模塊連接到另一個動態模塊,而不是動態模塊到靜態模塊。

有人可以幫忙嗎?

我創建了一個動態模塊,並使用以下代碼將其連接到靜態模塊:

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;

希望這會很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM