お手軽なBluetoothでいろんなデバイスと繋いで遊べるSensorTagをUWPで使う方法です。公式は、StoreAppまでしか対応していませんが、UWPでも動きました。ということで動かし方のメモです。
Bluetoothでペアリング
SensorTagの横のボタンを押すとペアリングできます。ペアリング時に入力するコードは0000です。(忘れてた)
NuGetの導入
NuGetでSensorTagで検索すると出てきます。
Package.appxmanifestの編集
ここがStoreAppと変わってました。以下のドキュメントによるとm2名前空間を追加して…となっていますが、m2名前空間がいりませんでした。
TI SensorTag Librarysensortag.codeplex.com
Package.appxmanifestのCapabilitiesの下に以下の記述を追加するだけでOKです。
<DeviceCapability Name="bluetooth.genericAttributeProfile" />
コードを書く
あとは、StoreAppのころと変わりありません。例えばページロードで温度のセンサーを作成して、画面に置いたtextBlockに表示するなら以下のようなコードになります。
private async void Page_Loaded(object sender, RoutedEventArgs e) { this.tempSensor = new IRTemperatureSensor(); this.tempSensor.SensorValueChanged += this.TemSensorValueChanged; try { await this.tempSensor.Initialize(); await this.tempSensor.EnableSensor(); await this.tempSensor.EnableNotifications(); } catch(Exception ex) { Debug.WriteLine("Dispose: " + ex); this.tempSensor?.Dispose(); } } private async void TemSensorValueChanged(object sender, SensorValueChangedEventArgs e) { var value = IRTemperatureSensor.CalculateAmbientTemperature(e.RawData, TemperatureScale.Celsius); await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { this.textBlock.Text = value + "℃ at " + e.Timestamp.ToString("yyyy-MM-ddTHH:mm:ss.fffffzzz"); }); }
お手軽ですね。