Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bluetooth で Go! Bar Windows 8 in 名古屋 with 8.1 けきょ( Kouji )

Similar presentations


Presentation on theme: "Bluetooth で Go! Bar Windows 8 in 名古屋 with 8.1 けきょ( Kouji )"— Presentation transcript:

1 Bluetooth で Go! Bar Windows 8 in 名古屋 with 8.1 けきょ( Kouji Matsui @kekyo2 )

2 自己紹介  けきょ @kekyo2 (あまり tweet してません)  会社やってます  「 Micoci 」と「まどべんよっかいち」  主に Windows 。 C#, C++/CLI, ATL, C++0x, x86/x64 アセンブラ, WDM, Azure, TFS, OpenCV, Geo, JNI, 鯖管理, MCP 少々, 自作 PC, 昔マイコン, 複式簿記経理  アプリケーションフレームワーク設計・アーキテクトが仕事の主体。 最近は WPF を使った MVVM に足をツッコミ中  けきょ @kekyo2 (あまり tweet してません)  会社やってます  「 Micoci 」と「まどべんよっかいち」  主に Windows 。 C#, C++/CLI, ATL, C++0x, x86/x64 アセンブラ, WDM, Azure, TFS, OpenCV, Geo, JNI, 鯖管理, MCP 少々, 自作 PC, 昔マイコン, 複式簿記経理  アプリケーションフレームワーク設計・アーキテクトが仕事の主体。 最近は WPF を使った MVVM に足をツッコミ中

3 Windows 8 と言えば …  Bluetooth 4.0 対応  で、 4.0 で何が追加されたの?  Bluetooth 4.0 対応  で、 4.0 で何が追加されたの?

4 Bluetooth 4.0 って?  「 Bluetooth 4.0 LE 」ですよ  「 Low Energy 」ですよ  別名、「 Bluetooth Smart 」ですよ  何か呼称がごちゃごちゃしてますが、 3.0 以前の規格と LE に互換性は無いです。 (大人の事情で 4.0 としたのかも?)  1.0 ~ 4.0 全部ひっくるめて使えるのが、 「 Bluetooth Smart Ready 」 です (レシーバーしかない、多分)  「 Bluetooth 4.0 LE 」ですよ  「 Low Energy 」ですよ  別名、「 Bluetooth Smart 」ですよ  何か呼称がごちゃごちゃしてますが、 3.0 以前の規格と LE に互換性は無いです。 (大人の事情で 4.0 としたのかも?)  1.0 ~ 4.0 全部ひっくるめて使えるのが、 「 Bluetooth Smart Ready 」 です (レシーバーしかない、多分)

5 Bluetooth 4.0 LE って?  コンシューマーブランド「 Bluetooth Smart 」  「超」低消費電力デバイス向けの規格 ボタン電池で半年~ 1 年  3.0 以前と互換性なし  プロファイルがいっぱい増えた  ライバルは、「 Zigbee 」「 ANT+ 」「 RFID 」か?  コンシューマーブランド「 Bluetooth Smart 」  「超」低消費電力デバイス向けの規格 ボタン電池で半年~ 1 年  3.0 以前と互換性なし  プロファイルがいっぱい増えた  ライバルは、「 Zigbee 」「 ANT+ 」「 RFID 」か?

6 Windows 8 との関係は?  Windows 8.0 で「 Bluetooth 4.0 」対応表明  しかし、一体何に対応したのか良く分からない (単に 4.0 プロトコルスタックを配布しただけ?)  API についての情報が皆無  そうこうしているうちに、 Windows 8.1 現わる!!  WinRT に名前空間が増えた!  Windows 8.0 で「 Bluetooth 4.0 」対応表明  しかし、一体何に対応したのか良く分からない (単に 4.0 プロトコルスタックを配布しただけ?)  API についての情報が皆無  そうこうしているうちに、 Windows 8.1 現わる!!  WinRT に名前空間が増えた!

7 Bluetooth API  Windows.Devices.Bluetooth  Windows.Devices.Bluetooth.GenericAttributeProfile  Windows.Devices.Bluetooth  Windows.Devices.Bluetooth.GenericAttributeProfile これぞ LE デバイス! GATT

8 公式サンプルコード  「 Bluetooth Generic Attribute Profile - Heart Rate Service 」 Demonstrates use of the Bluetooth Generic Attribute Profile (Gatt) Windows Runtime API to interact with a Bluetooth Gatt device which contains a Heart Rate Service. http://code.msdn.microsoft.com/windowsapps/Bluetooth-Generic-5a99ef95 汚いサンプルコード … (T_T) http://code.msdn.microsoft.com/windowsapps/Bluetooth-Generic-5a99ef95  「 Bluetooth Generic Attribute Profile - Heart Rate Service 」 Demonstrates use of the Bluetooth Generic Attribute Profile (Gatt) Windows Runtime API to interact with a Bluetooth Gatt device which contains a Heart Rate Service. http://code.msdn.microsoft.com/windowsapps/Bluetooth-Generic-5a99ef95 汚いサンプルコード … (T_T) http://code.msdn.microsoft.com/windowsapps/Bluetooth-Generic-5a99ef95

