私は、周辺機器として開発されたカスタム BLE デバイスを使用して、iPhone に BLE セントラル デバイスを実装しています (そのファームウェアは同僚によって書かれています)。
一部の操作のペリフェラルは、BLE 仕様で定義されている標準の Bluetooth ATT エラー コードに準拠した BLE エラー コードを返します。
CoreBluetooth スタックを使用して中央デバイスを開発している iPhone 側では、xCode のデバッガー出力ウィンドウに次のようなエラーが通知されます。
CoreBluetooth[警告] 不明なエラー: XX
そして、コールバックで CBError* オブジェクトを受け取ります。私の問題は、コールバック (CBPeripheralDelegate の didWriteValueForCharacteristic コールバックなど) で取得した CBError* オブジェクトに code=0 と localizedDescription="Unknown error" が含まれていることです。
CoreBluetooth スタックによってデバッガ出力ウィンドウに記録されたエラー コードを何らかの方法で取得することは可能ですか?
私の調査によると、CoreBluetooth はほぼすべての BLE 標準エラー コードを「不明なエラー」にマップしているようです (内部コード 0 を使用、 CBError リファレンスを参照)。CBAttErrorでコード化されたような、より詳細なエラー コードを取得したいと考えています。