2016/07/12

[ble]BLEのエラーコード

AndroidでBLEをやっていて、Statusが133というのが返ってきた。
なによ、133って?

毎回調べては忘れているような気がするので、書き残しておこう。
まあ、書いたこと自体忘れてしまうかもしれんが。

Core v4.2で見ていく。


[Vol 3, Part F][3.4 Attribute Protocol PDUs][3.4.1 Error Handling]

この辺りが、よく見るエラーのことになるだろう。
この階層で決まっているのは0x11まで。

133は0x85。
これはApplication Errorということになっている。
この「Application」は、誰だろうか?
いや、そもそもAndroidの返してくるStatusがエラーコードなのかもわからん。

 

GATT_INSUFFICIENT_AUTHENTICATIONなんかを見るとエラーコードが一致しているので、方向性は間違っていないと思う。
ただ、定義している値が少ないので、載っていないと良くわからん。
Cross Reference: /frameworks/~/bluetooth/BluetoothGatt.java


じゃあ、こういうのがよいのか?
BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP

これはnRF51 SDKのドキュメントなのだけど、STATUSで値が0x85だ。
階層はGAPだから、ATTよりは上側だから、アプリと言えばアプリだ。

 

じゃあ、133で検索すると一緒に出てくる129は?
0x81なので、BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILEDか。
どちらもペアリングがらみだな。

しかし、今見ているやつはペアリングはもう済んでいるのよねぇ。。。



2016/07/23追記

HCIのエラーコードは、[Vol 2, Part D Error Codes]に出ている。
Vol 2は「BR/EDR」となっているので見過ごしてしまいそうだが、[Vol 6, Part B][2.4.2.3 LL_TERMINATE_IND]などのError Codeはそれを参照するようになっている。

nRF5 SDKはそちらをreasonとして返すことが多いので、覚えておくと良いだろう(と、いつも探し回る自分に言い聞かせる。。)。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。