つくる、をつなぐProject Linking

Linking Profile仕様書

ver 3.0.0
目次

Linkingプロファイル

Linkingプロファイルとして定義したプロファイル仕様をPeripheralDeviceLinkProfile(以下:PDLP)と呼ぶ。Bluetoothはデバイス同士が同一のプロファイル仕様を持つことで通信を行う。PDLPの構成は以下図に示す。
BLEではGATT上にPDLPが構成されるため、GATTによる対応が必須である。


図 1 BLEにおけるPDLP構成

PDLPにおける役割

デバイスは以下の表に示した役割となる。

表 1 デバイスのPDLPにおける役割
方式 Profile Role
BLE PeripheralDeviceLinkProfile onBLE Peripheral role

PDLPにおける接続

PDLPにおける接続において、端末はPDLPに対応したデバイスかどうかを表 2に示したUUIDを検知することで判断をする。よって、デバイスはUUIDを通知する必要がある。
表 3に示したCharacteristicへの対応をすること。UUIDを検知することで端末とデバイスによる接続を確立する。
また、Service、Characteristicの定義に関する詳細はPeripheralDeviceLinkProfile_onBLE_Specを参照すること。

表 2 PeripheralDeviceLinkServiceの定義
Service 方式 AttributeType UUID
PeripheralDevice
LinkService
BLE PrimaryService ■128bit UUIDの場合
b3b36901-50d3-4044-808d-50835b13a6cd
■16bit UUIDの場合
fe4e
表 3 Characteristicの定義
Characteristic Read Wite without Response Write Notify Indicate Reliable Write UUID
WriteMessage × × M × × × b3b39101-50d3-4044-808d-50835b13a6cd
IndicateMessage × × × × M × b3b39102-50d3-4044-808d-50835b13a6cd

Bluetoothのアドレス

ペアリングにおいてはPublicAddressもしくはRandom StaticAddressであることを推奨する。

切断後における再接続

接続確立後、何らか要因による切断がされた場合、端末が再接続を試みることを考慮し、デバイスは一定時間、接続待機とすることが望ましい。また、ユーザー操作による再接続を容易にするため、デバイスは簡易操作による接続待機へ状態変化ができることが望ましい。

デバイスの名称

デバイスはLocalNameの設定を推奨する。

PDLPにおけるサービス構成

PDLPは対応を必須とするサービスと機能によって対応を選択できるサービスにより構成される。各サービスの必須:M(Mandatory)と選択:O(Option)を表 4に示す。尚、PDLPにおけるサービスとは、BLEにおけるサービスとは異なり、PDLPにおいて定義された各機能を示したものである。

表 4 PDLPにおけるサービスのRequirements
Service方式AttributeType
PeripheralDeviceNotificationService端末からのメール等の通知受付
PeripheralDeviceOperationServiceデバイスの操作
PeripheralDevicePropertyInformationServiceデバイス情報、サービス一覧の通知
PeripheralDeviceSensorInformationServiceセンサ情報の通知
PeripheralDeviceSettingOperationService設定情報の通知、設定操作

サービス(Mandatory)への対応

PDLPにおいて、表 4に示す通り PeripheralDevicePropertyInformationService(以下:PDPIS)はMandatoryのサービスである。端末がLinkingを利用するためには、デバイス情報および対応している機能(以下:プロパティ情報)を事前に把握することが必須であり、PDPISによって取得する。端末がプロパティ情報を検索することに対し、デバイスはPDPISによって適切にプロパティ情報を応答する必要がある。デバイスが応答するMsgは表 5に示したGET_DEVICE_INFORMATION_RESPやGET_SERVICE_LIST_RESPである。

表 5 プロパティ情報返却Msg
Bluetooth方式デバイスが応答するMsg用途
BLEGET_DEVICE_INFORMATION_RESP対応サービスリスト、デバイスID、デバイス機能といったデバイス情報を応答

サービス(Option)への対応

PDLPにおいて、表 4に示す通りPDPIS以外のServiceについてはOptionのサービスである。デバイスは機能に応じてOptionのサービスに対応する必要がある。対応したサービスについては、表 5に示したGET_DEVICE_INFORMATION_RESPの対応サービスリストにより対応有無を応答する。
 なお、Optionのサービスに対応した場合は、そのサービス仕様書にて定義されているすべてのMsgに対し、ResultCodeによる応答が必須である。ResultCodeによる応答内容を表 6に示す。機能として対応していないMsgに関しては、表 6に示す0x05(エラー[未サポート])を応答する必要がある。

表 6 ResultCodeによる応答
ResultCodeValue結果
OK, request processed correctly0x00正常終了
Cancel0x01キャンセル
Error, failed0x02エラー[処理失敗]
Error, no reason defined0x03エラー[理由不明]
Error, data not available0x04エラー[パラメータエラー]
Error, not supported0x05エラー[未サポート]
Reservedothers予約

データ転送

Linkingにおけるデータ転送は、以下の通り規定されている。規定されたフォーマットに合わせて、各サービスを識別するServiceIDと各サービスに定義されている要求を識別するMsgIDとParameterIDを設定することでやりとりを行う。なお、各IDにおける詳細は表 Linkingプロファイル一覧に示す仕様書を参照すること。

BLEデータ転送フォーマット

BLEにおけるデータ転送フォーマットの概要を以下図に示す。Header(1byte)とPayload(19byte)を合わせた形式が1パケットとなる。
フォーマットの詳細はPeripheralDeviceLinkProfile_onBLE_Specを参照。


図2 BLEデータ転送フォーマット

パケットにおけるHeader

1パケット内のHeaderは以下図に示したフォーマットである。
詳細はPeripheralDeviceLinkProfile_onBLE_Specを参照。


図3 Headerに関する情報

分割送信

1パケットの容量を超えるデータ転送を考慮し分割送信が可能である。分割送信は図 3に示したヘッダ情報を設定することで行い、例を以下図に示す


図4 分割送信例

キャンセル

分割送信を行うことでデータ転送途中におけるキャンセルが可能である。キャンセルは図 3に示したヘッダ情報を設定することで行い、端末とデバイスによるキャンセル処理例をに示す。
詳細はPeripheralDeviceLinkProfile_onBLE_Specを参照。


図5 キャンセル処理例