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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。