メッセージ送信ツールの作成(.NET)

(※準備中)

ライブラリの取得

以下のページの.NET DLLの項目にあるサービスライブラリSIGService_<version>_vc2008_NET.zipをダウンロードし、展開します。

設定

プロジェクト新規作成

VC++(2008)で新しいプロジェクトを作成します。ファイル→新規作成→プロジェクト

新しいプロジェクトのダイアログが立ち上がるとCLRのWindowsフォームアプリケーションを選択し、プロジェクト名を入力してOKボタンを押します。

dll参照

ソリューションエクスプローラの中のプロジェクトを右クリックして参照を選択します。 共通プロパティのFrameworkと参照を選択し、新しい参照の追加ボタンをクリックします。次に参照タブを選択して、上でダウンロードしたDebugフォルダの中にあるsigverse.dllを選択します。

ボタン追加

ツールボックスからButtonを選択して適当にボタンを追加します。

SendMessage1.jpg

イベントハンドラ

ボタンをダブルクリックしてイベントハンドラの中に以下のコードを追加してコンパイルします。

connectの引数で指定するホスト名とポート番号はSIGVerseサーバのホスト名(またはipアドレス)とポート番号に置き換えます。

ライブラリの設定

SIGVerseサービスライブラリの設定を行います。

  1. ソリューションエクスプローラのプロジェクト名を右クリックし、参照を選択します。 「構成プロパティ」→「C/C++」→「全般」を選択し、「追加のインクルードディレクトリ」に展開したライブラリのincludeフォルダを指定します。
     
  2. 次に「構成プロパティ」→「リンカ」→「全般」を選択し、「追加のライブラリディレクトリ」に展開したライブラリのlibフォルダのDebugを指定します。 (ReleaseモードでコンパイルするときはReleaseを選択します。)
     
  3. 最後に同じ「リンカ」の「入力」を選択し「追加の依存ファイル」に"SIGService.lib"を追加します。

ビルドが正常に行えるか確認してみてください。

実行

これで準備は整いました。

まずチュートリアルのサンプル人間型エージェントの操作の「コマンドによるエージェントの操作」をサーバ側で実行します。サーバ側でSIGVerseを起動するときには関数connectの第2引数で指定したポート番号を-pオプションで指定します。

サーバを起動したらビューワーからサーバに接続して"START"ボタンを押してシミュレーションを開始します。この状態でメッセージ送信プログラムを実行してみてください。エージェントがお辞儀したら成功です。

ビューワーからではなくMyServiceからメッセージ"Hello"を送信しました。

プラグインの登録

次に作成したサービスをプラグインとしてビューワーに登録し、ビューワーから起動する方法を説明します。

サービスサンプルを以下のように修正します。

MyService.cpp

SIGVerseサービスではサーバのホスト名とポート番号がメイン関数の引数として与えられます。

コンパイル

SIGViewerに読み込ませるようにするため、以下の設定をしてからビルドします。

exeファイルを先に作って後から拡張子を.sigに変更しても同じことです。

ビューワーへ登録

ビルドが成功してDebug(もしくはRelease)フォルダにMyService.sigができたら次はビューワーにサービスを登録します。

  1. まずビューワーを立ち上げます。
     
  2. 上にあるメニューバーから「Service」→「Add」を選択します。
     
  3. サービスリストが立ち上がったら"Add"ボタンを押して作成したMyService.sigをサービスリストに追加します。
    MyService_1.PNG
  4. "OK"ボタンを押します。

実行

先ほどと同様に人間型エージェントの操作の「コマンドによるエージェントの操作」をサーバ側で実行します。ビューワーからサーバに接続して"START"ボタンを押してシミュレーションを開始します。

人間が手を下した状態になったら、メニューバーの「Service」→「Start」をクリックし、MyService.sigを選択し、サービスを開始します。

エージェントがお辞儀をすれば成功です。

Old version

メッセージ送信ツールの作成(v120330, v1.4.8)


Up:Tutorial?     Previous:HMD+KINECT     Next:メッセージ送受信


Front page   New List of pages Search Recent changes   Help   RSS of recent changes