Hi,
I'm working on a BLE Central application running on the nRF52840 using nRF Connect SDK. It connects to mice/keyboards and uses the HIDS Client functions (bt_hogp_*). A Bluetooth mouse will usually go to sleep and disconnect when not used for some time and then reconnect (start advertising) when moved. I've noticed that while reestablishing the connection itself is fairly quick, doing the service discovery on each reconnect takes a noticeable amount of time. From what I understand, it is standard practice for a Central device to cache the service discovery results and reuse them when reconnecting to a previously bonded peer for precisely this reason. But I am at a loss as to how to achieve it with the nRF Connect SDK. I can see the Service Changed indication being used in the ANCS sample, but it doesn't seem like it's actually caching the discovered services.
Is this something I should expect the stack/library to be doing for me? Or could I do that myself in application code somehow?
(To be clear, I'm not talking about the GATT Caching introduced in Bluetooth 5.1, just the older mechanism that I believe exists since 4.0.)