2017-03-21 9 views
0

大学のプロジェクトのシミュレーションを作成する必要があります。シミュレーションでは、いくつかのモバイルノードが802.11アクセスポイントモードとステーションモードを巡回的に切り替えるようにする必要があります。ステーションモードでは、ノードはそれらの周りのアクセスポイントのSSIDを読み取る必要があり、APモードでSSIDをそれに応じて変更する必要があります。 SSIDの読み取りの横にあるノード間の接続やデータ交換は必要ありません。omnet ++ Inet - 動的アクセスポイントの動作をシミュレート

今、私はOmnet/Inetのチュートリアル/ドキュメンテーション(それらの2つすべて)を通して経験しました。 私が今使用できるのは、フレームワークの理解を確認して、どのように進めていくべきかについてのいくつかの指示を与える人です。

Inetは、私がやろうとしていることを直接的に/簡単に行う方法を実装していません。ほとんどの例は、NEDファイルで宣言された固定接続と.iniファイルで定義された固定ステータス(APまたはSTA)を持ちます。

私の質問は基本的にはどうすればよいのですか:ランタイム動作を変更するモジュール(wirelessHostなど)を拡張する必要がありますか、またはノードアプリケーションに他のノードを読み込ませるためにそれに応じてSSIDを変更しますか?そして、ホストのSSIDにアクセスする最善の方法は何ですか?

答えて

1

モバイルノードごとに2つの無線機を使用できます。 **.mobilenode[*].numRadios = 2(例:/inet/examples/wireless/multiradio/も参照してください)。

最初の無線機は、そのSSIDを適合させなければならないAP **.mobilenode[*].wlan[0].mgmtType = "Ieee80211MgmtAPSimplified"として動作します。

2番目のラジオはSTA **.mobilenode[*].wlan[1].mgmtType = "Ieee80211MgmtSTA"として機能します。ここで、SSIDのスキャン手順を処理するサブクラスIeee80211AgentSTAを作成し、新しいSSID検出時に最初の無線のSSIDを変更する必要があります。次に、採用されたサブクラスをシミュレーション内で利用します。最後にアクティブスキャンを有効にする必要があります**.mobilenode[*].wlan[1].agent.activeScan = true

+0

私はすでに2つの無線ソリューションを考え出していましたが、何らかの確認が必要です。 SSIDを変更するには、Ieee80211MgmtAPクラスのソースコードを変更する必要がありました(ssidはプライベートフィールドでした)、これを行うより良い方法があるかどうか知りましたか?私はおそらくそれをサブクラス化する必要がありますが、私は結果を怖がっています(私は特別な管理を追加するためにIeee80211APをサブクラス化しなければなりません...) – Maldus

+0

SSIDフィールドは保護されています](https://github.com/inet-framework/inet/blob/48f864cbe5ee4a6879fa7083eedb4e799a280ead/src/inet/linklayer/ieee80211/mgmt/Ieee80211MgmtAP.h#L73) – dblock

関連する問題