Hi team,
Here's the request from the customer:
Customer follows the steps in the periodic advertising section of SimpleLink Tm CC13x2 / CC26x2 SDK BLE5-Stack User's Guide 2.02.01.00 to write codes for peripheral devices.

However, the host central device cannot receive the periodic adv data set by the GapAdv_SetPeriodicAdvData function, but can receive the data set by GapAdv_loadByHandle. The code segment of the periodic advertising part of the peripheral device configuration is attached as follows. He has checked the status returned by each function, and they all return SUCCESS.
// Periodic Advertising Intervals
#define PERIDIC_ADV_INTERVAL_MIN 160
#define PERIDIC_ADV_INTERVAL_MAX 160
/// Non-Connectable & Non-Scannable advertising set
#define GAPADV_PARAMS_AE_NC_NS { \
.eventProps = 0, \
.primIntMin = 160, \
.primIntMax = 160, \
.primChanMap = GAP_ADV_CHAN_ALL, \
.peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID, \
.peerAddr = { 0x74, 0xD2, 0x85, 0xD4, 0x63, 0xB4 }, \
.filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ, \
.txPower = GAP_ADV_TX_POWER_NO_PREFERENCE, \
.primPhy = GAP_ADV_PRIM_PHY_1_MBPS, \
.secPhy = GAP_ADV_SEC_PHY_1_MBPS, \
.sid = 1 \
}
static uint8 advHandleNCNS; // Non-Connactable & Non-Scannable
static uint8_t periodicData[] =
{
'P',
'e',
'r',
'i',
'o',
'd',
'i',
'c',
'A',
'd',
'v'
};
#define GAPADV_DATA_PERIODIC_ADV { \
.operation = GAPADV_PERIODIC_ADV_DATA_COMPLETE, \
.dataLength = sizeof(periodicData), \
.pData = periodicData \
}
// Advertisement data
static uint8_t advertData[] =
{
0x0C, // Length of this data
GAP_ADTYPE_LOCAL_NAME_SHORT, // Type of this data
'P',
'e',
'r',
'i',
'o',
'd',
'i',
'c',
'A',
'd',
'v',
0x02, // length of this data
GAP_ADTYPE_FLAGS,
GAP_ADTYPE_FLAGS_GENERAL | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,
};
// Create non connectable & non scannable advertising set #3
GapAdv_params_t advParamNonConn = GAPADV_PARAMS_AE_NC_NS;
// Create Advertisement set #3 and assign handle
status = GapAdv_create(&SimplePeripheral_advCallback, &advParamNonConn, &advHandleNCNS);
// Load advertising data for set #3 that is statically allocated by the app
status = GapAdv_loadByHandle(advHandleNCNS, GAP_ADV_DATA_TYPE_ADV,
sizeof(advertData), advertData);
// Set event mask for set #3
status = GapAdv_setEventMask(advHandleNCNS,
GAP_ADV_EVT_MASK_START_AFTER_ENABLE |
GAP_ADV_EVT_MASK_END_AFTER_DISABLE |
GAP_ADV_EVT_MASK_SET_TERMINATED);
// Enable non connectable & non scannable advertising for set #3
status = GapAdv_enable(advHandleNCNS, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0);
// Set Periodic Advertising parameters
GapAdv_periodicAdvParams_t perParams = {PERIDIC_ADV_INTERVAL_MIN,
PERIDIC_ADV_INTERVAL_MAX, 0x40};
status = GapAdv_SetPeriodicAdvParams(advHandleNCNS, &perParams);
GapAdv_periodicAdvData_t periodicDataParams = GAPADV_DATA_PERIODIC_ADV;
status = GapAdv_SetPeriodicAdvData(advHandleNCNS, &periodicDataParams);
// Enable the periodic advertising
status = GapAdv_SetPeriodicAdvEnable(1, advHandleNCNS);
Could you help check this case? Thanks.
Thanks and Regards,
Nick

