カスタムプロファイルを使用して、単純なBluetooth Low Energyベースのアプリケーションを構築したいと思います。採用されたプロファイル/サービス/特性/記述子は、 公式サイト に見られるように16ビットUUIDを使用します。
16ビットUUIDは、対応する128ビットUUIDのショートカットであり、次のように変換されます。
128-bit UUID = 16-bit Attribute UUID * 2^96 + Bluetooth_Base_UUID
Bluetooth_Base_UUID
であること 00000000-0000-1000-8000-00805F9B34FB
。 (出典:Bluetoothコア仕様Vol 3パートFセクション3.2.1)
カスタムプロファイルを使用しているので、どのUUIDを使用できるのか疑問に思っています。
上に示したベースUUIDより上の16ビットおよび32ビットUUIDはすべて、仕様(または将来の仕様)の項目用に予約されています。したがって、ベンダーアプリは、ベースUUIDよりも小さい128ビットUUIDを自由に使用できます。ベンダーが16ビットまたは32ビットのUUIDを使用するための予約スペースはありません。
16ビットUUIDをBluetoothSIGに登録できます。 https://www.bluetooth.org/en-us/Pages/LoginRestrictedAll/16-bit-UUIDs-member.aspx これは次の場合に役立ちます。バイトを保存する必要があります(スペース、エネルギー、またはその他のパフォーマンス上の理由から)。
Bluetooth仕様の私の解釈では、BluetoothUUIDベースの「範囲」の128ビットUUID outsideを自由に使用できます。
xxxxxxxx-0000-1000-8000-00805F9B34FB
引用符で囲んだ範囲は引用符で囲んでいます。引用した仕様の16ビットから128ビットへの変換式は、左端のバイトが最も重要であることを示しているためです(ビッグエンディアン!)。 UUIDを128ビット整数として扱う場合、BluetoothUUIDベースの「範囲」は連続した値の範囲ではないことに注意してください。
registering によって割り当てられていない限り、16ビットまたは32ビットのUUIDを使用することはできません。
登録されていない短いUUIDを使用すると、デバイス、将来の標準、または他のデバイスの登録番号との互換性がなくなります。 Bluetooth資格には有効な番号が必要です。
登録しない場合は、独自の有効な128ビットUUIDを生成します。
uuidgen
または guidgen.exe
コマンドラインツールこちらがFAQ\BLEUUIDについての話です
http://www.cypress.com/forum/psoc-4-ble/how-can-i-get-uuid-services-and-characteristics