Как получить доступ к имени подмодуля в omnet ++? - PullRequest
0 голосов
/ 07 апреля 2020

Например, я определяю модуль Образец в файле .ned следующим образом.

simple Sample
{
    parameters:
        @display(...);
    gates:
        inout InOut;
}

И затем я определяю два подмодуля следующим образом.

S1: Sample {
     @display(...);
}
S2: Sample {
     @display(...);
}

in. cc file, я определяю класс Sample следующим образом.

class Sample: public cSimpleModule
{
  protected:
    virtual void handleMessage(cMessage *msg) override;
};

Теперь, как мне получить доступ к имени подмодуля в функции handleMessage ?

Например, мне нужен следующий код.

void Sample::handleMessage(cMessage *msg)
{
    if(strcmp("S1", this->getSubModuleName()) == 0){
        ...
    }
}

1 Ответ

1 голос
/ 07 апреля 2020

Для получения имени текущего объекта (т.е. модуля, субмодуля) используйте getName(). Однако, чтобы проверить, совпадает ли имя с данной строкой, можно использовать удобный метод isName(), например:

if (isName("S1")) {
    // name is "S1"
}

Ссылка: OMNeT ++ API

...