Japan QualNet Community Forums Japan QualNet Community Forums
Welcome Guest 
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/17:16/20
2024/05/16:22/24

2024/03/18より397/1407
人気モジュール
No.1: フォーラム 101
No.2: QualNet概要 3
No.3: ニュース 2
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット82
No.2:Unknown OS1
No.3:Windows XP1

No.1:どっかの巡回ロボット73
No.2:Majestic-12巡回ロボット6
No.3:Google巡回ロボット3

日曜日からの合計
メイン
   Mobility Models Implementation & Development
     node->mobilityDataの更新について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
koichi
投稿日時: 2008/9/22 18:47
常連
登録日: 2007/10/24
居住地:
投稿: 52
node->mobilityDataの更新について
私はノードの配置や通信状況に応じて
各ノードが移動方向を決めるようなモビリティの
実装を試みています。

Qualnetでは
初めにシミュレーション時間内のノードの軌跡を
各ノード毎に決めて、それに沿う形で各層のプロトコルに
したがったシミュレーション結果が出る仕様になっていると
思います。

そこで、私はあるイベントが起こった時間に
その時の状況に応じて移動方向を決定する関数を埋め込み、
逐次その時間以降のノードの軌跡を上書きさせようと考えました。
そして、具体的には
routing_aodv.cpp内にMOBILITY_WaypointInit関数を修正した
関数を埋め込み、
node->mobilityData->destArray[]を書き換えたのですが、
これでは、node->mobilityData->current->positionは
上書きされず、
はじめに決めた軌跡に則っているようでした。

nodeの生成のされ方やタイミングが分からないため、
これ以上どう対処していいのか考えつかず、
困っています。

すみませんが、ご助言お願いします。

hiro
投稿日時: 2008/9/22 19:24
長老
登録日: 2005/7/16
居住地:
投稿: 452
Re: node->mobilityDataの更新について
> nodeの生成のされ方やタイミング

であれば、

./main/partition.cpp にある PARTITION_InitializeNodes 関数で、

NODE_CreateNode 関数が呼び出されています。

koichi
投稿日時: 2008/9/25 15:21
常連
登録日: 2007/10/24
居住地:
投稿: 52
Re: node->mobilityDataの更新について
返信ありがとうございます。

Node* nodeの生成のタイミングは分かったのですが
やはりnode->mobilityDataの更新のタイミングが分かりません。

*(node->currentTime)の値が更新されるときに
同時に更新されているはずだと思うのですが、
これらはどの関数で行われているか分かりますでしょうか?
ipoten
投稿日時: 2008/9/26 16:51
一人前
登録日: 2005/7/12
居住地:
投稿: 102
Re: node->mobilityDataの更新について
こんにちは

今進んでいる議論とは外れてしまうかもしれません。
koichiさんが認識されているように、
引用:
Qualnetでは
初めにシミュレーション時間内のノードの軌跡を
各ノード毎に決めて、それに沿う形で各層のプロトコルに
したがったシミュレーション結果が出る仕様になっていると
思います。
というのがQualNetのモビリティモデルの基本コンセプトだと思います。
なので、koichiさんが行いたいような、シミュレーション動作中に動的にモビリティを変更あるいは生成するためには、別のアプローチをとる必要があるのではないかと想像します。

本家SNTのフォーラムを検索してみると、このような記事が見つかります。Qualnet 4.0 - Dynamic mobility
EXTERNAL APIを使うのが正しいかどうか私には分かりませんが、API EXTERNAL_ChangeNodePosition()の処理は参考になるのではないでしょうか?
koichi
投稿日時: 2008/10/6 20:16
常連
登録日: 2007/10/24
居住地:
投稿: 52
Re: node->mobilityDataの更新について
ipotenさんありがとうございます。

EXTERNAL_ChangeNodePosition()での
*ifaceの処理は少し敷居が高く感じたので、
挙げていただいた記事を参考にまずは
MOBILITY_InsertANewEvent()を使うことを
まねてみたのですが、
実行時
Assertion (mobilityData->next->time == CLOCKTYPE_MAX) failed in file ..\addons\kernel\mobility_priva
te.cpp:455
とのエラーで止まってしまい、
この解決法が分かりません。
MOBILITY_InsertANewEvent()の呼び出し時に
このエラーが起きているのですが、
呼び出し時点での、
mobilityData->next->timeの値は変わっていないので
このAPIなしでは動作するプログラムで
このAPIを入れることで致命的なエラーになるのも
疑問です。

どなたか理由がわかりましたらご助言お願い致します。
ipoten
投稿日時: 2008/10/7 1:12
一人前
登録日: 2005/7/12
居住地:
投稿: 102
Re: node->mobilityDataの更新について
こんにちは
Assertion (mobilityData->next->time == CLOCKTYPE_MAX)
このassertionは、読んでそのまま、mobilityData->next->time == CLOCKTYPE_MAX が真であることを要求しています。
想像ですが、これはmobilityDataの最新の(末尾の)リストアイテムであることを表しているのではないでしょうか?
おそらく関数MOBILITY_InsertANewEvent()は、EXTERNAL APIからの利用を前提としていて、
"Insert"といいつつも、mobilityDataの途中ではなく常に末尾にイベントを追加するような使い方を想定しているのだと思います。

これも想像ですが、koichiさんがMOBILITY_InsertANewEvent()を呼び出すとき、
既にいくつかのモビリティイベントがスケジュールされていて、途中にイベントを挿入しようとして、
assertionに引っかかっているのではないでしょうか?
koichi
投稿日時: 2008/10/7 15:49
常連
登録日: 2007/10/24
居住地:
投稿: 52
Re: node->mobilityDataの更新について
ありがとうございます。

はい、たしかにその通りです。
私は隣接ノードからの情報を
元に移動方向を決定するようなモビリティを
作ろうとしています。
そのため、移動方向を変える周期は一定としておらず
隣接ノードから特定のメッセージを受け取った時点で
移動方向を変える、といったことを考えていたため、
常に先のモビリティイベントまでスケジュールし
それをどんどん上書きしていくような
形でMOBILITY_InsertANewEvent()
を使おうとしていました。

一度、周期的に移動先を決定するように
書き換えて試してみます。
koichi
投稿日時: 2008/10/9 9:42
常連
登録日: 2007/10/24
居住地:
投稿: 52
Re: node->mobilityDataの更新について
追加投稿失礼します。
上記のことを行う上で
シミュレーション中に定期的に
MOBILITY_InsertANewEvent()を
呼び出したいのですが、
現在不定期に呼び出される関数の中での
呼び出しを行っています。

シミュレーション中定期的に(出来れば短期間に)必ず
通るプログラムの部分があれば教えていただけますでしょうか?
penguish
投稿日時: 2008/10/9 9:55
常連
登録日: 2005/4/8
居住地:
投稿: 45
Re: node->mobilityDataの更新について
引用:

koichiさんは書きました:
シミュレーション中定期的に(出来れば短期間に)必ず
通るプログラムの部分があれば教えていただけますでしょうか?


えーっと・・・periodic なタイマーイベントを作って、そこでインプリするべきかと。

タイマーイベントの作成方法は基礎中の基礎なので programmer's guide にも書いてあると思います。
koichi
投稿日時: 2008/10/9 10:07
常連
登録日: 2007/10/24
居住地:
投稿: 52
Re: node->mobilityDataの更新について
なるほど、ありがとうございます。
勉強不足で基礎的なことを訊いてしまい申し訳ありません。

少しその方向で頑張ってみたいと思います。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT