次に、.NET Micro Frameworkプロジェクトを作成したときに、自動生成された「Program.cs」の「OnButtonUp」メソッドに、リスト2のコード(太字)を追加します。
これで、コーディングは終了です。Emulatorを使ってロジックを確認します。
まず、Windows Phone側のアプリケーションを[F5]キーで実行しておきます。
次に、.NET Micro Framework側のアプリケーションを、[F5]キーでデバッグ実行し、起動したEmulatorのボタンをどれかクリックすると、「OnButtonUp」がコールされ、「MulticastSocketClient」インスタンス作成とMulticast Groupへの送信が行われ、Windows Phone側のアプリケーションに.NET Micro Framework側から送られたメッセージが表示されます。
例えば、このコードの「client.SendMessage(……)」の直下に、リスト3のようにコード(太字)を追加し、
「Program」クラスに、リスト4のメソッドを追加します。
「GetTemperature()」メソッド内で、.NET Micro Frameworkデバイスに装備された温度センサーデバイスからの情報を取得してやれば、Multicast GroupにJoinしているWindows Phone端末を含む全てのデバイスに温度情報が送信されます。
ネットワーク通信では、セキュリティに関する注意が欠かせません。温度情報程度であれば特に問題ないかもしれませんが、プライバシーに関わる情報をそのままネットワーク上に流すのは大問題です。最新の「.NET Micro Framework 4.2」には各種暗号化アルゴリズムが用意されているので、データの暗号化処理をいれるのがよいでしょう(参考記事)。
以上、UDP Multicast Groupを用いた、.NET Micro FrameworkデバイスとWindows Phoneとの連携でした。実際のデバイスで試してみたい場合は、以下の表1を参考にしてみてください。
.NET Micro Framework関連デバイス | Wi-Fiドングル | Windows Phone端末 | |
---|---|---|---|
FEZCobra Netduino |
XBee Wi-Fi開発キット | au IS12T | |
表1 実際のデバイスで試してみたい場合の環境 |
また、.NET Micro Frameworkを搭載した実デバイスへの温度センサーの実装方法やそのロジックは、Webサイト「TinyCLR.jp」で紹介されているのでそちらを参考にしてください。
表1で紹介しているWi-Fiドングルの提供元である、ディジ インターナショナルは、現在「“今日から使える”アプリコンテスト」を実施中です。本稿で紹介した、.NET Micro FrameworkデバイスとWindows Phoneの連携アプリケーションも応募対象に含まれるので、興味のある方はぜひチャレンジしてみてください。さらに、Windows Phone側のユーザーインタフェースの作り方や各種技術情報は、「開発者情報番組『UX-TV』」で公開されているので参照してみてください。
今回解説したUDP Multicast Group通信は、Windows Phone以外のさまざまなスマートフォン向けプラットフォームでも実装可能です。他のプラットフォームの実装と比較してみるのも勉強になってよいでしょう。
最後に、本稿で解説した内容の詳細を筆者のブログでも公開しているので、併せてご覧ください!
Copyright © ITmedia, Inc. All Rights Reserved.