スキップしてメイン コンテンツへ

 none
Surface ProでBLE通信ができない RRS feed

  • 質問

  • Surface ProでBluetooth LEを使用したWindowsアプリケーションの開発をしております。具体的には、機器を検索して機器からBLE通信によりデータを取得するUWP APIを使用したプログラムで、機器は弊社で開発したBLE対応機器で、文字列のコマンドを受信して、文字列を応答するものになります。
    WindowsアプリケーションのBLE通信は、GattCharacteristicに対して、
    ・GattClientCharacteristicConfigurationDescriptorValue.Indicateを設定
    した状態で、
    ・データの送信は、GattCharacteristicのWriteValueAsync(送信データ,GattWriteOption.WriteWithResponse)
    ・データの受信は、GattCharacteristicのValueChangedを購読
    という流れで送受信を行っています。
    ・ASUS T100TA(Windows10)
    ・DELL Venue 8 Pro(Wwindows10)
    では、正常に機器とのコマンド送受信ができるのですが、Surface Pro(Windows10)については、機器の発見(アドバタイズ)は完了するものの、機器の応答を受信することができません。Surface上で、BluetoothAdapter.IsLowEnergySupported, BluetoothAdapter.IsPeripheralRoleSupported
    というプロパティを確認したところ、いずれもtrueとなり、BLEアダプター自体はBLEに対応しているようです。機器側でコマンドの文字列を受信して応答を返しているところまでは確認できているのですが、Windowsアプリケーション側で購読したValueChangedイベントが駆動されない状況です。
    Surface ProはWindows10のタブレットとしてメジャーなので、なにか情報があるかと思いインターネット上の情報を漁ってみましたが、解決につながるような情報は見つけられませんでした。Surface ProでのBLE通信について情報をお持ちの方がいらっしゃいましたら、ご教示いただけると幸いです。

    *追記(2018/5/11)*

    試した端末のWindowsのバージョンについて補足です。

    ・Surface Pro(Windows10 バージョン1709)

    他の2つの端末については、検証時のバージョンを控えていないのですが、2016年の中頃のアップデートが適用されたものになります。

    *追記(2018/5/15)*
    DELL Venue 8 Proについて、Surface ProとWindowsバージョンを揃えて
    実施してみましたが、結果は同じでした。BLE通信の結果は各端末で次のようになります。
    ・Surface Pro(Windows10 Pro 64bit バージョン1709) -> NG
    ・Venue 8 Pro(Windows10 Home 32bit バージョン1709) -> OK
    ・ASUS T100TA(Windows10 Home 32bit バージョン1607) -> OK

    *追記(2018/6/22)*
    解決しました。
    Surface Proに(バージョン1803)を適用すると購読したイベント
    が駆動されるようになりました。
    最終結果は以下のようになります。
    ・Surface Pro(Windows10 Pro 64bit バージョン1709) -> NG
    ・Surface Pro(Windows10 Pro 64bit バージョン1803) -> OK
    ・Venue 8 Pro(Windows10 Home 32bit バージョン1607) -> OK
    ・Venue 8 Pro(Windows10 Home 32bit バージョン1709) -> OK
    ・ASUS T100TA(Windows10 Home 32bit バージョン1607) -> OK
    • 編集済み kkawamura 2018年6月22日 0:50
    2018年5月11日 7:08

すべての返信

  • kkawamura さん、こんにちは。フォーラム オペレーターの立花です。
    MSDN フォーラムへご投稿くださいましてありがとうございます。

    フォーラム利用時の注意点のお知らせです。
    ※初めてご投稿された方を対象にお知らせしています。

    ご利用の際は、下記内容をお守りいただきますと
    情報が寄せられやすくなりますので、ぜひご一読ください。

    お試しされている端末の OS のバージョンはすべて同一でしょうか。
    ご記載いただいた方が情報が寄せられやすくなるかもしれませんので
    よろしければご検討くださいませ。

    フォーラムでご質問頂くにあたっての注意点
    フォーラムのご利用方法(質問の投稿)について
    フォーラムへの回答に関するガイドラインおよびフォーラム運営について(再掲)
    ご意見、ご要望はこちらのフォーラムまで。
    各種設定方法はフォーラム内を [かんたん フォーラム ガイド] で検索してみてください。


    参考になった投稿には回答としてマークの設定にご協力ください
    MSDN/TechNet Community Support 立花楓

    2018年5月11日 7:32
    モデレータ
  • ペアリングしておかないとValueChangedイベントは発生しないですが、ペアリングされていないとか

    #アドバタイズ/Read/Writeはペアリングしてなくてもできるので気づきにくい


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2018年5月11日 12:53
  • 回答いただきありがとうございます。

    >ペアリングしておかないとValueChangedイベントは発生しないですが、ペアリングされていないと

    3端末ともに、コントロールパネル-Bluetoothのデバイスの追加にて
    対象の機器を発見して、ペアリングを行っており、ValueChangedイベントが発生しない原因ではないです。

    OS側でBluetooth LEでペアリングが必要なことも、iOS/AndroidとWindowsでは
    異なっていて弊社の機器を使うユーザーにとっては混乱の元になると考えています。
    この辺の仕様もiOS/Androidと統一していただきたいもと思ってはいますが。。

    2018年5月14日 5:16