This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Why won't Master Control Panel Android App trigger context restore correctly?

Hi!

I'm building an application with one custom service containing a few characteristics, all of which are to be indicated upon. When using the Master Control Panel Android App, this will work fine the first time (Connect->Bond->Enable indications for each characteristic->Receive data->Disconnect) but on subsequent connects the app will say that indications are enabled for the service, but the device doesn't agree and so doesn't send any data. This will, however, work perfectly when using the computer based master control panel in conjunction with a development dongle (Connect->Discover Services->Bond->Enable Services->Disconnect).

Upon enabling logging in the device manager it seems that a series of events are triggered by the computer version of the app on reconnect, specifically BLE_GAP_EVT_SEC_INFO_REQUEST and BLE_GAP_EVT_CONN_SEC_UPDATE, but these are not triggered by the phone version. Since these events are not triggered, the DM won't apply the stored service context on reconnect.

Anyone have any idea what could be causing this?

EDIT: Here are two wireshark logs of the communication, one were it works (our custom board communicating with the development dongle) and one were it doesn't (our custom board communicating with my HTC Desire). Judging by the logs, I would say that it's the fact that the dongle sends an encryption request, which the phone doesn't, that is causing the difference in behaviour.

Computer wireshark log

Phone wireshark log

Cheers, Edward

Parents Reply Children
No Data
Related