2021/04/28

windows10 + Delphi + Bluetooth LE

 Bluetooth LE(Bluetooth Low Energy)は、Bluetooth バージョン 4.0 から追加になった低消費電力の通信モードで、それまでの、Bluetooth(クラシック)とは、全くの別物。最近、実験している無線デバイスは、この BLE を使ったもの。

 nRF51822 の実験デバイスが動いてるらしいのは、nRF Connect というソフトで確認できるが、実際に何か作った時には、自前で応答するソフトを作らないといけない。Delphi(RAD Studio 10.3)には、TBluetoothLE というコンポーネントがあるので、これを使えば、楽チンに出来上がるのかと思ったが、どうやら怪しい。

 ネットでさっくりと調べてみるに、BLEのプログラムというのは、iOS だったり、Android 向けであり、Windows用ではない。Delphi のページをみると、さも、Windows10以降なら、対応しているかのように見えるが、そう単純なものでもなさそう。


 以下、怪しい開発メモ、正しいかは保障しない。

1)デバイス取得
 BluetoothLE1.DiscoverDevices(2500); で検索開始して、onDiscoverLEDevice にて、目的のデバイスが見つかるまで、一つづつ確認する。

2)サービス取得
 先にWindows 上で、ペアリングしておく必要がある。BLE は、ペアリング不要と思っていたが、アドバタイズ(定期発信されるデータ)のみで完結しているデバイス(ブロードキャスト)は、その先の情報は必要ないからペアリング不要という意味であって、データをやり取りするなら、一度、ペアリング操作をしておかないといけないのだろう。

 デバイス側で仕様を変えた時は、一度ペアリングを削除して、再度ペアリングしておかないと駄目かも。追加したキャラクタリスティックが見つからず難儀した。

 って、Delphi が問題というより、BLE の仕組みが判っていない僕が悪いのかも。

 この間まで頑張ってた 2.4GHz の無線デバイスと違って、特別な受信デバイスが不要っていうのが一番のポイント。PC側が、bluetooth 対応してあれば、あとはソフトでいかようにもなる、はずなんだな。

0 件のコメント:

コメントを投稿