/ / Moduleがノード内にない(ノードはnedモジュールの@nodeプロパティでマークされている必要があります)

モジュールがノード内にない(ノードはnedモジュールの@nodeプロパティによってマークされなければならない) - c ++、omnet ++

私はこの問題に何日も立ち往生しています。 OMNet ++シミュレーションを実行するたびにランタイム例外が発生します。

"モジュール(cModule)CompleteScenarioIncludingGateway(id = 1)のエラー ネットワーク初期化中:モジュールはノード内にありません nedモジュールの@nodeプロパティでマークされます。 "

それが何を意味するのか、そしてそれをどのように解決するのかを知りたいのですが。

前もって感謝します。

回答:

回答№1は1

ネットワーク内のノードを表す各モジュール(例えば、ホスト、ルータ)は@nodeプロパティでマークされるべきです(INETの最近のバージョンではそれは@nodeの代わりに@networkNodeと呼ばれます)。これはINETのNodeBase.nedで行われる方法です。

module NodeBase like INetworkNode
{
parameters:
@networkNode
@display("bgb=,448");
...

@networkNodeは実際にはマーカーです。ノードの内側に配置されたモジュールは、モジュールの親チェーン内を移動して、どのモジュールが実際に存在しているホストを表しているのかを見つけることができます。たとえば、モジュールがホストの物理的な位置に関心がある場合は、モジュールチェーンの上方向に移動を開始し、毎回このモジュールに@networkNodeプロパティがあるかどうかを確認します。もしそうなら、慣例により、それは場所を検索するために使用することができる "モビリティ"という名前のサブモジュールを持つべきです。