This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2541: OAD notifications

Part Number: CC2541


Hi

I am writing an host program that communicates with the OAD Module in order to give my clients an option to upgrade the board from Windows computer.

I succeeded to have communication from the PC to the CC2541 without any problems.

I have a small issue that I don't get notifications from CC2541 to the PC.

After doing some debugging, I narrowed the issue to one specific place.

in OAD_TARGET.C for example in the function:

static void oadImgIdentifyReq(uint16 connHandle, img_hdr_t *pImgHdr)
{

uint16 value = GATTServApp_ReadCharCfg( connHandle, oadImgIdentifyConfig );

// If notifications enabled
if ( value & GATT_CLIENT_CFG_NOTIFY )
{
gattAttribute_t *pAttr = GATTServApp_FindAttr(oadAttrTbl, GATT_NUM_ATTRS(oadAttrTbl),
oadCharVals+OAD_CHAR_IMG_IDENTIFY);
if ( pAttr != NULL )

Value doesn't have the GATT_CLIENT_CFG_NOTIFY bit turned on

if I replace this line with 'if (1)'  which always allows to continue,
I do get the notification in PC side.

This also implies that PC side is Ok.

So I wonder where 'value' is set and why isn't it with the correct value?

Thanks!