![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Nobuhiko | 投稿日時: 2005/11/2 10:55 |
新米 ![]() ![]() 登録日: 2005/9/26 居住地: 投稿: 10 |
pause timeについて pause timeを数字で与えることはできるんですが、random設定にする方法がわかりません。randomに設定することはできないのですか?
よろしくお願いします。 |
forum_support | 投稿日時: 2005/11/2 19:44 |
モデレータ ![]() ![]() 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: pause timeについて ご質問はMobility modelのrandom waypointモデルの
パラメータである pause time についてと思いますが あってますか? この値をランダムにすることはデフォルト設定では行えません ソースコードを修正していただくことになります。 QUALNET_HOME/mobility/mobility_waypoint.cpp 中の MOBILITY_WaypointInit関数内の 130行目 : simClock += mobilityPause; となっている箇所を変更します mobilityPause はシナリオ設定時にしていされた pause time ですが、ここに乱数値を入れてください。 また、mobilityPause の型は clocktype となっています。 mobilityPause = 1 ; とすると 時間の単位は nsec です。秒にしたい場合は mobilityPause = 1 * SECOND; としてください。msec や、そのたの単位を使いたい 場合には QUALNET_HOME/include/clock.h の マクロを参照してください ということで答えになったでしょうか? |
Nobuhiko | 投稿日時: 2005/11/6 2:55 |
新米 ![]() ![]() 登録日: 2005/9/26 居住地: 投稿: 10 |
Re: pause timeについて ご返答ありがとうございます。わからないことがあれば質問させていただくかもしれませんが、その時はよろしくお願いします。
|
Nobuhiko | 投稿日時: 2005/11/8 0:44 |
新米 ![]() ![]() 登録日: 2005/9/26 居住地: 投稿: 10 |
Re: pause timeについて 色々考えた結果、以下のような設定にしなければならないことがわかりました。設定したいのはそれぞれのnodeにおいてpause timeをランダムにしたいということです。例えばnodeAは30秒、nodeBは20秒。このようなことはできるのでしょうか?教えていただいたのは、全てのnodeにおいてpause timeが20秒または30秒といったランダム性ではないでしょうか?書き方が不適切ですいませんでした。よろしくおねがいします。
|
forum_support | 投稿日時: 2005/11/8 12:32 |
モデレータ ![]() ![]() 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: pause timeについて できると思います。
$QUALNET_HOME/mobility/mobility_waypoint.cpp 内の MOBILITY_WaypointInit 関数で、乱数のパラメータと 乱数タイプを読み込むように変更する必要があります。 以下、一様乱数でpause time を設定したい場合の例です。 まず、config ファイル中にPuaseパターンを 設定したいノード x(xはノードID)について、 [x] MOBILITY-RANDOM-WAYPOINT-POUSETYPE UNIFORM のように定義します。MOBILITY-RANDOM-WAYPOINT-POUSETYPEは ユーザー定義のタグですのでNobuhikoさんがご自由に定義してください。 これをMOBILITY_WaypointInit 関数内で IO_ReadString(nodeid,ANY_ADDRESS,nodeInput,"MOBILITY-RANDOM-WAYPOINT-PAUSETYPE", &wasFound,buf); を呼び出して取得します。 UNIFORM の場合、乱数の下限、上限が必要となると思いますので、 同様に [x] MOBILITY-RANDOM-WAYPOINT-UNIFORM-LOWER-LIMIT 10S, [x] MOBILITY-RANDOM-WAYPOINT-UNIFORM-UPPER-LIMIT 20S, といったものをconfigファイルに設定します。 これをIO_ReadString で 読み込みます。ただしパラメータの単位は 時間ですので、読み込んだ値は String->時間(clocktype型)に 変更する必要があるのでTime_ConvertToClock でclocktype型に治します。 あとはこれらのパラメータを用いて一様乱数を発生させ、 その値を関数内ローカル変数の mobilityPause に代入してあげれば よいと思いますよ。 また、pause time を一定時間とする通常のrandom-waypointモデル も使用したい場合には、 IO_ReadString(nodeid,ANY_ADDRESS,nodeInput,"MOBILITY-RANDOM-WAYPOINT-PAUSETYPE", &wasFound,buf); if (wasFound == TRUE) { 乱数パラメータの読み込み } else { 通常のrandom-waypoint のデータ読み込み } としてあげればよいと思います。 GUIでパラメータ設定を行いたい場合には下記を参照してください。 http://simweb.kke.co.jp/qualnet/forum/modules/newbb/viewtopic.php?topic_id=12&forum=2 |
Nobuhiko | 投稿日時: 2005/11/8 13:02 |
新米 ![]() ![]() 登録日: 2005/9/26 居住地: 投稿: 10 |
Re: pause timeについて ご返答ありがとうございます。非常に参考になりました。どのような乱数を使用するか検討してみます。わからないことがあれば質問させていただくかもしれませんが、その時はよろしくお願いします。
|
Nobuhiko | 投稿日時: 2005/11/8 13:54 |
新米 ![]() ![]() 登録日: 2005/9/26 居住地: 投稿: 10 |
Re: pause timeについて $QUALNET_HOME/mobility/mobility_waypoint.cpp を書き直そうと思っているんですけど、ライセンスが1つで学生で共有して使っています。そのときに$QUALNET_HOME/mobility/mobility_waypoint.cpp を書き直してしまうと、ほかの学生がmobility_waypointを使用するとデフォルトのmobility_waypointでなく改良したmobility_waypointとなってしまいますか?そのようなことが起こらないような書き換え方はありますか?よろしくおねがいします。
|
forum_support | 投稿日時: 2005/11/9 11:21 |
モデレータ ![]() ![]() 登録日: 2005/5/17 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 322 |
Re: pause timeについて 以前の投稿にも書きましたが、以下のようにすれば、MOBILITY-RANDOM-WAYPOINT-PAUSETYPEを設定していない場合には 通常の Random-waypoint として実行できると思いますよ。また、データ読み込み部だけでなく、simClock += mobilityPause としている箇所にも判定文が必要になると思います。
引用:
また、開発環境はライセンスサーバーを用いないノードロックライセンスでしょうか? それともライセンスサーバーを用いたフローティングライセンスでしょうか? 後者の場合、一般論ですが通常、ユーザー毎にQNを別々のマシンにインストールしさえすれば問題は解消できると思います。 ノードロック形式、あるいはフローティングライセンス形式にかかわらず ご使用するマシンが一台しか無い場合には、ユーザー毎にQNをインストールしていただければ問題ないと思います。 ユーザーアカウント毎にインストールする場合には、Unix系の環境であれば /home/user 以下にそれぞれQNをインストールすることをお勧めします。こうすれ ば、各ユーザー毎にソースコードを保持しますから、ご自分の環境が他のユーザー に影響することはあり得ませんよね。 Windows系であれば、同一マシン上の別々のユーザーアカウントでそれぞれ 個別にインストールすることも可能ですが、コントロールパネル->プログラム の追加と削除でアンインストールすると、最後にインストールしたQNしか 正しくアンインストールされないため、あまりお勧めできません。 対処策としては、インストーラでインストール後、ユーザー毎に$QUALNET_HOME 以下を別ディレクトリにコピーし、環境変数 PATH,LIB,QUALNET_HOMEを コピーしたディレクトリにあわせて毎回変更していただくことになるかと 思います。 これらのライセンス形式や、インストール環境に対して更にご質問がありましたら、"インストール"フォーラムへ投稿していただけるとたすかります。 |
Nobuhiko | 投稿日時: 2005/11/18 13:10 |
新米 ![]() ![]() 登録日: 2005/9/26 居住地: 投稿: 10 |
Re: pause timeについて ライセンスサーバーを用いたフローティングライセンスです。Linux環境にインストールしています。とても参考になりました。ありがとうございました。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |