Send notification and writeHandle

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

cross mob
Anonymous
Not applicable

Hi everybody,

I'm developing an application on the BCM20736S-module, that allows to transfer data from and to the characteristics via the PUART. I'm using SDK version 2.2.0.

If a client writes into a characteristic, this value is transferred over the serial interface flawlessly, and also in the other direction it seems to work.

The data is transferred correctly over PUART into the BLE module, I tested this by tracing. At last it is sent via bleprofile_sendNotification. But using a mobile phone as a client the characteristic didn't change.

I read that one should look at the sample code location_and_navigation or hello_sensor, but I'm still confused. To clearify:

I'm trying to write into a custom characteristic created with CHARACTERISTIC_UUID128_WRITABLE, do I have to use a DESCRIPTOR, too?

Or do I have to check with blecm_getAvailableTxBuffers() before calling bleprofile_sendNotification?

Is it mandatory to use the bleprofile_WriteHandle before or after the notification to really change the value contained in the database?

My database was created using the WICED generator.

Thanks for your help!

Best regards

Hannes Baumgart

0 Likes
1 Solution
Anonymous
Not applicable

Hi everybody,

I experimented today:

I check if

blecm_getAvailableTxBuffers()

returns anything larger zero, then execute

bleprofile_sendNotification(handle, data, (INT32) length);

and that should be sending the notification.

Before doing this, I update the GATT DB by using these:

unsigned int i;

BLEPROFILE_DB_PDU tempPDU;

i = bleprofile_ReadHandle(handle, &tempPDU);

Now I can memcpy my new data into the temporary PDU and rewrite it to the GATT DB:

bleprofile_WriteHandle(handle, &tempPDU);

Is this an acceptable solution?

Best regards

Hannes Baumgart

View solution in original post

0 Likes
2 Replies
Anonymous
Not applicable

Hi everybody,

I experimented today:

I check if

blecm_getAvailableTxBuffers()

returns anything larger zero, then execute

bleprofile_sendNotification(handle, data, (INT32) length);

and that should be sending the notification.

Before doing this, I update the GATT DB by using these:

unsigned int i;

BLEPROFILE_DB_PDU tempPDU;

i = bleprofile_ReadHandle(handle, &tempPDU);

Now I can memcpy my new data into the temporary PDU and rewrite it to the GATT DB:

bleprofile_WriteHandle(handle, &tempPDU);

Is this an acceptable solution?

Best regards

Hannes Baumgart

0 Likes
Anonymous
Not applicable

Hi hantron

Your solution looks good.

Thanks,

Kevin

0 Likes