サービスはロボットの状態と連動して動くもの:Robotics Studio活用術 はじめて作るサービス(3)(1/2 ページ)
Xbox 360のコントローラを用いて“通知”を発行し、ロボットの名前をダイアログに表示させるプログラムを作成します
連載第1回「サービス開発の基礎と流れ」で確認したように、サービスのテンプレートは、「Lookup」「Drop」「Get」の3個のメソッドを持っています(この中で、ユーザーに公開されたメソッドはGetのみで、LookupとDropはシステムが使用するメソッドなので、ユーザーは使用できません)。
また、Visual Programming Language(以下、VPL)を使ってMyProjのダイヤグラムを組み、実行しましたがGetは応答しませんでした。つまり、“Getの応答がない”ことを確認しました(厳密にいえば、応答がなかったのではなくて、「“null”が返されたので確認できなかった」ということです)。
Getメッセージのハンドラはテンプレートに組み込まれているので、Getから応答を得るために新たにハンドラを書く必要はありません。“ロボットの状態さえ定義すれば、Getの応答は得られる”のです。
そこで今回は、ロボットの状態を定義して、実際にプログラムを実行するまでを解説します。
ロボットの状態
それでは、Microsoft Visual C# 2005 Express SP1(以下、VC#)を起動して、連載第1回「サービス開発の基礎と流れ」を参考に新規にプロジェクトMyProj1を作成してください。
[Solution Explorer]ペインで、ファイルMyProj1Types.csをダブルクリックして、画面1のように編集ペインを開きます。
まずは、MyProj1Types.csのコードを見ていきましょう。
コードの上段にサービスのコントラクト(public sealed class Contract)があります(サービスのコントラクトについては、連載第2回「身近な例から学ぶ“サービス”」を参考にしてください)。さらに、その下を見るとMyProj1Stateというクラス(public class MyProj1State)があります。これが、サービスMyProj1の状態を宣言する場所です。このクラスには[DataContract()]という属性が付いています。
ここで、MyProj1Stateクラスに「名前」というプロパティを設定してみましょう。
MyProj1Types.csに対して、画面2のように“ロボットの名前”プロパティを定義します。
まず、文字列変数_nameを定義して、これにAtomという値を代入します。
private string _name = "Atom";
次に、[DataMember]という属性を付けてNameというプロパティを定義します。
ここに記述されている「get」と「set」は、プロパティに対してデータをセットする、あるいはプロパティからデータを取り出すために必要となるステートメント(すなわち、式)です。
ここまでの手順で、MyProj1というサービスのMyProj1Stateという状態に対して、Nameというプロパティを定義し、これにAtomという文字列を代入できました。
状態のチェック
前述までの作業で、VC#のテンプレートに対して書き込みを行ったので、その結果をチェックしてみましょう。
連載第1回「サービス開発の基礎と流れ」を参考にして、プロジェクトMyProj1をビルドしてください。
ビルドが成功したら、VPLを使ってビルドしたサービスの動作を確認します。
まず、VPLを開いて[Basic Activities]から[Data]をドラッグし、[Services]から[MyProj1]をドラッグして、画面3のように両者を接続してください。
ちなみに、サービスMyProj1で公開されているメソッドはGetだけなので、接続の際に[Connections]ダイアログは開かず、画面3のようにGetが自動的に選択されます。
次に、[Services]から[Simple Dialog]をドラッグして、[MyProj1]と接続してください。
すると、[Connections]ダイアログが開くので、画面4のように[From]ペインで[Get - Success]を選択し、[To]ペインで[AlertDialog]を選択して、[OK]ボタンをクリックしてください。
続いて、[Data Connections]ダイアログが開くので、画面5のように、[Value]ペインで[Name]を選択し、[Target]ペインで[AlertText]を選択して、[OK]ボタンをクリックしてください。
同様に、[MyProj1]と[Simple Dialog]とを接続する線を右クリックして、画面7のようにコンテキストメニューから[Data Connections]ダイアログを開くこともできます。
いずれにしても、[Value]に対して[Name]を選択することが必要です。デフォルトでは、nullになっているのでこのままでは正しい結果を得ることはできません。
以上で準備ができたので、アプリケーションを実行してみましょう。
VPLのメニューから[Run]−[Start]をクリックします(ツールバーの三角形のアイコンをクリックしても同じ結果が得られます)。
すると、画面8のように[Run]ダイアログが表示されます。
そして、しばらくすると画面9のダイアログが表示されます。ダイアログのテキストが“Atom”になっていることが確認できます。
Copyright © ITmedia, Inc. All Rights Reserved.