Problem when client disconnection during Indication/confirmation phase.

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Currently using 20737tag with SDK2.0.1, we implement a mechanism by handset triggering a series of indication/confirmation
data exchange by calling bleprofile_sendIndication() in device. But unfortunately, once client tries to disconnect the link while
device is in wait state of confirmation signal after indication has been started. Then the new re-connection will fail to trigger
indication/confirmation machine again owing to that lower layer of device still recognizes as waiting of confirmation state.
Is there any BLE API to reset 737tag's indication/confirmation state machine or reset; otherwise it can be a problem like this.

0 Likes
1 Solution
asridharan
Employee
Employee
10 comments on KBA 5 comments on KBA First comment on KBA

In your connection_down() callback function, try this:

void application_conn_down(void)

{

     // ... all other connection down.

     extern void leatt_timeoutCallback( UINT32 );

     leatt_timeoutCallback(0);

}

View solution in original post

6 Replies
asridharan
Employee
Employee
10 comments on KBA 5 comments on KBA First comment on KBA

In your connection_down() callback function, try this:

void application_conn_down(void)

{

     // ... all other connection down.

     extern void leatt_timeoutCallback( UINT32 );

     leatt_timeoutCallback(0);

}

Anonymous
Not applicable

Hi, Arvinds,

That function works and thx a lot.

BTW, from SDK 2, i only see API notes in bleprofile.h but can not find any
other API note like leatt_timeoutCallback() or other useful functions for app. designers.

Is there any doc. related or notes about BLE stack api.? Thx.

0 Likes

Hi Arvinds,

  I got similar case that indication is failed to send out even the api 'bleprofile_sendIndication' has been called in our retry logic.

  My device is connected to one client, and sending some sensor information periodically via indication.

  From the sniffer side, it shows the evidence of no indication is found even function 'bleprofile_sendIndication' is called several times in 20737 device. And it won't be recovered until reset to device.

  Will this be probably same chaos happen at controller side?

0 Likes

Hi,

  It turns out that we got this similar case under the same 'disconnection' scenario.

  So, this workaround works for us as well.

0 Likes
Anonymous
Not applicable

Hi, hardy,

Then we can discuss some problems which we meet currently for the next step.

Nice to meet u.

Hi arvinds and leo,

  Got to come back to this issue.

  Will this function 'leatt_timeoutCallback(0);' is also required (or ok) for 20737 as being an central role that is disconnected from peripherals?

  I still have similar issue, which is 20737 is not able to connect to peripherals sometimes.

  Even I add same function call as highlighted in bold as below, but it doesn't help.

  Any comment from this?

  here is some code snippet from my side:

if (dev_info [conn_idx].role == RBS_ROLE_SLAVE)

{

     leatt_timeoutCallback (0); // workaround for report from http://community.broadcom.com/message/6856#6856

}

else

{

     leatt_timeoutCallback (0); // workaround for report from http://community.broadcom.com/message/6856#6856

}

0 Likes