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

今年(2010)に発売されたSONY VAIO P、実は、Windows 7 Sensor & Location Platformに対応した方位センサーを搭載しています。

コントロールパネルでセンサーデバイスを確認すると、

SensorDevice

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 Properties:
    Property:FormatId=db5e0cf2-cf1f-4c18-b46c-d86011d62150, PropertyId=2
    Property:FormatId=1637d8a2-4248-4275-865d-558de84aedfd, PropertyId=11
    Property:FormatId=1637d8a2-4248-4275-865d-558de84aedfd, PropertyId=12

以上のIdをもとに、以下のページ
https://msdn.microsoft.com/en-us/library/dd318969(v=VS.85).aspx
で、照らし合わせると、センサー種別は、

SENSOR_TYPE_COMPASS_3D    ※カテゴリーは、SENSOR_CATEGORY_ORIENTATION

プロパティは、

FormatId=db5e0cf2-cf1f-4c18-b46c-d86011d62150, PropertyId=2
SENSOR_DATA_TYPE_TIMESTAMP
    計測した時間、データ型はVT_FILETIME

FormatId=1637d8a2-4248-4275-865d-558de84aedfd
PropertyId=11は、
SENSOR_DATA_TYPE_MAGNETIC_HEADING_COMPENSATED_MAGNETIC_NORTH_DEGREES
    磁極の北極に対する角度、データ型はVT_R8
PropertyId=12は、
SENSOR_DATA_TYPE_MAGNETIC_HEADING_COMPENSATED_TRUE_NORTH_DEGREES
    本当の北極に対する角度、データ型はVT_R8

であることがわかります。

あとは、
https://msdn.microsoft.com/ja-jp/windows/ff436242.aspx
https://msdn.microsoft.com/ja-jp/windows/ff512470.aspx
https://msdn.microsoft.com/ja-jp/windows/ff432760.aspx
辺りを参考に、プログラムを書けば、方位情報をアプリケーション、ソリューションに取り入れることができます。

皆さん、ぜひ、お試しください。そして素敵なアプリ、ソリューションが出来たら、お知らせくださいね。