を読ん:omnetpp:私はNEDファイルで定義されている次のモジュールを持つモジュールパラメータ
@namespace(cbsdsim);
simple SASSim {
parameters:
@class(SASSim);
int maxCbsdsPerSas = 10;
}
私は(別のモジュールから)以下を呼び出すことで、モジュールを作成します。
cModuleType* sasSimModType = cModuleType::find("SASSim");
sasSimModType->setName("SASSim");
char* name = "SAS.1";
SASSim* sasSimMod = (SASSim*) sasSimModType->create(name,parent);
コンストラクタSASSimが呼び出されます。
ただし、omnetppは上記のコードでpar(...)を呼び出すのに不満です。私は例外と紛らわしいエラーメッセージが表示されます。
what(): (omnetpp::cModule): Object has no associated cComponentType (maybe omnetpp::cModule is not derived from cModule/cChannel?)
確かに私はthis-を追加するとき> getNumParams()コンストラクタで、私はハードのパラメータをコーディングした場合には、0を返します。初期化が正常に動作しますので、私は私が必要と仮定しますパラメータをロードするために何かをする。私はおそらく、omnetpp.iniまたは他の場所にパラメータを置くことができましたが、なぜこれがうまくいかないのか知りたいのですが。私はparamsをロードするためにcreateを呼び出す前に何かする必要がありますか?ありがとう、
私はinitialize()の後でしかパラメータを読むことができないようです。したがって、initialize()メソッドでpar()を呼び出すと、パラメータを読み取ることができます。したがって、モジュールパラメータを読み取ることに基づくゲート割り当てのような設定は、初期化後にのみ行うことができます。 – LostInTheFrequencyDomain