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.

CC2340R5-Q1: change advertising data dynamically in basic ble project

Part Number: CC2340R5-Q1
Other Parts Discussed in Thread: CC2340R5, SYSCONFIG

Tool/software:

I am new to BLE and i am Using CC2340R5 launchpad, and using Basic_BLE project. i want to just broadcast data every 50 sec with incrementing packet number in every advertisement packet. So i changed the sysconfig settings from peripheral to broadcaster. below images are my sysconfig settings.

   

In order to change broadcasting data i followed Training module steps i made changes in app_broadcaster.c file as shown below

void Broadcaster_AdvEventHandler(uint32 event, BLEAppUtil_msgHdr_t *pMsgData)
{
    switch(event)
    {
        case BLEAPPUTIL_ADV_START_AFTER_ENABLE:
        {
            MenuModule_printf(APP_MENU_ADV_EVENT, 0, "Adv status: Started - handle: "
                              MENU_MODULE_COLOR_YELLOW "%d" MENU_MODULE_COLOR_RESET,
                              ((BLEAppUtil_AdvEventData_t *)pMsgData)->pBuf->advHandle);

            /** New Code **/
            BLEAppUtil_AdvEventData_t * pkt = (BLEAppUtil_AdvEventData_t *)pMsgData;

            if (pkt->pBuf->advHandle == broadcasterAdvHandle_1)
            {
                bStatus_t status = FAILURE;

                status = GapAdv_prepareLoadByHandle(broadcasterAdvHandle_1, GAP_ADV_FREE_OPTION_DONT_FREE);

                if (status != SUCCESS)
                    for(;;); // Loop
              

                advData1[0] = 0x02;
                advData1[1] = GAP_ADTYPE_FLAGS;
                advData1[2] = GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED | GAP_ADTYPE_FLAGS_GENERAL;

                advData1[3] = 0x03; // length of this data
                advData1[4] = GAP_ADTYPE_MANUFACTURER_SPECIFIC;

                advData1[5] = MACaddress[5];
                advData1[6] = MACaddress[4];
                advData1[7] = MACaddress[3];
                advData1[8] = MACaddress[2];
                advData1[9] = MACaddress[1];
                advData1[10] = MACaddress[0];

                   if(packet_no<=255)
                   packet_no++;
                   else
                   packet_no=0;
      
                advData1[11] = packet_no.;
 

                broadcasterAdvHandler.eventMask = BLEAPPUTIL_ADV_END_AFTER_DISABLE;
                                                | BLEAPPUTIL_ADV_SET_TERMINATED;
                                                | BLEAPPUTIL_SCAN_REQ_RECEIVED;

                status = GapAdv_loadByHandle(broadcasterAdvHandle_1,
                                                    GAP_ADV_DATA_TYPE_ADV,
                                                    ADV_MAX_LEN,
                                                    advData1);

                if (status != SUCCESS)
                    for(;;);
                /** End New Code **/
            }
            break;
        }

        case BLEAPPUTIL_ADV_END_AFTER_DISABLE:
        {
            MenuModule_printf(APP_MENU_ADV_EVENT, 0, "Adv status: Ended - handle: "
                              MENU_MODULE_COLOR_YELLOW "%d" MENU_MODULE_COLOR_RESET,
                              ((BLEAppUtil_AdvEventData_t *)pMsgData)->pBuf->advHandle);
            break;
        }

        default:
        {
            break;
        }
    }
}

 but the packet no. incremented just once . and when i debugged it, by setting a breakpoint , i found that program counter came into this function only once. how can i change the advertising packet dynamically. kindly help on this