.NET FrameworkのSocketクラスでUDP Multicast Group Socket通信を行う - データ受信編

ずっと前に、Windows Phone 7とWindows PCをUDP Multicast Group Socket通信で連携させる方法をポストしました。このポストでは、Windows PC→Windows Phone 7のデータの流れのみ説明していました。このポストでは、Windows Phone 7がMulticast Groupに送信したデータをWindows PCで受信する方法を解説します。Windows PC側で使うのは.NET FrameworkのSocketクラスです。 Multicast Group通信を、おさらいしておくと、Wi-Fiなどで同じローカルネットに接続されたデバイス間で、アドホックに1 to Manyで通信するためのプロトコルです。グループIPアドレス(224.0.0.1~239.255.255.255が利用可能。一部WS-*で予約されているものもあり)とグループポート番号をあらかじめ決めておいて、そのアドレス、ポートにデータをUDPで送信すると、そのグループにJoinしているデバイスだけに、一括してデータを送信できます。このプロトコルを使えば、Ad-Hocにネットにつながったデバイスを発見して、Peer-To-Peerでつないだりすることが出来ます。例えばどこかのWi-Fiスポットで、そのネットにつながっているデバイス間でチャットしたり、家庭のWi-Fiに家電をつないで、即、家のHEMSやPC,スマホと連携、AV機器連携などにも使えます。1度の送信でグループにJoinしている全てのデバイスにデータが送信できるので、プログラムもシンプルです。このプロトコルは、Wi-Fiルータのローカルネット内で閉じているので、インターネット上にデータは出て行きません。ローカルネット内のデバイスをグループ化してローカルで済む通信に対してはこのプロトコルを使い、必要なデータ送受信・サービスの利用のときのみクラウドと連携といったシナリオも可能です。 能書きはこれぐらいにして、早速Socketを使った受信方法を解説します。通信相手として、Windows Phone 7をご用意ください(シミュレーターでもOKです)。そして、Windows Phone 7側は、http://msdn.microsoft.com/ja-jp/library/ff431744(v=vs.92).aspx から公開されている”マルチキャストソケットのサンプル”の、左側のアイコンの右横にあるリンクからC#/VBのサンプルをダウンロードして動かしておいてください。グループアドレス、グループポートは、このサンプルで使われている、224.0.0.1と52274を使います。 Windows側のコードを解説していきます。 まず、Multicast GroupにJoinするためのコードですが、     IPAddress groupAddress = IPAddress.Parse(“224.0.1.1”);    int groupPort = 52274;     Socket receiveSocket = new Socket(                AddressFamily.InterNetwork,                SocketType.Dgram,                ProtocolType.Udp);     receiveSocket.SetSocketOption(               SocketOptionLevel.Socket,               SocketOptionName.ReuseAddress,              1);     IPEndPoint ipep…

0

.NET Micro Framework + Windows Azure + Windows 7 + Windows Phoneでセンサークラウドプロトタイプ

最近、電力見える化や農業クラウドなど、センサークラウドが実用化の時期を迎えつつあります。タイトルに挙げたテクノロジーを使えば、センサークラウドのプロトタイプが廉価で手軽に実現できるのでは、ということで投稿してみました。想定としては、 このポストで説明した方法でプロトタイプを作成し実証実験 結果をもとに本格稼動に向けて、デバイスやサービス、アプリを構築 といった流れを考えています。 センサークラウドの基本構成要素は、 センサーデバイス+小型組込み機器   センサーノードとしてフィールドにばら撒かれる データ収集用ネットワークストレージ    ネットワーク上で稼動 データ分析・活用ネットワークサービス   ネットワーク上で稼動 システム管理者向けアプリ          PC等で稼動 ユーザー向けデータ活用アプリ       PC、タブレット、スマートフォンなどで稼動 になるかと思います。最初に挙げたセンサー機器で測定対象の各種データ(電力や温度、湿度、大気圧、照度、などなど)を収集し、2番目のストレージに格納、3番目のサービスで活用し、4番目でシステムを管理、5番目でユーザーが見たり指示したり、といった構成です。あい これらとタイトルに挙げた技術をそれぞれマップしていくと、 センサーデバイス+小型組込み機器 プロトタイプを作るなら、.NET Micro Frameworkデバイスが利用可能です。.NET Micro Frameworkが動く市販のデバイスは、GHI Electronics社のFezシリーズやNetduinoがあります。これらは、ボードだけなら4000円~1万円程度、接続可能なセンサーデバイスも多数売られている(数百円から数千円)ので、プロトタイプのレベルなら多額の投資がなくても利用可能です。アプリケーションはC#やVBを使って、.NET Framework系のネットワーク機能が豊富に揃ったライブラリを使えるので、デバイス上のプログラムも容易に作成できます。.NET Micro FrameworkはApache V2ライセンスで提供されるオープンソースなので、ライセンスフィーもいりません。 データ収集用ネットワークストレージ ネットワークストレージには、Windows Azureのストレージサービスや、SQL Azureが利用可能です。Webから申し込み手続きをしてすぐ使え、実験中だけ稼動し、終わったら、契約を終了可能です。実験環境としては最適でしょう。 データ分析・活用ネットワークサービス こちらは、Windows Azureが、データ分析・活用サービスのホスティングサイトとして利用可能です。こちらもSQL Azureと同様、使いたい時だけ使えるので、プロトタイプ向きといえるでしょう。また、Windows Azure上で作成したサービス向けクライアントアプリはWindows系アプリだけでなく、アンドロイドやiPhone向けのものが作成可能です。 システム管理者向けアプリ こちらは、Windows 7 PCが利用できます。Windows Azure上にRIAとして構築しても構いませんし、ネットワークサービスと連携するPC上で動くアプリを用意するのも良いでしょう。特に専用のPCを用意する必要もなく、通常のPCで十分です。もしゲートウェイや専用デバイスが必要であれば、Windows 7の組込み版OSであるWES7や、Windows Embedded Compact 7 デバイスが利用可能です。 ユーザー向けデータ活用アプリ こちらは、Windows 7 PC、Windows Phone 7を使って、RIAサービスや、それぞれのOS上で動くクライアントアプリを作るこことも出来ます。ブラウザ内で動くアプリだけでよいのではと思う方もいるかもしれませんが、画面の大きさや操作性、各デバイスが装備している機能との連携を考えると、今後はむしろネットワークサービスとして連携してデバイス二インストールされて動くアプリのほうが主流になるのではないかと私は予想してます。デバイス側もどんどん進化しますからね。 以上、ざっと紹介しました。上の組合せであれば、開発環境はVisual Studio 2010で全て開発可能ですし、同じ言語、同じ流儀のライブラリーを使える、つまり同一スキルセットでプロトタイプ作成が可能です。本格システムの場合は、認証や暗号化などセキュリティが必要になりますが、App Fabricを使えば、何とかなりそうです。 図にするとこんな感じ 以上、簡単ですが、今後も方々でこの話題は話したり、ブログ書いたりする予定なのでよろしくお願いします。ではまた…

0

ETロボコン計測システムクラウド化トライ

ETロボコン2011チャンピオンシップ大会では、スタンドアロンシステムが稼動している横で、実は、クラウド化したシステムの実験をやっていました。ETロボコン計測システムの概要は、一つ前のポストhttp://blogs.msdn.com/b/hirosho/archive/2011/11/17/etroboconracetrackingsystempart1.aspx を見てもらうこととして、この実験では、隣でスタンドアロンシステムに対して行っている操作とまるっと同じ操作をして、ちゃんと動くか、応答性能は問題ないか、一大会あたり幾ら位かかるか、について検証を行いました。 実験システムは、図のように構成しました。 IISで動いているWCFサービスをWindows Azureにそのままポーティング DBをSQL Azure上に作成(スキーマはEFから生成したSQL文を使用) WCFサービスのDB参照先の接続文を一行SQL Azure用に修正 PC側のETRoboConTrackingSystem、ETRoboConResultEditorExcelのHTTP/SOAPの参照URLを修正 以上、これだけで、結果としてはちゃんと動きました。私は方々でデバイスとクラウド連携というお題で講演していますが、私の講演をお聞きいただいた皆さんの中には、「同じコードで直ぐ動きます、Azureでクラウドをはじめることは簡単です」と言っていたのを記憶に留めている方も多いと思います。言っているとおりに動いています(嘘つきにならなくてよかったです)。 移植作業は、梶原さんという技術者が協力してくれました。Twitterで協力者募集したところ、申し出てくれた方です。私は酷いので、「Codeplex上にアップしているプロジェクト群のうち、ETRoboConTrackingServerプロジェクトをAzureに挙げればよいですよ。お願いします」の二言で丸投げ。でも、動きましたね。梶原さんありがとう。 まぁ、大会当日の朝、さぁ動かそうとして、何故かDBの定義が一箇所だけ古く、最初動かなかったのですが、程なく解決。その後は、正式本番システムの横で、同じオペレーションを行って問題なく動きました。携帯電話のディザリングでPCをネットにつないだ場合は、転送速度の問題で応答性能悪すぎで、タイムアウト連発。ワイヤードでLANにつなげば特に問題はありません。むしろVista PCのスタンドアロンより、Win7+Azureのほうが体感的に早い気がしました。 実稼動に向けては、セキュリティやアクセス権、ローカルで持てばよい情報もあるのでDBのスキーマ変更とそれに伴うロジック変更が必要ですが、まぁなんとかるでしょう。クラウド側もクライアント側も、C#、.NET Frameworkと同じスキルを活用できるのも魅力ポイント。 気を良くした太田は、あ、そういえば、WCFサービスをWindows Phone 7アプリで接続するのも簡単だっけと思い出し、準備の傍ら、WP7アプリもちょこっと作って、WCFサービスによるHTTP/SOAPにアクセスして、大会情報の取り出しと順位結果表示のサンプルアプリも作っていた次第。こちらも後でブログにポストの予定です。

0

ETロボコン向け計測システム紹介

ETロボコン2011のチャンピオンシップも昨日無事終わり、競技に参加された皆さんが開発されたロボットの走行性能にただ驚くばかりでした。参加された皆さん、お疲れ様!! ETロボコン競技中に図のような絵が、スクリーンに表示されて、競技の状況表示や、走行時間の計測を行っているのを、会場に来た方でしたら見ていることと思います。 このシステムは、このブログの筆者である太田がシステム全般、表示部分は、クラスメソッドの杉浦さん、チーム紹介のアニメーションは東海大学の学生さん(昨年作成)、タイム計測用のスイッチボックスはシステムクリエイトの高橋さんが担当して、開発し、各大会で使っていただいているシステムです。2011年の大会では、北海道、東北、北関東、東京AB、北陸、東海、関西、中四国、九州、沖縄、チャンピオンシップの全12大会、全てで使ってもらうことが出来ました。 折角なので、このシステムの中身を本ブログで紹介します。このシステムは、ETロボコン競技会に関わる様々な作業を自動化しています。機能は以下の通りです。 大会参加チーム情報登録 大会の走行順登録 二つのラウンド、ターン進行の管理 スタートからの経過時間、ゴール時のタイム、走行状況、難所クリア状況の表示 大会ルールに則ったリザルトタイムの計算 走行結果、走行時間、難所クリア状況の蓄積 走行順位計算 モデル審査結果登録 総合順位結果計算 モデル評価・走行結果傾向分析 中間順位表示(昨年版:酒田エス・エー・エスさん協力) 記録間違いを修正する為の裏仕掛け オリンピックのタイム計測と同様、万が一計測アプリが、何らかの原因でハングし、計測データがぶっ飛んでしまったら大変なので、競技結果はRDBに蓄積、競技状況表示と平行して、裏で色々と操作をする為に、コアのサービスはIIS上で動作するWebサービス、表示ソフトその他は、WebサービスをHTTP/SOAPでアクセスするという祖結合にし、それ+幾つかの工夫で拡張性・保守性を挙げています。また多彩でカッコいい表示を短期間で開発する為に、WPFでUIを作っています。使っている技術を列記します。 WPF(Windows Presentation Foundation) WCF(Windows Communication Foundation) SQL Server 2008 R2 EF(Entity Framework) IIS(Internet Information Server) MEF(Managed Extension Framework) Office ToolkitによるExcel拡張 .NET Frameworkを使ってC#によるプログラミング 動作推奨環境は Windows 7 Excel 2010 Visual Studio 2010 上位エディション(無償のExpress Editionでも可) システム構成は図のようになっています。 スイッチボックスハードウェアは、USBでPCに接続され、仮想COMポートでアプリと通信しています。ETロボコンの時間計測精度は0.1秒で、PCでは実時間保障が出来ないので、スイッチボックス内のカウンターで時間を計測し、PC側でその値を元に各種処理を行っています。 計測システム一式、使い方は、http://etrcrts.codeplex.com/ で公開しています。また、このサイトは、オープンソース開発用サイトで、このサイトを使って並行開発、障害管理、構成管理などのプロジェクト管理を行っている状況です。システム開発のボランティア募集中なので、やりたい方、ご連絡ください。IISで動いているWebサービスとRDBの部分のクラウド化なども進めているので、単にWin7アプリの開発だけでなく、Windows Phoneをはじめとするスマートフォン向けのビューワー、計測方法、競技状況記録方法改善などもあるので、是非。 より細かい部分の解説は以降のポストで。チャンピオンシップで行ったクラウド化(Azure)実験もね。

0

Socket Multicast 通信

@IT Monoistの記事、http://monoist.atmarkit.co.jp/mn/articles/1111/08/news002.html でも紹介した、SocketによるMulticast通信、実は私かなり嵌ってます。 Wi-Fi LANなどで、アドホックに接続されたデバイスノードに、とりあえずデータを送りつけてデータをシェアしたい、こういう状況は実は結構あるのではないかと思っています。Socketによるコネクションレスの通信UDPを使い、IGMP(Internet Group Management Protocol)という名前のプロトコルを使った通信を使うと、軽い情報を飛ばしあってデータを共有しあう通信を実現することができます。IGMPの詳細に興味のある方は、http://technet.microsoft.com/ja-jp/library/cc787925(WS.10).aspx を参照してください。IGMPは最近のWi-Fiルーターだったらほとんどサポートしているようで、LANに、Wi-Fi接続できるデバイスであれば活用が可能です。 IGMPを使うには、以下の手順を踏みます。 UDPでSocket接続 グループ通信用に予め決められた、IPアドレス、ポートでグループにJoin Socketへのデータ送信→グループにJoinしているデバイスノードにデータが送信され受信 手順も凄くシンプル。私はセキュリティの専門家ではないので、断言は出来ませんが、 通信がLANで閉じている グループにJoinしなければデータの送受信は出来ない 送信する相手そのものを明示的には指定できない という特徴を持っているので、手軽で軽くシンプルで比較的安全な通信方法といえるのではないかと(まちがっていたらごめんなさい)思っています。 例えば、環境センサー付デバイスがネットワークに接続され、環境データを定期的に観測して、ネットにマルチキャストする、送られたデータは、それを使いたいデバイスがグループにJoinして、受信し、それぞれのアプリケーション、サービスで活用、とか、ソーシャルネットのより閉じたミニコミュニティ通信で活用する、とか、クイズへの早押し通知や、何かの投票状況集め、店舗内での特売情報受信とか、まぁ色々と応用が考えられるかなと。 .NET Frameworkでは、この通信を使う為のクラスが用意されていて、それを使えば、比較的簡単にGroup Multicast通信を取り込むことが出来ます。残念ながら、Full .NET、Windows Phone 7向け、.NET Micro Frameworkで全く同じクラスは用意されていません。各フレームワークについては、以下のような感じでクラスが用意されています。 フレームワーク クラス名 備考 Full .NET Socket、または、UdpClient Desktopなど Sivlerlight UdpAnySourceMulticastClient Windows Phone、RIA、DesktopのOOBアプリ .NET Micro Framework Socket ちょっと面倒 表のように、同じクラスではないですが、それぞれ使えるクラスを使ってUDP Multicastグループ通信を実装することが可能です。 それぞれの場合の使い方は、今後のブログポストで。

0

VC++デベロッパーセンター更新しました。

MSDN Flashでもお知らせしましたが、VC++デベロッパーセンターを更新しました。http://msdn.microsoft.com/visualc今回は、各種アンケートや利用されているユーザーの皆さんのご意見を下に、VC++に関する技術情報へのアクセスを、目的や用途に応じてより早く効率的に辿り着けるよう、構成を大幅に整理・変更し、入門レベルの方へのVC++の紹介や、既にお使いの開発者が再度知識を確認できるような情報も付け加えました。ページの上から下まで、情報満載なので、このページをブラウザで開いたら、上から下まで、左端から右端まで眺めて、興味のある情報は即座にクリックしてみてくださいね。 真ん中のメインストリートの見所を幾つか紹介すると、 「連載!とことんVC++」ここをクリックすると、VC++のネイティブ開発で必ず使うCOMやATLに関する基本技術情報を再確認するコンテンツが用意されています。COMを初めとする基礎ライブラリー・フレームワークに関する書籍は昔は沢山あったのですが、今は入手が困難になってしまっています。中級以上の技術者、昔使ってたなという技術者の皆さんがもう一度振り返って見たい、初学者の入門としてご活用ください。単なる解説だけでなく、各回で説明された内容を直ぐに動かして確認できるよう、CodeRecipeのサンプルコードも用意されています。 「アプリケーション別」カテゴリVC++を使った開発の多くは、Windows上のアプリケーション開発か、様々な組込みデバイス向けソフトウェア開発です。これらの開発では、単にVC++の文法を知っているだけでは不十分なのはお判りですね。このカテゴリーの2つのリンクから「Windowsデベロッパーセンター」と「組込み開発者向け技術情報」のページにダイレクトに飛ぶ事が出来ます。加えて「Windowsデベロッパーセンター」には新たにWin32 APIとCOMライブラリのAPIリスト http://msdn.microsoft.com/ja-jp/windows/hh240557 も新たに用意しました。「関数名なんだっけ」、とか、「あのインターフェイス名なんだっけ」という時には是非ご活用ください。 「テクノロジ別」カテゴリここでは、VC++でソフトウェアを開発するときに必須のWin32、COM、MFC、ATLといったライブラリ・フレームワーク、VC++マネージのプログラミングで必要なVC++/CLIに関する技術情報へのリンクが用意されています。これらのテクノロジを詳しく知りたい場合はこちらをクリック!! 「目的別」カテゴリこのカテゴリでは、開発活動の様々な局面で必要になるリンクを用意しました。これまでも使用頻度の高いダウンロードへのリンク、学習リソースやサンプルコードへのリンク、プロフェッショナルが集うフォーラムへのリンク、Visual Studio IDEを更に便利に使いやすくする様々な拡張が用意されています。他にも、「そもそもVC++っていう技術体系って何?」という質問にお答えする「これからはじめる」というリンクも用意しています。 他にも、左側にはVisual Studio 2010に関するリンクが勢揃い。右側には、ハイライトやMSDN MagazinのVC++関連記事、VC++がサポートするC/C++の言語標準、VC++/CLIの言語標準までを用意しました。 皆さんのVC++による開発活動で是非ご活用ください!! 「こんな情報も欲しいんだよね」といったフィードバックもお待ちしています。

0

脳波で地球を廻せ、のソースコード公開

昨年、ビデオストリーミングや、HowToで概要を披露した、Neuroskyさんの脳波センサーを使ったデモ(集中すると地球がぐりぐり回るやつ)のソースコードを公開しました。 http://cid-e4da7a95eedb6b89.office.live.com/self.aspx/SampleCode/WpfAppBrainEarth.zip Windows API Code Packのバージョンは1.0(ご勘弁、時間が無く)です。 ZIPファイルを解凍して、WpfAppBrainEarthフォルダーに並ぶようにWindowsAPICodePack.V1.0フォルダー以下一式をコピーしてから、WpfAppBrainEarthのWpfAppBrainEarth.slnをVisual Studio 2010で開いてください。コードの解説は、 http://code.msdn.microsoft.com/CXAML-Brainwave-Sensor-WPF-0720da19 http://code.msdn.microsoft.com/CXAML-Brainwave-Sensor-WPF-75c97a2c を参照してください。 脳波センサーのセットアップは、 http://neurosky.jp/thinkgearsensor.html を参照してね。ではLet’s Turn The Earth!!  

0

ENEX2011出展

久しぶりのポストです。 昨日(2月8日)から、国際展示場で開催中のENEX2011に出展しています。出展内容は、昨年のTechDays2010のキーノートで披露した、ドライヤーの・・・もとい、使用電力量の見える化と、小型組込み機器(家電や制御機器のパネル、ネットワークセンサーなど)のクラウド連携です。 富士ソフト(株)、Digiインターナショナル(株)、(株)デバイスドライバーズ、日本マイクロソフト(株)の4社共同出展です。マイクロソフトの、Windows 7 Sensor & Location Platform、Windows Azure、Silverlight、Windows Comunication Foundation、.NET Micro Frameworkをプラットフォームとして、Digi インターナショナル(株)の、ZigBee無線でPCとつながる電源タップ、富士ソフト(株)のSensor & Location Platform対応デバイスドライバー、Windows Azure上のホスティングサービス&SilverlightのRIAによるテーブルタップで計測した電力を可視化するアプリケーションの展示です。基本構成は、昨年のTechDays2010と同じですが、5個のテーブルタップが同時計測可能になり、かつ、複数の地点で計測した値が表示されるようになるなど、格段にパワーアップしています。 また、(株)デバイスドライバーズが代理店の.NET Micro Framework対応小型デバイス、FezCobraによる、Azure連携の展示や、電池がないのにスイッチを押すと、FezCobraにスイッチのOnOff状況が表示されるという、ルフィーなら「あぁ不思議スイッチだな」って言いそうな展示も行っています。※このデバイスは普段は若松通商のアキバNET館に展示されています。 展示場には、このデバイスがネットにつながってRESTやSOAPで通信できたら、いろんな応用が即できそうだという凄い省エネ関連機器があふれています。IT系企業の皆さんも是非、会場に来て夢を膨らませてもらえればと思います。省エネやスマートエネルギー、スマートグリッドのテクノロジーは、まだまだ独自の閉じた製品が多いですね。昨日の講演でもお話しましたが、今後、ITシステムで標準に使われているRESTやSOAP、WebサービスといったテクノロジーでITシステムとの連携が図れる形にして様々な産業と連携が進むことを切に望みます。 展示は明日(2011/2/10)までです。興味のある方は是非会場までお越しください。

0

Windows 7 Sensor APIのCOM Wrapper

このポスト、書いて公開するのをすっかり忘れていることに、今気がつきました。既にNESLが出てしまったので、このままお蔵入りさせようかとも思ったのですが、考えてみたらガジェットでセンサーAPI使う時、これの類がないと駄目じゃん。ってことで、3ヶ月遅れぐらいで公開です。以下、当時のままポストします。 お疲れ様です。 結構前からTwitterでつぶやいたり、PDC TokyoやTech Fieldersセミナーのネタでちら見せしてきましたが、COM Wrapper作ってCodePlexに登録してあります。これ使うと、Windows 7 Sensor & Location Platformのセンサーのほうの機能が、SilverlightのOOBで使えたり、デスクトップガジェットで利用できたりするんですね。 http://sensor7dotnet.codeplex.com まぁ、久々のNative系プログラミングだったので、結構しんどかったですが、もしよければ開発に参加してくださいまっせ。 で、使い方ですが、ビルドして出来上がったやつ、SensorCOMW.exe、を引数 /RegServer 付けてコマンドラインでまずは実行してください。これで、このWrapperがレジストリに登録されますんで。そして、Silverlightのアプリケーション作って、以下のような感じで使う訳っす。 using System.Runtime.InteropServices.Automation;…    if (Application.Current.IsRunningOutOfBrowser){ // OOBで実行していることを確認        // センサーCOM Wrapperを取り出す。取り出したオブジェクトはSensorManagerに相当        dynamic sensorcom = AutomationFactory.CreateObject(“Sensr7COMW.DispSensorManager”);        dynamic sensors = sensorcom.GetAllSensors(); // すべてのセンサーを取得        dynamic aSensor = sensors.GetAt(0); // センサーの取出し        // TypeIdを指定して特定の種別のセンサーを取り出す。        dynamic lightSensor = sensorcom.GetSensorsByTypeId(“{97F115C8-599A-…”});  後は、コードを見てお試しください。 …てな感じで。ガジェットで使う方法は、また別途ポストしますね。

0

SONY VAIO P搭載のSensor & Location Platform対応センサー

今年(2010)に発売されたSONY VAIO P、実は、Windows 7 Sensor & Location Platformに対応した方位センサーを搭載しています。 コントロールパネルでセンサーデバイスを確認すると、 Windows API Code Packを使って、以下の様なプログラムを書いて、どんなセンサーが搭載されているか調べてみます。 using Microsoft.WindowsAPICodePack.Sensors; …     foreach (var s in SensorManager.GetAllSensors())     {         writer.WriteLine(“Sensor:TypeId={0}, FriendlyName={1}”, s.TypeId, s.FriendlyName);         writer.WriteLine(“Supported Properties:”);         foreach (var p in s.GetSupportedProperties())         {             writer.WriteLine(”    Property:FormatId={0}, PropertyId={1}”, p.FormatId, p.PropertyId);         }     } このプログラムを実行すると、VAIO-Pは、以下のセンサーを搭載していることがわかります。 Sensor:TypeId=76b5ce0d-1d77-414d-93a1-e127f40bdf6e, Magnetic Sensor Supported…

0