Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ble-plugin-unityのWindows 64ビットの対応を行いました #8

Merged
merged 9 commits into from
Nov 4, 2021

Conversation

wotakuro
Copy link
Contributor

こんにちは。Android版もPull Requestさせていただきました 黒河です。
Windows 64bit向けの対応を ble-plugin-unityに対して行いました。

■対象環境
Windows 10( 20H2以降) を対象にしています。
32ビットでは動作しません。64ビットのみを対象にしています。

■ネイティブプラグインについて
bleplugin_projects/Windows以下にVisualStduioのプロジェクト毎いれています。
Visual Stduio 2019でビルドしています。
このときC++で、Windows SDK及びUWPの開発環境が必要になってきます。

開発の都合上 、Exeで直接コードの確認ができるのが便利でしたので…
Debugビルド時は exe書き出しで単体テストが出来るようになっており、Releaseビルドでは Unity向けのDLLを生成するようになっています。

■既知の問題
Ble.StartScan時に デバイスの名前やManufactureDataをイベント引数で渡していると思いますがWindows版では未対応になっています。

toioでは PrimaryではなくSecondaryパケット内に LocalNameやManufactureDataを入れているようでした。
この時に、Windows側から提供された ServiceのUUIDでフィルターの仕組みを利用すると Secondaryパケットは ServiceのUUID未指定ということでフィルターされてしまっていたためです。
※詳細は、BleDeviceWatcher.cpp にコメントとして記載しています。

どうぞよろしくお願い致します。

@wotakuro
Copy link
Contributor Author

追記になります。

■Asmdefについて
プラグインを書く都合で、unsafeコードを書きたかったため 一旦 Windows側で独立した asmdefを作成しました。
それ以外の意図はございませんので、よしなにして頂けると幸いです。

Copy link
Member

@TakeshiYaeda TakeshiYaeda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link

@TE-KazuhiroYabe TE-KazuhiroYabe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます。
問題ないと思います。

Scanについては、コメントにも記載されていまように独自のフィルタ処理が必要になります。
たとえば、toioのService UUIDが入っているAdvertiseのBLEアドレスと同一のBLEアドレスを持つScan Responseのデータ内容をAdvertise側のデータとマージするなどの処理を行うことにより、全データが揃うと思います。

@TakeshiYaeda TakeshiYaeda merged commit 23bbb73 into toio:main Nov 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants