m0509****@waka*****
m0509****@waka*****
2008年 9月 11日 (木) 16:52:11 JST
近畿大学の中川です。 SUNTORIの原 様、丁寧な回答をありがとうございます! 早速これを参考に取り掛かってみます。 またなにかありましたら、ご助言いただけると有難いです。 乱文失礼しました。 --- rc-oz****@lists***** --- >>近畿大学中川様 >> >>SUNTORIの原です。 >> >>現在の仕様では、通信は「チャンネル」を用いたものとなっています。メッセー >>ジは送信する際に必ず「チャンネル番号」を指定しなければいけません。メッ >>セージはそのチャンネル番号を受信するように要請したエージェントが受信しま >>す。無線通信の周波数みたいなものと考えればよいかと思います。 >> >>サンプルではyab.agent内Agentクラスに含まれている次のメソッドが通信に関係 >>する処理を担当しています。 >>1.setMyChannel()→受信するチャンネル番号の指定 >>2.channel(byte[])→メッセージの受信要請 >>3.tell(int,byte[])→メッセージの送信 >>4.hear(RealObject,String)→聞き取ったメッセージ >> >>受信側では1、2、4を扱い、送信側では3を扱います。以下で具体例と共にそ >>れぞれの使い方を説明します。 >>・受信側の実装 >>1.オーバーライドしたsetMyChannel()内で、受信チャンネルの設定をする。例: >>setMyChannel(){ >> myChannel=1 >>} >>*ただし、2チャンネル以上同時に設定する場合は論理和で指定) >>*チャンネル番号はyab.io内ProtocolConstantsクラスに定数が用意してあるの >>でそちらを使ったほうがわかりやすいかもしれません。 >> >>2.channelを呼び出し、メッセージを受信要請をカーネルに出す >>例: >>act(){ >> channel(new byte[]{1}); >>} >>*2チャンネル以上同時に要請する場合は、その分だけ配列に追加する >> >>・送信側の実装 >>3.送信するメッセージと送信先のチャンネル番号を引数にしてtellメソッド呼 >>び出し >>例: >>tell(1,"test") >> >>・確認 >>4.送受信ともに問題なければ、数ステップ後メッセージを受け取ったときに受 >>信側のhear(RealObject,String)が呼び出されます。RealObjectが送信者、 >>Stringにメッセージが入っているはずです。確認してください。 >> >> >>以上で最低限の通信は可能となりますが、Yab-APIをそのまま利用する場合は、 >>いくつか制限があるので少し注意が必要になります。 >>・センター⇔チーム、センター⇔センターの通信は問題ないが、チーム⇔チームで >>の通信は無視される(hearメソッドを呼ばない) >>・自分自身の出したメッセージは無視する >>・チャンネル0番(SAY)を使わない >>このあたりのことはYab-API内のAgentクラスを直接参照していただけたら理解& >>変更できるかと思います。私としてはだいたいの仕様を理解したあたりで使いや >>すいように改造するのがいいかと思います。 >> >>通信周りのことはややこしく、まだいくつか注意点があったりします。しかし長 >>くなりましたので一旦ここまでとします。いかがでしょうか。 >> >>> 近畿大学の中川といいます。 >>> 前年の秋キャンプで配布されたSample-Naitoをベースにして開発をしています。 >>> >>> 現在、このSample-Naitoのエージェントの通信をできるようにしたいと思っているのですが、どう手をつけていいのか分からずに悩んでいます。 >>> >>> そこで質問なのですが、通信を出来るようにするにはどうしたらよいのか、どなたかご存知なら教えてもらえないでしょうか? >>> どんな些細なことでも構いませんので、お願いします。 >>> >> >>-- >>/** >> * 原 大曜 >> * 石井(健)研究室 社会システム情報学専攻 >> * 名古屋大学大学院 情報科学研究科 >> * e-mail : taiyo****@kishi***** >> * 内線 : 3813 >> */ >> >>_______________________________________________ >>Rc-oz-simjp mailing list >>Rc-oz****@lists***** >>http://lists.sourceforge.jp/mailman/listinfo/rc-oz-simjp