![]() ![]() ![]() | 投稿するにはまず登録を |

題名 | 投稿者 | 日時 |
---|---|---|
» ![]() |
C2913 | 2013/6/24 15:39 |
![]() |
hiro | 2013/6/30 16:28 |
![]() |
C2913 | 2013/7/1 21:34 |
![]() |
hiro | 2013/7/2 11:24 |
![]() |
C2913 | 2013/7/2 11:40 |
![]() |
hiro | 2013/7/2 16:12 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
C2913 | 投稿日時: 2013/6/24 15:39 |
新米 ![]() ![]() 登録日: 2013/6/24 居住地: 投稿: 3 |
PHY_SetTransmissionChannelの使い方について 現在,マルチチャネルMACを作ろうと思っています.
具体的には,RTS/CTS交換のあとにDATA送信チャネルを切り替えようとしているのですが,エラーは出ないものの,実際に切り替え後のチャネルでパケットが送信されません. 具体的には,mac_dot11.cppのMacDot11ProcessMyFrame( )において,CTS受信直後の処理として,DATA送信直前に以下のように追加しました. MacDot11StationTransmitDataFrame(node, dot11);の呼び出し後も複数の関数呼び出し処理を確認し,Phy802_11StartTransmittingSignal()まで呼び出されていることを確認しましたが.どうやらその直後でシミュレータが止まってしまっているようです. 何が原因なのか,全く分かりません. お分かりの方がおられましたら,教えてくださいませんでしょうか.よろしくお願いいたします. 【MacDot11ProcessMyFrame( )内の追加部分】 switch (hdr->frameType) { case DOT11_CTS: { (省略) int Specified = 1; //DATA送信用のチャネル番号 //まずは,指定チャネルをリスニング状態にする.■ if( PHY_CanListenToChannel( node, dot11->myMacData->interfaceIndex, Specified) && !PHY_IsListeningToChannel( node, dot11->myMacData->interfaceIndex, Specified) ){ //指定チャネルがlistenableでありかつ,現在listeningじゃなければ,listeningにする. PHY_StartListeningToChannel( node, dot11->myMacData->interfaceIndex, Specified); } int NowTxch; PHY_GetTransmissionChannel( node, dot11->myMacData->interfaceIndex, &NowTxch); printf("NowTxch:%d, sltch:%d\n", NowTxch, Specified); //指定チャネルを送信チャネルにしていなければ,送信チャネルにする. if( NowTxch != Specified){ PHY_SetTransmissionChannel( node, dot11->myMacData->interfaceIndex, Specified); printf("NowTxch:%d, sltch:%d\n", NowTxch, Specified); } MacDot11StationTransmitDataFrame(node, dot11); |
フラット表示 | 前のトピック | 次のトピック |