- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
[[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]
**イベントハンドラ [#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"ボタンを押してシミュレーションを開始します。
シミュレーション開始したら、先ほど作成したボタンを押してメッセージを送信します。
人間がお辞儀したらメッセージ送信成功です。