2017-11-10 7 views
0

用の個別cQueueは私がhandleMessage()で受信メッセージをキューに入れるために使用cQueue queue;、とシンプルなモジュールがあります:queue.insert(msg);Omnet ++:各入力

を今私は、入力input in[]の配列を持っている私のモジュールを拡張し、私がしたいです入力ごとに受信メッセージを別々のcQueueにキューイングします。 cQueue queue[];またはcQueue queue[gateSize("in")];を単純に初期化してから、handleMessage()msg->getArrivalGate()を使用して、正しいキューを選択すると考えました。

残念ながら、私は既に初期化のためにエラーを受け取ります:field has incomplete type。助けや提案はありますか?

+0

'omnetpp.ini'に' debug-on-errors = true'という行を追加してください。次に、シミュレーションをデバッグします。 IDEはシミュレーションの終了を引き起こすコード行を表示します。 Ref:[OMNeT ++ Manual](https://omnetpp.org/doc/omnetpp/manual/#sec:run-sim:debugging-support) –

答えて

0

明らかに、gateSize()はクラス宣言では機能しません。また、特定のサイズの配列cQueueを宣言する必要があります。したがって、私は、これらのモジュールオブジェクトのそれぞれに最大で10個の入力がある(または他の任意の数を選択する)と仮定し、固定サイズの配列を作成しました:cQueue queue[10];。 10未満の入力がある場合、キューの一部は未使用です。

これはおそらく最適な解決策ではありませんが、機能します。私はinitialize()の間にstd::vector動的にキューを追加しようとしましたが、動作しませんでした。