Up:Tutorial? Previous:サービスプロバイダの作成 Next:画像、距離センサデータ取得 メッセージ送受信 †※このチュートリアルはSIGVerse v2.1.0以降対応です。 前回のメッセージ送信(sendMsg)はサーバを介してコントローラにメッセージを送信しました。 サービスプロバイダはサーバを介さず直接コントローラへメッセージを送信することもできます。 コントローラサンプル †まずサーバ側でコントローラを作成します。 ServiceTest.cpp 関数connectToServiceでサービスプロバイダ"MyService"に接続します。 これによりSIGVerseサーバを介さずにコントローラとサービスプロバイダで直接データの送受信を行うことができるようになります。 サービスプロバイダとの接続が完了すると関数sendMsgToSrvでサービスプロバイダ"MyService"にメッセージを送信します。 コントローラはコンパイルしておきます。 $ ./sigmake.sh ServiceTest.cpp 世界ファイル †ロボットだけが登場する世界ファイルを作成します。 ServiceTest.xml サービスサンプル †次にサービスプロバイダのサンプルです。 クライアント側で前回(サービスプロバイダの作成)と同じようにVC++2008で新しくプロジェクトを作成し、コードを以下のようにします。 MyService.cpp サーバ接続時の"hostname"と<portnum>は自分の環境に合わせて置き換えてください。 このサービスプロバイダは常にコントローラからのメッセージを受け付けます。 そしてコントローラから"Hello"というメッセージが届くと"Hello! this is MyService"というメッセージをコントローラに返します。 sendMsgToCtrという関数を使うことによりSIGVerseサーバを介さずに直接コントローラにメッセージを送信することができます。 実行 †まずSIGVerseサーバを起動します。 $ sigserver.sh -p 9001 -w ./ServiceTest.xml 次にビューワーでシグバースサーバに接続します。シミュレーションを開始し、MyServiceを起動します。 サーバ側で [SYS] Service: "MyService" is available と表示されればサービスプロバイダ立ち上げ成功です。 次に"START"ボタンを押してシミュレーションを開始します。 サーバ側で一秒に一回 [MSG] robot_000(0.0.0.0) [MyService] Hello! this is MyService と表示されれば成功です。 Old Version †Up:Tutorial? Previous:サービスプロバイダの作成 Next:画像、距離センサデータ取得
Counter: 1319,
today: 1,
yesterday: 1
|