9 取りあえずやってみた  Bluetooth Smart デバイスが無ければ話にならない  幸い?ロードバイク乗りなので …  Wahoo FITNESS BLUE HR (心拍計) http://www.wahoofitness.com/devices/wahoo-blue-hr-heart-rate-strap.html#  レシーバーは PLANEX BT-MICRO4  Bluetooth Smart デバイスが無ければ話にならない  幸い?ロードバイク乗りなので …  Wahoo FITNESS BLUE HR (心拍計) http://www.wahoofitness.com/devices/wahoo-blue-hr-heart-rate-strap.html#  レシーバーは PLANEX BT-MICRO4

10 Demo (サンプルコード)

11 まあ …  サンプルコードを動かしただけでは面白くない  WinRT って、噂ではデスクトップからも呼び出せるらしいし  WPF から使えた方が、私的に面白いかも?  本当にデスクトップアプリケーションから、デバイスにアクセス出来るか?  サンプルコードを動かしただけでは面白くない  WinRT って、噂ではデスクトップからも呼び出せるらしいし  WPF から使えた方が、私的に面白いかも?  本当にデスクトップアプリケーションから、デバイスにアクセス出来るか?

12 API はどう使うの?  デスクトップアプリケーションから WinRT を使うには、 Bing って下さい 例: http://www.codeproject.com/Articles/457335/How-to-call-WinRT-APIs-from-NET- desktop-appshttp://www.codeproject.com/Articles/457335/How-to-call-WinRT-APIs-from-NET- desktop-apps  Windows 8.1 の場合は、「 TargetPlatformVersion 」を「 8.1 」にすること ( 8.0 では、新しい API は使えない)  Bluetooth API は Windows.winmd に含まれているので、追加のアセンブリは不要  デスクトップアプリケーションから WinRT を使うには、 Bing って下さい 例: http://www.codeproject.com/Articles/457335/How-to-call-WinRT-APIs-from-NET- desktop-appshttp://www.codeproject.com/Articles/457335/How-to-call-WinRT-APIs-from-NET- desktop-apps  Windows 8.1 の場合は、「 TargetPlatformVersion 」を「 8.1 」にすること ( 8.0 では、新しい API は使えない)  Bluetooth API は Windows.winmd に含まれているので、追加のアセンブリは不要

13 API はどう使うの?  デバイスセレクタの取得 var selector = GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.HeartRate);  デバイスの列挙 IEnumerable dis = await DeviceInformation.FindAllAsync(selector);  デバイスの初期化 var service = await GattDeviceService.FromIdAsync(deviceInformation.Id);  心拍情報のイベントをフック var characteristics = service.GetCharacteristics(GattCharacteristicUuids.HeartRateMeasurement); characteristics[0].ValueChanged += (sender, e) => { … };  デバイスセレクタの取得 var selector = GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.HeartRate);  デバイスの列挙 IEnumerable dis = await DeviceInformation.FindAllAsync(selector);  デバイスの初期化 var service = await GattDeviceService.FromIdAsync(deviceInformation.Id);  心拍情報のイベントをフック var characteristics = service.GetCharacteristics(GattCharacteristicUuids.HeartRateMeasurement); characteristics[0].ValueChanged += (sender, e) => { … }; 心拍計

14 イベントで心拍数が得られるんだ!(喜)  いやいや、得られるのは、ペイロードの「生」データ(バイト列)です 解析はプロトコルに合わせて独自に行う必要があります(爆) orz  プロトコルの情報は、 Bluetooth SIG で調べる必要があります https://developer.bluetooth.org/gatt/Pages/GATT-Specification-Documents.aspx (ペイロードの説明は全部文書で、ボックス図がないです。辛い … ) https://developer.bluetooth.org/gatt/Pages/GATT-Specification-Documents.aspx  とりあえず、心拍計については、サンプルコードのデコーダーが参考になるでしょう  いやいや、得られるのは、ペイロードの「生」データ(バイト列)です 解析はプロトコルに合わせて独自に行う必要があります(爆) orz  プロトコルの情報は、 Bluetooth SIG で調べる必要があります https://developer.bluetooth.org/gatt/Pages/GATT-Specification-Documents.aspx (ペイロードの説明は全部文書で、ボックス図がないです。辛い … ) https://developer.bluetooth.org/gatt/Pages/GATT-Specification-Documents.aspx  とりあえず、心拍計については、サンプルコードのデコーダーが参考になるでしょう

15 Demo ( WPF 版)

16 それでは、引き続きお楽しみ下さい  ありがとうございました


Download ppt "Bluetooth で Go! Bar Windows 8 in 名古屋 with 8.1 けきょ( Kouji )"

Similar presentations


Ads by Google