えムナウ Blog

えムナウ の なすがまま

目次

Blog 利用状況

ニュース


follow mnow at http://twitter.com


えムナウのプログラミングのページ

INETAJ

書庫

日記カテゴリ

ギャラリ

.net で Windows7 Sensor Platform API

C# Advent Calendar jp: 2010の記事を書かなきゃいけないということで、12/06分の記事として書いておく。

12/25まで参加者だけに楽しい思いをさせるのはやめていただきたいな、出来れば皆さんも後に続いてくれればと思う。

 

Windows7 になって Sensor Platform API というものがあり、C++ から簡単に呼び出せるようになっているが、最近話題のスレートPC にも3軸加速度センサーと照度センサーが付属しているものがある。

 一部の方にはなんてタイムリーなと思っていただける話題であるが、私としては実にがっかりした結果だった。

 

MSDN には WindowsR API Code Pack for MicrosoftR .NET Framework があり、.Net Framework でも Sensor Platform API が使えるようになっている。

 

たとえば、照度センサーの場合以下のようにする。

 

参照設定に「Microsoft.WindowsAPICodePack」「Microsoft.WindowsAPICodePack.Sensors」「Microsoft.WindowsAPICodePack.Shell」を追加しておく。

 

using Microsoft.WindowsAPICodePack.Sensors;

//
初期時にパーミッションが必要
SensorList<Sensor> sl = SensorManager.GetAllSensors();
SensorManager.RequestPermission( this.Handle, true, sl );

// AmbientLightSensor
の一覧を作る
SensorList<AmbientLightSensor> alsList = SensorManager.GetSensorsByTypeId<AmbientLightSensor>( );
foreach( AmbientLightSensor sensor in alsList )
{
    //
照度データを取得するならこれだけ
    sensor.TryUpdateData( );
    float current = sensor.CurrentLuminousIntensity.Intensity;
    //
適当に表示するとか

    //
イベントが必要ならイベントを登録する
   
sensor.AutoUpdateDataReport = true;
    sensor.DataReportChanged += new DataReportChangedEventHandler( DataReportChanged );
}

//
イベント
void DataReportChanged( Sensor sender, EventArgs e )
{
    AmbientLightSensor als = sender as AmbientLightSensor;
    //
別スレッドからイベントが来るのでInvoke
    BeginInvoke( new MethodInvoker( delegate {
        float current = als.CurrentLuminousIntensity.Intensity;
        } ) );
}

今回は ONKYO さんの TW217A5 を使用した。

照度センサーはデバイスドライバーにも登録されていてコントロールパネルにもセンサーの項目に出ているのできちんと取れる。

 

ただし、3軸加速度センサーのデータはとれない。

 

// Accelerometer3D の一覧を作る
SensorList<Accelerometer3D> acList = SensorManager.GetSensorsByTypeId<Accelerometer3D>( );

このリストの数が0になるのだ。

 

3軸加速度センサーはついていてWindowsの縦横切り替えに利用されているのだが、デバイスドライバーにも登録されていないしコントロールパネルのセンサーの項目に出てこない。

 

大変残念な結果になってしまった。

 

投稿日時 : 2010年12月6日 1:12

コメントを追加

# re: .net で Windows7 Sensor Platform API 2010/12/06 12:53 絵ムナウ

今回は Windows.Forms で確認しています。

# OPC Diary &raquo; Blog Archive &raquo; C# Advent Calendar jp: 2010 ?????? #adcjcs 2010/12/08 5:53 Pingback/TrackBack

OPC Diary &raquo; Blog Archive &raquo; C# Advent Calendar jp: 2010 ?????? #adcjcs

# OPC Diary &raquo; Blog Archive &raquo; C# Advent Calendar jp: 2010 ???????????? 2010/12/21 6:41 Pingback/TrackBack

OPC Diary &raquo; Blog Archive &raquo; C# Advent Calendar jp: 2010 ????????????

# OPC Diary &raquo; Blog Archive &raquo; C# Advent Calendar jp: 2010 ??????! ??????! #adcjcs 2010/12/25 20:50 Pingback/TrackBack

OPC Diary &raquo; Blog Archive &raquo; C# Advent Calendar jp: 2010 ??????! ??????! #adcjcs

# WPF/Silverlight/スレートPC 用のユーティリティやツール類 2011/05/01 14:09 えムナウ Blog

WPF/Silverlight/スレートPC 用のユーティリティやツール類

# Its such as you read my mind! You appear to know so much approximately this, such as you wrote the guide in it or something. I think that you can do with a few p.c. to force the message home a bit, however instead of that, that is magnificent blog. An ex 2017/11/18 11:34 Its such as you read my mind! You appear to know s

Its such as you read my mind! You appear to know so much approximately this, such as
you wrote the guide in it or something. I think that you can do with a few p.c.

to force the message home a bit, however instead of that, that is magnificent
blog. An excellent read. I'll definitely be back.

タイトル  
名前  
URL
コメント