質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

15087閲覧

C#フォームアプリでBluetoothのGATT通信を行う方法

yusuke2721

総合スコア15

Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

2クリップ

投稿2017/02/17 01:29

C#

1using System; 2using System.Threading.Tasks; 3using System.Runtime.InteropServices.WindowsRuntime; 4using Windows.Devices.Enumeration; 5using Windows.Devices.Bluetooth.GenericAttributeProfile; 6 7namespace TestGATT 8{ 9 static class Program 10 { 11 static void Main(string[] args) 12 { 13 communicate().Wait(); 14 } 15 static void callback(GattCharacteristic sender, GattValueChangedEventArgs eventArgs) 16 { 17 Console.Write(System.Text.Encoding.ASCII.GetString(eventArgs.CharacteristicValue.ToArray())); 18 } 19 static async Task communicate() 20 { 21 var selector = GattDeviceService.GetDeviceSelectorFromUuid(ToolboxIdentifications.GattServiceUuids.Nordic_UART); 22 var collection = await DeviceInformation.FindAllAsync(selector); 23 foreach (DeviceInformation info in collection) 24 { 25 Console.WriteLine(string.Format("Name={0} IsEnabled={1}", info.Name, info.IsEnabled)); 26 27 var service = await GattDeviceService.FromIdAsync(info.Id); 28 29 var tx_characteristics = service.GetCharacteristics(ToolboxIdentifications.GattCharacteristicsUuid.TX)[0]; 30 var rx_characteristics = service.GetCharacteristics(ToolboxIdentifications.GattCharacteristicsUuid.RX)[0]; 31 rx_characteristics.ValueChanged += callback; 32 await rx_characteristics.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify); 33 while (true) 34 { 35 var input = Console.ReadLine(); 36 var result = await tx_characteristics.WriteValueAsync(System.Text.Encoding.ASCII.GetBytes(input + "\n").AsBuffer(), GattWriteOption.WriteWithoutResponse); 37 } 38 } 39 } 40 } 41} 42

上記のようなサンプルコードをフォームアプリに書き写したのですが、
「型'IBuffer'は、参照されていないアセンブリに定義されています。」、
「型'IAsyncAction'は、参照されていないアセンブリに定義されています。」
などのエラーの対処方法が分からず、苦慮しています。

参照設定に問題があるのでしょうか。
初歩的で申し訳ございませんが、ご教示いただけませんでしょうか。
よろしくお願いいたします。

イメージ説明

イメージ説明説明](85743b47349e5f0830cb190126f28575.png)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

参照が不足しているようです。
下記サイトを参考に、参照設定を追加してみてください。
自分もこれで解決しました。

https://stackoverflow.com/questions/49071899/uwp-brokered-windows-runtime-component-build-error

投稿2019/06/06 01:12

iclean

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんにちは。

WindowsRuntimeのAPIを.NETから利用する場合は参照追加などが必要ですが、
それは既にお済でしょうか。
以下などを参考に設定してみてください。

https://blogs.msdn.microsoft.com/lucian/2015/10/23/how-to-call-uwp-apis-from-a-desktop-vbc-app/

投稿2017/02/17 15:49

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問