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

パスワード:


パスワード紛失

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

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

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

日曜日からの合計
メイン
   Link (MAC) Layer Settings
     IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得
投稿するにはまず登録を

題名 投稿者 日時
   IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 kouki 2012/5/24 12:30
     Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 hiro 2012/5/24 12:52
     » Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 kouki 2012/5/24 15:22
         Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 hiro 2012/5/24 15:41
           Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 kouki 2012/5/24 20:55
             Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 hiro 2012/5/25 13:27
               Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 hiro 2012/5/25 14:13
                 Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得 kouki 2012/5/28 16:34
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
kouki
投稿日時: 2012/5/24 15:22
新米
登録日: 2012/3/16
居住地:
投稿: 4
Re: IEEE802.15.4にてビーコンを送信している送信先ノードIDの取得
hiroさんありがとうございます。

ご解答を参考にさせていただき、APIを見つつ以下のようにプログラムを追加しました。

NetworkForwardingTableRow* row;
row = (NetworkForwardingTableRow*) node->networkData.networkVar;

NodeAddress nextHopAddr;
nextHopAddr = row->nextHopAddress;


MAPPING_GetNodeIdFromInterfaceAddress(node, nextHopAddr);

printf("NodeID = %ld , NextHopNodeID = %ld\n",node->nodeId,nextHopAddr);

このようにMac802_15_4BeaconTxHandler内に追加したのですが、
nextHopAddrは全てのノードにおいて0と表示されました。

ネットワークトポロジーはリニア型で、
1⇒2⇒3⇒4⇒5というように繋がっているので、
NodeID = 1 , NextHopNodeID = 2
NodeID = 2 , NextHopNodeID = 3
NodeID = 3 , NextHopNodeID = 4
NodeID = 4 , NextHopNodeID = 5
と出力されるのが正しいのですが、そうはなりませんでした。
また、ノード1がPAN COORで2,3,4がCOOR、5がDEVICEで5から1へCBRでデータ送信をしています。
デバイス間は離して、ノード1の無線通信範囲内にノード2以外は入らないようにするということをし、他のノードでも同様に配置しています。

ここで思ったのですが、まずIEEE802.15.4において親ノードがビーコンを
ブロードキャストで送信し、それに対して子ノードがユニキャストで
返事をして、受け取ったビーコンの長さに応じてデータの送受信
を互いに開始するということを繰り返します。
そしてMac802_15_4BeaconTxHandlerはTxとあるように、ビーコンの
送信側の処理なのですが、このときビーコン送信側はブロードキャスト
で自分の無線通信範囲内のノードのみにビーコンを送るので、
nextHopAddressではなく、宛先アドレスのdestAddressではないかと
思いました。
そこで以下のように改変しました。

NetworkForwardingTableRow* row;
row = (NetworkForwardingTableRow*) node->networkData.networkVar;

NodeAddress destAddr;
destAddr = row->destAddress;

MAPPING_GetNodeIdFromInterfaceAddress(node, destAddr);

printf("NodeID = %ld , DestNodeID = %ld\n",node->nodeId,destAddr);

そうしたら出力結果は

Current Sim Time[s] = 0.000000000 Real Time[s] = 1 Completed 0%
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 3 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 3 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 3 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 3 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 3 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 3 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0
NodeID = 2 , DestNodeID = 0
NodeID = 3 , DestNodeID = 0
NodeID = 1 , DestNodeID = 0

中略


NodeID = 2 , DestNodeID = 33
NodeID = 3 , DestNodeID = 53
NodeID = 4 , DestNodeID = 52
NodeID = 1 , DestNodeID = 17
NodeID = 2 , DestNodeID = 33
NodeID = 3 , DestNodeID = 53
NodeID = 4 , DestNodeID = 52
NodeID = 1 , DestNodeID = 17
NodeID = 2 , DestNodeID = 33
NodeID = 3 , DestNodeID = 53
NodeID = 4 , DestNodeID = 52
NodeID = 1 , DestNodeID = 17
NodeID = 2 , DestNodeID = 33
NodeID = 3 , DestNodeID = 53
NodeID = 4 , DestNodeID = 52
NodeID = 1 , DestNodeID = 17
NodeID = 2 , DestNodeID = 33
NodeID = 3 , DestNodeID = 53
NodeID = 4 , DestNodeID = 52
NodeID = 1 , DestNodeID = 17
NodeID = 2 , DestNodeID = 33
NodeID = 3 , DestNodeID = 53
NodeID = 4 , DestNodeID = 52
NodeID = 1 , DestNodeID = 18
NodeID = 2 , DestNodeID = 34
NodeID = 3 , DestNodeID = 53

中略


NodeID = 1 , DestNodeID = 21
NodeID = 2 , DestNodeID = 46
NodeID = 3 , DestNodeID = 74
NodeID = 4 , DestNodeID = 86
NodeID = 1 , DestNodeID = 21
NodeID = 2 , DestNodeID = 46
NodeID = 3 , DestNodeID = 74
NodeID = 4 , DestNodeID = 86
NodeID = 1 , DestNodeID = 21
NodeID = 2 , DestNodeID = 46
NodeID = 3 , DestNodeID = 74
NodeID = 4 , DestNodeID = 86
NodeID = 1 , DestNodeID = 21
NodeID = 2 , DestNodeID = 46
NodeID = 3 , DestNodeID = 74
NodeID = 4 , DestNodeID = 86
NodeID = 1 , DestNodeID = 21
NodeID = 2 , DestNodeID = 46
NodeID = 3 , DestNodeID = 74
NodeID = 4 , DestNodeID = 86
NodeID = 1 , DestNodeID = 21
NodeID = 2 , DestNodeID = 46
NodeID = 3 , DestNodeID = 74

となりました。
最初は全てのノードでDestNodeIDが0となり、0から徐々に増えていき
最終的には
NodeID = 1 , DestNodeID = 21
NodeID = 2 , DestNodeID = 46
NodeID = 3 , DestNodeID = 74
NodeID = 4 , DestNodeID = 86
となりました。
こうなった理由や正しい値を出す方法を探しておりますが、
引き続きご教示頂けるとありがたいです。
フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT