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

.NET Micro FrameworkでWeb ServiceのREST APIにアクセスする方法

はい、表題のやり方を説明します。 .NET Micro Frameworkには、WPFやSilverlightアプリケーション向けの様なWCFサービス参照追加機能はありません。けど大丈夫。RESTのAPIの場合、URIを指定してHTTPでアクセスして、ATOMならXML、JSONならJSON形式でリゾルブすれば、いいですよね。.それらは、通常のPCクライアントアプリでも、HttpWebRequestとHttpWebResponseとか使えば簡単にアクセスできちゃうわけです。で、.NET Micro Frameworkには、これらのクラスがちゃんと用意されているので、それを使えば簡単にREST形式のWeb Serviceにアクセスできちゃいます。更に、今は、Azure使えばすぐREST Webサービス稼働できるし、FezMini+ネットワークボード買っちゃえばすぐ試せるので、ほんと皆さん試してみてね。※ちなみに、SOAPの場合は、こちらも基本必要なライブラリ揃っているので、SOAPプロトコルの概要知ってればそれほど難しくない さて、ではやり方を簡単に説明しておきましょう。 まず、.NET Micro Frameworkのアプリケーションプロジェクトを一つ作ります。アッセンブリー参照を追加します。アッセンブリーは、c:\Program Files\Microsoft .NET Micro Framework\v4.1\Assembly\le に入っています。 System.IO System.Http System.Xml の3つのアッセンブリーです。 後は、以下のようなコードを書けば、出来上がり  using System.IO;using System.Net;using System.Xml;…    Uri serviceUri = new Uri(“http://…/SensedDataSet.svc”);    HttpWebRequest req = HttpWebRequest.Create(serviceUri) as HttpWebRequest;    try {        HttpWebResponse response = req.GetResponse();        using (var stream = response.GetStream()) {           XmlReader xmlReader = XmlReader.Create(stream);           while (xmlReader.Read()){               switch (xmlReader.NodeType)…

0

.NET Micro Framework 4.1 の入手先

ついこの間、.NET Micro Framework 4.1のSDKとPKを再度ダウンロードしようとして、あれ、たどり着けないじゃん…という状況でした。正規のダウンロードページからは4.0しかダウンロードできないようなので、ここでURLを紹介しておきます。 4.1のSDK、PKを素早く入手したい方、http://blogs.msdn.com/b/netmfteam/archive/2010/07/19/netmf-versions-4-1-released-to-web.aspxのリンクをたどってください。このサイト、.NET MFの本社チームのブログサイトです。Windows Phone 7との連携とか結構面白いネタが投稿されているので、.NET MFフリークは是非ご一読を。コミュニティ開発によるコントリビューションライブラリも徐々に始まっている見たいっす。PK4.1は、これまでほとんどなかったポーティングに関するドキュメントが漸く豊富に出てきました。PALの関数とか、ポーティング作業からデプロイまでの作業が事細かに書かれています。これまで、ポーティングしようとして二の足を踏んでたみなさん、今がはじめ時。

0

Sync Framework 4.0 2010 October CTP Reflesh

なんやかんやで投稿がすごく間が空いてしまいましたが、久々の投稿です。 先週行われたPDC TokyoのUX4に来ていただいた皆様、ありがとうございました。セッションの中で紹介したSync Framework 4.0 SDKに関する補足です。現在、これはMS Connectからの提供になっています。http://www.microsoft.com/downloads/en/details.aspx?FamilyID=afd89099-d589-423c-9762-78096aa95ac2&displaylang=enのページの、Download Instructions.mht からたどって入手してください。 10月リリースのものは、同期するデータベースに関するコンフィグレーション(XMLファイル)を人手で記述する必要があり、間違いやすく、面倒くさかったのですが、SyncSvcUtilHelperがついて本当に楽に間違いなくコンフィグファイルを作成することができるようになりました。SDKに用意されているウォークスルーを試すのに、一時間とはかからないので是非実際に試してみてください。

0

ETロボコン2010関連情報 – お疲れ様でございます

夏から秋にかけて…組込みエンジニアにとってこの季節はETロボコンの季節です。 今年は、北海道、北陸、沖縄の3地区大会増と、ますます、盛り上がっていますね。私も、南九州地区大会を皮切りに、南関東大会、北陸大会、関西大会、東海大会と、計測システムのフォローでお邪魔しています。懇親会では学生さん向けにDreamSparkを使うための認証コードを配っていますが、学生の皆さんが嬉しそうにもらってくれる姿は、非常に嬉しいですね。是非実際にダウンロードして活用してください。東海大会では、デジタルセンセーション(株)さんによるSilverlight+IIS Ream-time Streamingによる、実況ストリーミングにも出会い、うれしい限りです。 さて、ずいぶん前にETロボコン参加者向けに書いたブログ投稿、大分時間がたって散発的な感じなので、以下のリストにまとめておきますね。チャンピオンシップに参加されるチームの皆さん、来年リベンジするぞという皆さん是非、見てくださいね。 Visual Studio 2010で、NXTのコードを開発する方法 役立ちそうなVisual Studio 2010の新機能 記述したUMLモデルからいろんなものを生成する方法 ETロボコンのSoftware Factoryを作ってみよう DSL Toolkitで自分独自のモデル言語を作ろう(たとえば走行戦略エディターとか) 最後の二つはVS2005で説明していますが、VS2010でも同様なことは可能です。ここで説明している内容は、私もモデル審査員を務めているMDDロボットチャレンジでも活用できるので、そちらのコンテスト参加者も参考にしてみてくださいませ。 他に、ETロボコン向けに計測システムを提供しているわけですが、こちらは、元々ボランティアを集めて大勢で開発していきたいと思っているので、やってみようかな、とか、コードだけでも見てみたいという方は、embedded-george@live.jp までメールをください。ちなみに今は、酒田sAsさん、東海大の学生さんが参加を表明してくれています。使っているテクノロジーは、 WPF: Windows Presentation Foundation WCF: Windows Communication Foundadation Entity Framework MEF: Managed Extension Framework Office InteropによるExcel拡張 Silverlight その他 です。基盤として Windows 7 SQL Server 2008 Excel 2010 を使ってます。 12月のチャンピオンシップに向けて、見栄えの改造や機能の追加をやっていく予定なので、参加してくれるとありがたし。計測システムについては、別途、投稿の予定です(昔もそんなことを書いたような気がするが・・・)計測システム…Azureやリアルタイムストリームと連携して、競技状況とか配信したいんだよね…

0

Windows Embedded Standard 7を使ってみよう!

Windows Embedded Standard 7をご存知ですか?つい最近リリースされた、Windows 7ベースの組込み向けOSです。 POS端末やKiosk端末、ATM、FA機器、医療機器、ゲームセンターのゲーム機器等、WindowsベースのOSは様々な組込み機器で使われています。これら組込み機器は、通常のPCとは異なり、特定用途向けの機能だけを搭載しています。なので、通常のPCの様に、色々なアプリケーションを動かすための仕組みは必要なく、特定用途に必要なOS基本機能や、ミドルウェア、ドライバーがあれば十分です。不必要なモジュールが搭載されていると、HWスペックが上がり機器のコストが高くなったり、パフォーマンスが落ちたり、不用意にアプリケーションを動かしてセキュリティホールになったりします。ですから組込み向けのWindowsは、機能グループごとにコンポーネント化されていて、必要なコンポーネントのみで、システムを構成することが可能です。また不意の電源断の誤動作への対応の仕組みや早く起動するための仕組みが追加されています。 これまではWindows XPベースの組込みOS、Windows Embedded Standard 2009(より昔はWindows XP Embedded)が提供されていましたが、Windows Embedded Standard 7(以下WES 7と略します)がその次のバージョンになります。 基本Windows 7ベースなので、WPF/Silverlight、WCF、MFC等通常のWindows 7で動くアプリはほとんどそのまま動かすことができます。勿論私が多くポストしているSensor & Location Platformも使うことができます。 またWindows 7に対応している豊富な周辺デバイス向けのデバイスドライバーも同様に利用が可能です。 WES 7は、180日間無償で評価を行うことができます。以下、その利用方法を解説します。 1.評価版WES7を入手する 評価版は、http://www.microsoft.com/windowsembedded/ja-jp/products/westandard/default.mspx にアクセスし、右側の“Windows Embedded Standard 7試用版を今すぐダウンロード”をクリックします。ここでLive IDの認証を要求されるので、予めLive IDを登録しておくか、お持ちのLive IDをお使いください。必要情報を記載していくと、最後にダウンロードサイトに行きつきます。必要情報の登録が終わると、登録情報を記載したメールが送信されます。 ダウンロードサイトから、CPUのアーキテクチャに合わせたファイル群をダウンロードします。 32bitの場合:Standard_7_32bit\Standard_7_32bitで始まる名前のファイル群 64bitの場合:Standard_7_64bit\Standard_7_64bitで始まる名前のファイル群 必要なファイルを全部ダウンロードしたら、全てのファイルを同じフォルダーに格納してexe形式のファイルを実行します。するとディスクイメージが一つ作成されます。このファイルをDVDに焼いて準備完了です。 ※他にToolkitの為の一連のファイル群がありますが、これはまた、機会があれば別の場所で説明しますね。こちらは、同様にファイル群をダウンロードして、Exeファイルを実行するとディスクイメージが出来上がるので、それを開発用PCにインストールします。興味のある方はお試しくださいませ。 2.デバイスにWES7をインストールする 手ごろなデバイスを入手します。といってもWindowsベースの組込み機器を開発している企業は除いて、中々その辺には手ごろなデバイスはないので、あまり使わないPCか、Virtual PCを使えばよいでしょう。以下PCにインストールする方法を説明します。 先ず、インストールするPCをOFFしてDVDドライブに先ほど焼いたDVDをセットし、電源をONします。インストールするPCのBIOS設定は、DVD-DriveからのBoot優先にしておきましょう。すると、通常のPCへのWindows 7インストールと殆ど同じのインストール実行が始まります。 最初に、Digital SignalgeやIndustry Device、Multimedia Device等のTemplateの選択画面が表示されるので、適当なものを選びます。そのあとは、通常のインストールと同じです。 最後に、プロダクトキーを入力する画面が表示されるので、ダウンロードの際送られてきたメールに書かれている評価用プロダクトキーを入力します。 これでおしまい、That’s Allです。インストールされたファイルの総量を見ると、通常のWindows 7よりずいぶん小さいことがお分かりいただけるでしょう。 3.デバイスに必要なドライバー、アプリケーションをインストールする…

0

.NET Micro Framework 4.1を実デバイスで使ってみよう

以前このブログで紹介した.NET Micro Frameworkの4.1ですが、既に正式版SDKがリリースされ、リファレンスボードも4.1 SDK対応の各デバイス向けSDKがリリースされだしています。 このポストでは、Device Sloutions社のTahoe-IIボードを例に、4.0以前のSDK対応ボードとアプリの4.1へのアップグレードについて紹介します。 ※もちろん、.NET Micro Framework 4.1 SDKは実際のデバイスがなくても、Visual Studio 2010のEmulatorで実行可能ですし、4.0のアプリは、4.1をインストールした状態で再ビルドすれば動作するので、デバイスなしでもお試しあれ。 まずは、.NET Micro FrameworkのV4.1ですが、ちょっとわかりにくいところにあるので、ダウンロードのURLを紹介します。場所は、http://blogs.msdn.com/b/netmfteam/archive/2010/07/19/netmf-versions-4-1-released-to-web.aspx を開いて、Parts段落の、.NET Micro Framework SDK 4.1 をクリックしてください。ダウンロードが開始されます。 ダウンロードしたZIPファイルを解凍して、MSIファイルをダブルクリックすればインストールが開始されます。折角なのでフルセットをインストールしておきましょう。 ※4.1をインストールするとVisual Studio 2008の.NET Micro Frameworkはアンインストールされるようなので、ご注意ください。 インストールが終われば、Visual Studio 2010を起動して、新規プロジェクト作成で、以下のテンプレートを使えば、開発を始めることができます。更にサンプルも豊富に入っているので、試してみるのが早道です。 さて、私はDevice Solutions社のTahoe-IIと、FezMiniを持っています。やはり組込み系は実機で動かした方が、楽しいので、早速Tahoe-IIで動かしてみましょう。 …とその前に、実際のデバイスはセンサーやLCD、ネットワーク、各種IO等各社各様なので、各デバイス用のSDKをインストールやボード上のファームウェアをアップデートする必要があります。先ずは、Device Solutions社のダウンロードページhttp://devicesolutions.net/Support/Downloads.aspxを開いて以下の必要なソフトをダウンロードします。 Device Solutions SDK V4.1 TAHOEII_FirmwareUpdate_4.1.40378.64123 先ずは、DeviceSolutionsSDK4.1.msiを実行して、Tahoe-II用のSDKをインストールします。これにて、TahoeIIに搭載されている加速度センサー等を使うライブラリがインストールされます。 そして、ボードのファームウェアをアップデートします。ダウンロードしたZIPファイルを解凍し、ボードをPCにUSB接続して、回答したMeridianFirmwareDeploy.exeを実行します。最初のWelcomeページのNextをクリックし、Lisence Agreementに承諾すると、接続されたデバイスがコンボボックスに表示されたページが表示されます。 Nextボタンをクリックして、ファームウェアアップデートが開始されます。完了が終わればアップデート終了です。簡単です。 さて、.NET Micro Framework SDKをインストールすると、ユーザーのドキュメントフォルダーに、.NET Micro Framework SDK 4.1\Samplesというディレクトリが作成されます。この中のSimpleWPFApplicationをVisual Studio 2010で開きます。そしてF5(デバッグ実行)すると、以下のエミュレータが表示されます。 Tahoe-IIデバイス上で実行するには、プロジェクトのプロパティを開き、.NET…

0

WEC 7でSilverlight for Windows Embeddedを使おう! – その2

さて、その1で作ったカスタムOSイメージをVirtual PC上で動かします。 3.カスタムOSを実行するためのVirtual PC OSのセットアップ Windows 7のVirtual PCを使うものとして話を進めます。Virtual PCのセットアップ方法は、http://www.microsoft.com/japan/windows/virtual-pc/ を参考にしてください。 WEC7をインストールすると、c:\WINCE700ディレクトリに各種ファイルがセットアップされます。その中のc:\WINCE700\platform\VirtualPC\VMに、カスタムOSをダウンロード&実行するためのブートローダーが入ったVHDファイルが格納されています。 Windows 7のスタート→Windows Virtual PC→Windows Virtual PCで、Virtual PCを起動します。そして、“仮想マシンの作成”をクリックします。 開いたダイアログで、“名前”を入力します。ここでは、“VCEPC”としています。“次へ”をクリックします。 “メモリとネットワークオプションを指定します”はそのままの設定で、“次へ”をクリックします。 次のページで、“既存の稼働ハードディスクを使用するを選択し、先ほど紹介したVMディレクトリに格納されている、“hd0_sample.vhd”を選択し、“次へ”をクリックします。※念のため、元の場所からコピーして、そちらを使用することをお勧めします。 これで、新しく“VCEPC”という名前のVirtual PCが作成されました。 スタート→Windows Virtual PC→Windows Virtual PCで、仮想マシンフォルダーを開き、今作成したVCEPCを選択して、上のメニューの“設定”をクリックします。左側のリストの“ネットワーク”をクリックし、ネットワークアダプタを有線LANのみに設定しなおします。 これで準備完了です。 その1で作成したOSソリューションをVisual Studio 2008で開きます。開いた状態で、メニューの“Target”→“Connectivity Options…”を選択します。そして、開いたダイアログの“New target device name:”に、“VCEPC”と入力し、“Add”ボタンをクリックします。 前のページの“Target Device:”を“VCEPC”に変更し、“Kernel Download:”の“Ethernet”コンボボックス横の“Settings”ボタンをクリックします。 すると、下図の様な、ダイアログが表示されます。この状態で、先ほど作成した、“VCEPC”を起動します。この仮想マシンは、起動後、DHCPでアドレスを取得し、ブート待ちであることをブロードキャストします。それを感知すると、下図のダイアログに、VCEPCが表示されます。   → オレンジ色で表示された領域をクリックし、“Apply”ボタンをクリックします。そして、“Target Device Connectivity Options”ダイアログの“Apply”ボタンをクリックします。 ※PC-00…の値は、各Virtual PC毎に変化します。図の値になる必要はありません。 ※この作業が終わったら、仮想マシンは一旦電源オフにしてください。 以上で、仮想マシン“VCEPC”に対するVisual Studio側の設定が終了しました。 では早速、カスタムOSをバーチャルマシンで起動してみましょう。 先ず、Visual Studioメニューの“Target→Add Device”を選択します。…

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

WEC 7でSilverlight for Windows Embeddedを使おう! – その1

折角、WEC 7(Windows Embedded Compact 7)のCTPが公開されているので、この小型機器向け最新Real Time OSのWEC 7を使って、Silverlight for Windows Embeddedを使ったUX開発を、比較的簡単に試す方法をご紹介します。 ※TechEd 2010のT7-403セッション受講に向けた事前準備としても是非お試しください。 トライするには以下のツールが必要です。 Visual Studio 2008 SP1 Expression Blend 3 ※残念ながらVSもExpressionも最新版ではありません。 以下、この二つのツールがインストールされている事を前提に話を進めます。 全体の作業の流れは、 WEC 7のインストール Virtual PC上で実行するカスタムOS作成 カスタムOSを実行するためのVirtual PC OSのセットアップ Silverlight for Windows EmbeddedのUIアプリ作成 カスタムOS上での実行 です。このポストでは、1.~2 .までを説明します。 1.WEC 7のインストール まず、WEC 7 CTPのインストールを行います。 WEC 7 CTP版は、https://connect.microsoft.com/WindowsEmbeddedCompact にアクセス(Live IDが必要です)し、左側の“ダウンロード”をクリックします。開いたページの表のタイトル欄で“Windows Embedded Compact 7 Global Community Technology Preview”をクリックします。開いたページの6つのファイルを全てダウンロードし、Windows_Embedded_Compact7_GTP_2010.zipを解凍します。なおこのZIPファイルは分割形式になっているので、WinRARやWinZipの最新版等で解凍する必要があります。…

0