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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/10:7/7
2024/05/09:21/23

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

No.1:どっかの巡回ロボット87
No.2:Safari3
No.3:Majestic-12巡回ロボット3

日曜日からの合計
メイン
   Miscellaneous: Architecture & Generic Development Questions
     パケットの伝送を行うプロトコルの書き方について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
masamura
投稿日時: 2005/12/11 19:42
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
パケットの伝送を行うプロトコルの書き方について
はじめまして。
プログラミングも未熟な上に,QualNetも使い始めたばかりの者です。

これからMACプロトコルを設計していきたいのですが,
その練習に,複雑なことは考えずに,
ノードが直列に並んでいる場合に無線でパケットを伝送するプロトコルを作りたいと思います。
とりあえず,分からないなりにステートダイアグラムを描いてみたのですが,
この先,どんな手順でやっていけばよいのか悩んでいます。
Programmer's Guideを読んでやってるのですが,
自分のやっていることにも自信がもてなくて…。

そこで恐縮ですが,
どんな指針でやればよいのか教えていただけたらと思います。
よろしくお願いしますm(__)m
forum_support
投稿日時: 2005/12/11 19:57
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: パケットの伝送を行うプロトコルの書き方について
プログラムについて初心者ということですが、離散シミュレーション
に関しては大丈夫ですか? ここを抑えていないといきなり Programmer's
Guideだけを頼りにプロトコルを作成するというにもかなり厳しいと
思います。

まず、Programmer's Guide の第3章を熟読されることをお勧めします。
ここではシミュレーションの基礎からQNのアーキテクチャを説明して
いますので、それをご理解いただければ細かい点を既存のソースコード
から読み取っていただけると思います。

また、練習ということであれば、いきなりMACから入るのも
少々難しいかもしれません。 .11 系は参考文献も多いですし
とっつきやすいとは思いますが、ソースコード自体はかなりの
量があります。

まずは、簡単なアプリケーション(CBRやVBR)のソースコードを
見ては如何でしょうか? その結果、APIやアーキテクチャを
より具体的に把握し、MACプロトコルに挑戦されたほうがよい
と思います。 CBRがどうなっているか という視点で
見るのではなく、QNのアーキテクチャがどうなっているのか
という視点でご覧になってください。
非常にシンプルなアーキテクチャであることご確認いただける
と思います。

また、VC++ や、 gdb のフロントエンド(ddd等)をお使いになり、
デバッグ環境で、ソースコードを追いながら実行してみるのも
お勧めです。


masamura
投稿日時: 2005/12/12 9:25
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
ご指導ありがとうございます.
おっしゃるような手順でやっていきたいと思います.
また何かありましたらお尋ねするかと思いますので, よろしくお願い致します.
masamura
投稿日時: 2005/12/12 9:25
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
ご指導ありがとうございます.
おっしゃるような手順でやっていきたいと思います.
また何かありましたらお尋ねするかと思いますので, よろしくお願い致します.
masamura
投稿日時: 2005/12/14 11:14
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
初歩的な質問ばかりで申し訳ありません.
初心者なりにがんばってるつもりですので, ぜひご支援頂ければと思います.

先日, ご指導頂いたとおり,
CBRのソースコード(cbr.h, cbr.cpp)をながめているのですが,
正直, まだまだ苦しいところがあります.

User's Guideの5.3 VBR Exampleでは, プロトコルデザイナーを使って,
プロトコルを作成していたと思います.
ここでは, source.txtから引用していたのですが,
この部分がプログラミングを行う箇所になるとの認識でよいでしょうか?

CBR.cppをながめていると,
どの部分がプロトコルデザイナーの補助が受けられて,
どの部分が予め決められていて,
どの部分を自分で書かないといけないのかはっきり見えてきません.
ある程度はProgrammer's Guide 5.6.1.5/6で分かるのですが...
forum_support
投稿日時: 2005/12/14 19:38
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: パケットの伝送を行うプロトコルの書き方について
プロトコルデザイナーをお使いになろうと
されていたのですか。てっきり、既存ソース
コードの修正かスクラッチからの追加をお考え
かと思っていました。失礼いたしました。

プロトコルデザイナについて、文面だけでは
なかなか伝わりにくいかと思いますので、で
きるだけ、サンプルとして付属するモデル
をご覧頂いてご利用願いたいと思っています。

また、プロトコルによっては状態遷移図がかな
り複雑になるため、プロトコルデザイナを用い
た方がかえって難しくなる場合がありますので
ご注意ください。ただし、状態遷移図が描ける
レベルであれば、最初のスケルトンを作成したり、
APIを確認するには便利です。

と、色々書きましたが、まずはご質問にお答え
します。

