[[Tutorial]] #contents *メッセージ送信ツールの作成。 [#g29217fd] SIGVerseサーバのエージェントにメッセージを送信するツールを作成します。 ここではVC++.NET(2008)を使用することを前提とします。(VB,C#でもできる..はず) **ライブラリの取得 [#nac2be19] #ref(sigverse.dll) 上のdllファイルをダウンロードします。 **設定 [#l0e06e82] ***プロジェクト新規作成 [#yd34b304] VC++の新しいプロジェクトを作成します。ファイル→新規作成→プロジェクト 新しいプロジェクトのダイアログが立ち上がるとCLRのWindowsフォームアプリケーションを選択し、プロジェクト名を入力してOKボタンを押します。 ***dll参照 [#wf35673c] ソリューションエクスプローラの中のプロジェクトを右クリックして参照を選択します。 共通プロパティのFrameworkと参照を選択し、新しい参照の追加ボタンをクリックします。次に参照タブを選択して、上でダウンロードしたSendMessage.dllを選択します。 ***ボタン追加 [#j41162f6] ツールボックスからButtonを選択して適当にボタンを追加します。 #ref(SendMessage1.jpg) ***イベントハンドラ [#d4786251] ボタンをダブルクリックしてイベントハンドラの中に以下のコードを追加してコンパイルします。 #highlight(cpp){{ //メッセージ送信オブジェクト作成 sigverse::MessageSender msg("test"); //サーバに接続します。 if(msg.connect("hostname",9001)) { //メッセージを作成します。 char *strs[] = { "Hello", }; //メッセージを"Hello"を送信します。 msg.sendto("man_000",1,strs); } }} ***メッセージ送信オブジェクト作成 [#x2d2dab0] MessageSenderのコンストラクタで引数で送信元の名前を指定します。 ***connect [#q211cf8d] msg.connectでサーバに接続します。1番目の引数"hostname"はSIGVerseサーバのホスト名に置き換えてください。2番目の引数はSIGVerseサーバのポート番号を入力します。 メッセージを送信するたびにconnectします。 ***sendto [#uc444b00] sendtoでメッセージを送信します。1番目の引数は送信相手を、2番目は送信するメッセージの数(配列のサイズ)、3番目はメッセージを指定します。 #highlight(end) **メッセージ送信 [#i8773763] これでボタンを押すと"man_000"にメッセージ"Hello"が送信できるようになりました。 まずチュートリアルのサンプル[[人間型エージェントの操作]]の「コマンドによるエージェントの操作」のサンプルコードをサーバ側で実行します。 次にビューワーで接続し、"Send"ボタンを押してシミュレーションを開始します。 シミュレーション開始したら、先ほど作成したボタンを押してメッセージを送信します。 人間がお辞儀したらメッセージ送信成功です。