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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/09:8/9
2024/05/08:22/25

2024/03/10より371/1383
人気モジュール
No.1: フォーラム 88
No.2: QualNet概要 6
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット78
No.2:Linux3
No.3:Unknown OS1

No.1:どっかの巡回ロボット74
No.2:Safari3
No.3:Baidu巡回ロボット3

日曜日からの合計
メイン
   Node Placement & Mobility Settings
     移動中のノードの位置情報を得るには
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
takahikokibe
投稿日時: 2007/4/5 21:45
新米
登録日: 2006/7/27
居住地: 福島県
投稿: 6
移動中のノードの位置情報を得るには
AODVやODMRPで位置情報をメトリックにした提案を行いたいのですが、どのようにしたら、各ノード位置情報をルーティングレイヤーに反映させられるのかがわかりません。
mobilityのフォルダあたりを"Position"などをキーワード探したのですが、自分が求めている「移動した各ノードの現在位置情報(x,y,z)」がある場所見つけられませんでした。
各ノードの現在位置情報を得て、ルーティングプロトコルに反映させるにはどうしたらよいのでしょうか?
よろしくお願いします。
hed
投稿日時: 2007/4/5 22:02
一人前
登録日: 2006/7/3
居住地: 京都
投稿: 81
Re: 移動中のノードの位置情報を得るには
こんばんは

ルーティングプロトコルとは関係ないですが、私もつい最近移動中のノード位置を使いました。

引用:
各ノードの現在位置情報を得て、ルーティングプロトコルに反映させるにはどうしたらよいのでしょうか?

上記の現在位置情報は、
node->partitionData->nodePositions->mobilityData->current->position

とたどっていくと分かるようです。

参考になれば幸いです。
penguish
投稿日時: 2007/4/5 22:07
常連
登録日: 2005/4/8
居住地:
投稿: 45
Re: 移動中のノードの位置情報を得るには
ノードの位置を知りたいのであれば node 構造体から辿っていけば取得できます


double x = node->mobilityData->current->position.common.c1;
double y = node->mobilityData->current->position.common.c2;


自ノード以外の位置を知りたいのであれば、

node->partitionData->firstNode 

から、他ノードを辿っていくことが出来ると思います。

ただし、QualNet 4.0 では 複数スレッドで動作させることができますが、この場合、スレッドごとに処理するノードが決まっています。partitionData はスレッド毎に作成され、スレッドに割当てられた全ノードが登録されています。逆に当該ノードとは異なるスレッドに登録されたノードは 当該ノードの node->partitionData には登録されていないと思いますので、注意が必要です。※シングルスレッドで使えば問題ないと思いますが。

以上、ご参考まで
pyonta
投稿日時: 2007/4/5 22:23
新米
登録日: 2006/11/13
居住地:
投稿: 14
Re: 移動中のノードの位置情報を得るには
void MOBILITY_ReturnCoordinates( Node* node, Coordinates position)

というAPIを使うのがよいのではないでしょうか?

"Coordinate" でAPI Reference Guide を検索すれば、
座標の扱いに関係する他のAPIも見つけられます。

pyonta
投稿日時: 2007/4/6 2:55
新米
登録日: 2006/11/13
居住地:
投稿: 14
Re: 移動中のノードの位置情報を得るには
void MOBILITY_ReturnCoordinates( Node* node, Coordinates* position)

で、2番目の引数の型はCoordinates*でした。すみません。
単に(x,y,z)を知るなら、上記で得た position を参照すればよいと思います。

position->cartesian.x
position->cartesian.y
position->cartesian.z
takahikokibe
投稿日時: 2007/4/6 20:54
新米
登録日: 2006/7/27
居住地: 福島県
投稿: 6
Re: 移動中のノードの位置情報を得るには
ご回答ありがとうございます。皆さんの回答を参考に、いろいろ試してみようと思います。
また、わからない部分があったら質問しますのでよろしくお願いします。
koichi
投稿日時: 2008/7/8 23:14
常連
登録日: 2007/10/24
居住地:
投稿: 52
Re: 移動中のノードの位置情報を得るには
void MOBILITY_ReturnCoordinates(Node* node, Coordinates position)

についての質問なのですが
このAPIの使い方がよく分かりません。

void型ということは直接座標値を返すわけではないのだと
思うのですが、どこで必要な値を取得できるのでしょう?
2つ目の引数に指定した変数に値が上書きされるということでしょうか?

すみませんがどなたか使い方の例を示していただけると
ありがたいです。
hiro
投稿日時: 2008/7/9 9:48
長老
登録日: 2005/7/16
居住地:
投稿: 452
Re: 移動中のノードの位置情報を得るには
> void MOBILITY_ReturnCoordinates(Node* node, Coordinates position)

じゃなくって、

void MOBILITY_ReturnCoordinates(Node* node, Coordinates* position)

では?
koichi
投稿日時: 2008/7/9 12:58
常連
登録日: 2007/10/24
居住地:
投稿: 52
Re: 移動中のノードの位置情報を得るには
すみません、僕も API Reference Guide 見たら
Coordinates position だった気がするんですが
間違いかもしれません。
また再確認しておきます。

使い方は第一引数のノードの位置を
第二引数に代入であっていますでしょうか?
matumoto
投稿日時: 2008/7/9 13:43
一人前
登録日: 2008/5/13
居住地:
投稿: 80
Re: 移動中のノードの位置情報を得るには
素朴な疑問です。

いつ返事が返ってくるかわからないフォーラムに質問出すより、
QualNet-4.5-APIReferenceGuide.pdf を確認した方が、
10時間後の返事より確実に、さくっと1分で問題が解決すると思う。

また、実際に使われている場所を grep して、
./libraries/developer/src/mac_link.cpp にある関数、
clocktype LinkGetPropDelayForWireless (Node *node, LinkData *link)
を見れば使い方もわかると思う。

さらに、./main/mobility.cpp にはこの関数自身のソースコードも
出ている。

APIReferenceGuide や 実際の使用例以上の情報を期待していますか?
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT