Closed makmorit closed 1 year ago
管理ツール側の「ペアリング情報削除」機能を単独で実行した場合に発生します。 この場合、macOSにはペアリング情報(LTK)が残存していますが、対応するLTKが、MDBT50Q Dongle(nRF52840)側にないため、接続障害が発生します。
このとき、BLEリクエストが飛ぶ前に、macOSにより自動的に行われるペアリングリトライ処理により、前述のエラーが繰り返される挙動になるようです。
前述のprocedure: Encryption, error: 4102
はnRF52840アプリケーションで捕捉できます。
したがって、本件対策としては、このエラーを捕捉し、アドバタイズを停止するなどでペアリングリトライ処理に応じないような機能を、nRF52840アプリケーションに追加する必要がありそうです。
考慮点としては、残存しているmacOSのペアリング情報を消すなどのユーザー操作により、ペアリング実行の再試行が可能となるような仕組みを作る必要があります。 すなわち、障害で停止されたアドバタイズが、MDBT50Q Dongle上のボタンを1回押すなどの操作により復帰(再開)できるようにするなどの機能が考えられます。
問題が解消したのでクローズいたします。
概要
macOSにペアリング情報が残存時、BLEペアリング処理が60秒後にタイムアウトする障害が確認されています。
nRF52840側では、下記のエラーが際限なく繰り返される挙動となり、結果として管理ツール側でBLE応答タイムアウト(10秒)が検知できません。 (1分後に、管理ツール側がタイムアウトにより接続処理を停止させるため、下記のエラーも停止します)
procedure: Encryption, error: 4102
はペアリング情報不整合によるエラーの様子