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