如何使用C 中的Omnet 中的Cmodule获取Csimplemodule

how to get a cSimpleModule from cModule in OMNet++ with C++?

本文关键字:中的 获取 Csimplemodule Cmodule Omnet 何使用      更新时间:2023-10-16

i具有一个复合模块包含简单模块(r = receiver_1 receviver_2),我的网络包含2个模块(r r1),它们两个都是相同的(类R),我想访问带有C 的两个简单模块,我尝试使用:

cModule *test = getModuleByPath("Network.R");
cSimpleModule *test1 = test->getSubmodule("receiver_2", 6);

但是自然而然地,我有一个错误告诉我,第二行中的"从'cmodule*'到'csimplemodule*'的转换无效。那么如何访问cmodule的csimplemodule呢?请帮助我。

方法getSubmodule()将指针返回到cModule对象,因此您应该使用check_and_cast将结果投入到cSimpleModule的指针中:

cModule *test = getModuleByPath("Network.R");
cSimpleModule *test1 = check_and_cast<cSimpleModule *> (test->getSubmodule("receiver_2"));

此外,getSubmodule()中的第二个参数仅在复合模块包含subsodules的 vector 时才使用。基于您的描述,没有向量,所以我建议省略此论点。