引用:

User's Guideの5.3 VBR Exampleでは, プロトコルデザイナーを使って,
プロトコルを作成していたと思います.
ここでは, source.txtから引用していたのですが,
この部分がプログラミングを行う箇所になるとの認識でよいでしょうか?


source.txt はあくまでも練習のため事前に用意されているものです。
プログラミングする箇所は
・各状態(四角いアイコン)毎
・ IDEのツリーに出てくるData Definitions 等 
となります。ツリーの部分で、いわゆる .h の宣言をしている
イメージとなります。

次に各状態ごとを Trigger あるいは gurd でむすびます。

Trigger は Timer や Message(Packet) 送受信等の
イベントスケジュールを示し、矢印の先がイベント
が起こったさいにハンドルする状態、つまりそのイ
ベントに対する処理をコーディングする箇所ということ
になります。。
この際、各状態アイコンを右クリックして、property
メニューからユーザーコードを入力します。
APIを使用するのであれば、Insert メニュー
から挿入すると便利です。

また gurd は分岐条件を意味します。gurd 条件成立
した際、矢印の先の状態に遷移することを意味します。
コード上でTrigger と違うところは、Triggerは
Message_Send APIなどでイベントスケジュールをする
のに対し、gurd は if文で gurd条件が満たされた際に
直接遷移先の状態に対応する関数を呼び出すことになり
ます。

といった具合になりますが、結局のところ、
・ユーザは全てのソースコードを書き込むことになる
・Protocol Designer は API を埋め込む手助けをし
 てくれるとともに状態遷移を視覚的に捉えるたすけ
 をする
と解釈していただいて

引用:

CBR.cppをながめていると,
どの部分がプロトコルデザイナーの補助が受けられて,
どの部分が予め決められていて,
どの部分を自分で書かないといけないのかはっきり見えてきません.


こちらの誤解で混乱を招かせてしまいましたが、CBRはデザイナ
を使用して作られているわけではありません。スクラッチビルド
です。もっとも簡単なソースコード例としてお伝えした次第です。

以上です。参考になりましたら幸いです。
masamura
投稿日時: 2005/12/14 20:36
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
ご回答ありがとうございます.
また, こちらが無知なために,
手間をかけさせてしまって本当に申し訳ありません.
丁寧に対応して頂けることに感謝しております.

素人としてプロトコルデザイナーを使用したほうが
「視覚的」ということで勝手に作業しやすと思い込んでおりました.
しかし, 今回のご回答からはそうではないみたいですね.
申し訳ありません.

今は既存のALOHAを簡略化して,
「単純にパケットを送るようなもの」までもっていきたいと考えており,
プロトコルデザイナーを使って, 衝突検出や再送を取り払っているところです.
もしかしたら, この作業もソースファイルを直接触ったほうがいいのでしょうか?

何かとお世話になりますが, よろしくお願い致します.
forum_support
投稿日時: 2005/12/14 20:58
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: パケットの伝送を行うプロトコルの書き方について
引用:

masamuraさんは書きました:
今は既存のALOHAを簡略化して,
「単純にパケットを送るようなもの」までもっていきたいと考えており,
プロトコルデザイナーを使って, 衝突検出や再送を取り払っているところです.
もしかしたら, この作業もソースファイルを直接触ったほうがいいのでしょうか?


ALOHAでしたら、既にプロトコルデザイナのテンプレートも
用意されていると思いますので、デザイナを使っても、
直接コードを修正されてもどちらでも出来ると思います。
好みの問題になってくるとおもいますよ。
MACからPhysical の状態を知りたい場合には、いくつか関数が用意
されていますので既存コードから読み取ってみてください。この
手の関数は大抵、スケジューリングハンドラでなく、関数の
直接呼出しになっていると思いますので、コードを追いやすいと
思います。ちなみに Support Team は doxygen 等のツールを
使ってソースを追っています。
masamura
投稿日時: 2005/12/15 12:16
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
早速のご返答ありがとうございました.
ひとまず自分で考えながらやってみたいと思います.
また, doxygenも導入したいと思います.

また, 何か疑問点が出てきましたらお尋ねしたいと思いますので,
その際はよろしくお願い致します.
masamura
投稿日時: 2005/12/19 13:13
半人前
登録日: 2005/12/6
居住地: 岐阜県
投稿: 39
Re: パケットの伝送を行うプロトコルの書き方について
いつもお世話になっています.

結局のところ, ソースコードを直接修正することにしました.
コンパイルも実行し, エラーもとってみました.

このプロトコルをGUIに導入するには,
マニュアルを読むところによると
settings/choices.xmlの追記を行うだけでよいのでしょうか?

よろしくお願いいたします.
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT