ユーザ用ツール

サイト用ツール


サイドバー

サイドバー

TOP ページ




外部リンク

kb:mbed-ble

以前のリビジョンの文書です


mbed HRM1017

20140618e.jpg

小ネタ

ペアリングできるようにするには?

AdvertiseのDiscoverableを有効にします。

advData.addFlags((GapAdvertisingData::Flags)(GapAdvertisingData::LE_GENERAL_DISCOVERABLE | GapAdvertisingData::BREDR_NOT_SUPPORTED));

デバイス名を設定するには?

AdvertiseにSHORTENED_LOCAL_NAMEを追加します。文字コードはUTF-8です。

const char* deviceName = "\xe3\x81\xa4\xe3\x81\xbcmbedHRM1017";
advData.addData(GapAdvertisingData::SHORTENED_LOCAL_NAME, (uint8_t*)deviceName, strlen(deviceName) + 1);

問題有り。ペアリング前はAdvertiseに含まれる名前を表示するが、ペアリング後は別の情報みたい。
GATTのDevice Information Serviceが必要か?

Windows関連

Windows8と接続するには?

1. ハードウェアがBluetooth LEに対応しているか確認します。(デバイス マネージャー で、Microsoft Bluetooth LE Enumeratorが表示されていれば、Bluetooth LEに対応しています。)

2. mbed HRM1017をペアリングします。
チャーム > 設定 > PC設定の変更 > PCとデバイス > Bluetooth

デバイスが表示されない場合は、mbed HRM1017のGapAdvertisingData::LE_GENERAL_DISCOVERABLEフラグがONしているか確認してください。

Windows8でGATTを確認するには?

EG Bluetooth Smart Device GATT Profile Checker で確認できます。

1. ストアから、EG Bluetooth Smart Device GATT Profile Checkerをインストールします。
2. EG Bluetooth Smart Device GATT Profile Checkerを起動します。
3.Bluetooth SMART Devicesに表示されているデバイスを選択します。

メモ

6/14メモ

  • 下調べ。
  • 開発チームはココ。mbed BLE API homepage
  • 使っているハードウェアは、nRF51822 Evaluation Kit。
  • GAPとGATTに対応。
  • GATTのサンプルコードは、BLE_HeartRate
  • BLEDevice,GattService,GattCharacteristicクラス。
  • 静的変数を用意しておき、Characteristicクラスに紐づけておくことで、BLEのCharacteristicと同期される模様。

6/15メモ

  • ハードウェアが手元に届いた。mbed HRM1017
  • mbedオンラインコンパイラのPlatformは、Nordic nRF51822を選択する。
  • 内蔵オシレーター32KHzなので注意。(nRF51822-mKITは、外部32KHz。)
  • コンパイル結果のHEXファイルをmbedドライブへコピーすれば書き込める。ブラウザから直書きはダメ。一旦、ローカル保存を経由する。
  • SurfacePro2のペアリングには何も表示されない。

6/16メモ

  • mbed HRM1017(BLE_Health_Thermometer_IRC) + iPhone(Nordic Toolbox)は、認識できた。
  • mbed HRM1017(BLE_Health_Thermometer_IRC) + Nexus7(Nordic Toolbox)は、認識できず。というか、手元のNexus7はBLE未対応みたい。
  • BLE喋れるデバイスが、SurfacePro2とTOSHIBA DynabookTabしかない。両方、Win8.1。
  • なんとかしてWin8.1でBLE喋らせるしか道が無さそう。
  • Win8.1から、WinストアアプリでBLEできる模様。
  • BluetoothSIG提供の、ApplicationAcceleratorが使えそう。
  • GATT違いでダメでした。BLE_Health_Thermometer_IRCは「UUID_HEALTH_THERMOMETER_SERVICE = 0x1809,」で、ApplicationAcceleratorは「HeartRateMeasurement 0x2A37」。
  • 明日、ApplicationAcceleratorのコードを書き換えてみることにしよう。

6/17メモ(Win8.1StoreApp)

  • GattServiceUuids.HeartRate = “{0000180d-0000-1000-8000-00805f9b34fb}”
  • Uuidを“180d-0000-0000-…“に変更。→Guidで例外。
  • GattDeviceService.GetDeviceSelectorFromUuid()をGattDeviceService.GetDeviceSelectorFromShortId(0x180d)に変更。→Not found
  • 恐ろしい記述を発見。「Windows 8.1 supports only GATT client mode.」

6/17メモ

  • mbed HRM1017(BLE_Health_Thermometer_IRC改) + SurfacePro2(BluetoothSmartDeviceGATTProfileChecker)で、接続に成功。

6/18メモ

  • SHORTENED_LOCAL_NAMEのpayloadが正しいか不安だったので、Bluetooth specificationを確認したところ、長さ情報が無かった。したがって、終端の'\0'が必要と思われる。strlen()に+1が必要。
  • 文字コードがUTF-8だということが分かったので、日本語が表示できるか試してみた。(必要なのか?疑問ではあるが。)

6/20メモ

  • ペアリング後のデバイス名を指定する方法を模索。
  • Bluetooth LE的には、Generic Access Service)(0x1800)のDevice Name Characteristic(0x2A00)を表示している。
  • mbed HRM1017のconstに、Generic Access Serviceが定義されていない。orz
  • 無理にSerivceを登録したものの、思うように動かず。(名前変わらず。Advertisingまでおかしくなった。Winアプリによって、Generic Access Serviceが表示されたりされなかったり。)
  • Generic Access Serviceを登録しなくても、Winアプリに表示されていた。値はnRF5x。
  • nRFのライブラリ内で設定しているのか???
kb/mbed-ble.1403255231.txt.gz · 最終更新: 2014/06/20 18:07 by t-matsuoka