尊敬的 TI 专家:
我正在开发 simplelink_cc2640r2_sdk_1_50_00_71 SDK 环境。
我正在尝试使用125kbps PHY 模式的扩展广播在广播包 PDU 上添加自定义值。
使用可连接广播模式时、我可以从 PDU 看到自定义广播值(advertisData)、但正在使用可扫描广播模式、广告值不在该模式上。
我应该更改什么以使用 advertData?
在可扫描模式情况下、有效载荷长度为何不是31?
请参阅以下捕获的以及我的配置。
/**
*远距离、可扫描、广播扩展的默认参数
*
#define GAPADV_PARAMS_AE_LON_RANGE_SCANN_ONLY{ \
.eventProps = GAP_ADV_PROP_scannable、 \
.primIntMin = 160、 \
.primIntMax = 160、 \
.primChanMap = GAP_ADV_CHAN_ALL、 \
.peerAddrType = ADDRTYPE_PUBLIC_OR_PUBLIC_ID、 \
.peerAddr ={0xAA、0xAA、0xAA、0xAA、0xAA、 0xAA}、 \
.filterPolicy = GAP_ADV_WL_POLICE_ANY_REQ、 \
txPower = GAP_ADV_TX_POWER_NO_PRICE_\
.primPhy = GAP_ADV_PRIM_PHY_CODED_S8、 \
secPhy = GAP_ADV_SEC_PHY_CODED_S8、 \
.sid = 0\
}
//广播数据
静态 uint8_t advertData[]=
{
//标志:此字段将设备设置为使用常规可发现功能
//模式(无限期广播)而不是通用模式
//可发现模式(一次广播30秒)
0x02、 //此数据的长度
GAP_ADTYPE_FLAGS、
DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED、
//服务 UUID,通知中央设备包含哪些服务
//中
0x03、 //此数据的长度
GAP_ADTYPE_16BIT_more、 //一些 UUID、但不是全部
LO_UINT16 (XXXPROFILE_SERV_UUID)、
HI_UINT16 (XXXPROFILE_SERV_UUID)、
//服务 UUID,通知中央设备包含哪些服务
//中
0x03、 //此数据的长度
GAP_ADTYPE_16BIT_more、 //一些 UUID、但不是全部
LO_UINT16 (throughput 服务_SERV_UUID)、
hi_uint16 (through_service_serv_UUID)、
0x03、 //此数据的长度
GAP_ADTYPE_16BIT_more、 //一些 UUID、但不是全部
LO_UINT16 (TEMP_SERVICE_SERV_UUID)、
HI_UINT16 (TEMP_SERVICE_SERV_UUID)、
0x05、 //此数据的长度
GAP_ADTYPE_MANUFACTURER_SPECIFIC,
0xFF、
0xFF、
0x00、 // advertData[19]
0x00、 //计数(0至12) advertData[20]
};
//使用远距离参数创建远距离设置#2
GapAdv_params_t advParamLongRange = GAPADV_PARAMS_AE_LON_RANGE_SCANN_ONLY;// GAPADV_PARAMS_AE_LON_RANGE_CONN_USE_S8;// GAPADV_PARAMS_AE_LON_RANGE_SCANN_ONLY;// GAPADV_PARAMS_LEM_LET_ANT_RANGE_ANT_AE_ANT_RANGE_ANT_LLET_RANGE;// GAPADV_ANT_ANT_ANT_ANT_AN
//创建广播集#2并分配句柄
状态= GapAdv_create (&HufBLEPeripheral_advCallback、&advParamLongRange、
advHandleLongRange (&G);
HUFPERIPHERAL_ASSERT (status == Success);
display_printf (dispHandle、sp_row_status_1、0、"将扩展的可连接广播模式设置为#1");
//加载应用静态分配的第2组广播数据
状态= GapAdv_loadByHandle (advHandleLongRange、GAP_ADV_DATA_TYPE_ADV、
sizeof (advertData)、advertData);
HUFPERIPHERAL_ASSERT (status == Success);
//加载由应用静态分配的第2组的扫描响应数据
状态= GapAdv_loadByHandle (advHandleLongRange、GAP_ADV_DATA_TYPE_SCAN_RSP、
sizeof (scanRspData)、scanRspData);
HUFPERIPHERAL_ASSERT (status == Success);
//为组#2设置事件掩码
状态= GapAdv_setEventMask (advHandleLongRange、
GAP_ADV_EVT_MASK_START_AFTER_ENABLE | //*显示 GAP_EVT_ADV_START_AFTER_ENABLE 事件*/
GAP_ADV_EVT_MASK_END_AFTER_DISABLE | //*显示 GAP_EVT_ADV_END_AFTER_DISABLE *
GAP_ADV_EVT_MASK_SET_TERMINATED); //显示 GAP_EVT_ADV_SET_TERMINATED*
//为组#2启用远距离广播
状态= GapAdv_enable (advHandleLongRange、GAP_ADV_ENABLE_OPTIONS_USE_MAX、0);
HUFPERIPHERAL_ASSERT (status == Success);
/**
*远距离、可连接、广播扩展的默认参数
*
#define GAPADV_PARAMS_AE_LON_RANGE_CONN_USE_S8{ \
eventProps = GAP_ADV_PROP_CONNECTABLE、 \
.primIntMin = 160、 \
.primIntMax = 160、 \
.primChanMap = GAP_ADV_CHAN_ALL、 \
.peerAddrType = ADDRTYPE_PUBLIC_OR_PUBLIC_ID、 \
.peerAddr ={0xAA、0xAA、0xAA、0xAA、0xAA、 0xAA}、 \
.filterPolicy = GAP_ADV_WL_POLICE_ANY_REQ、 \
txPower = GAP_ADV_TX_POWER_NO_PRICE_\
.primPhy = GAP_ADV_PRIM_PHY_CODED_S8、 \
secPhy = GAP_ADV_SEC_PHY_CODED_S8、 \
.sid = 0\
}
//使用远距离参数创建远距离设置#2
GapAdv_params_t advParamLongRange = GAPADV_PARAMS_AE_long_range_CONN_Using_S8;// GAPADV_PARAMS_AE_long_range_CONN_Using_S8;// GAPADV_PARAMS_AE_long_range_SCANN_ONLY;// GAPADV_PARAMS_ANT_LLET_RANGE_AD_ANT_AE_ANT_AE_ANT_LLET_RANGE_ANT_RANGE;// GAPADV_ANT_RANGE_ADANT_ANT_AN
//创建广播集#2并分配句柄
状态= GapAdv_create (&HufBLEPeripheral_advCallback、&advParamLongRange、
advHandleLongRange (&G);
HUFPERIPHERAL_ASSERT (status == Success);
display_printf (dispHandle、sp_row_status_1、0、"将扩展的可连接广播模式设置为#1");
//加载应用静态分配的第2组广播数据
状态= GapAdv_loadByHandle (advHandleLongRange、GAP_ADV_DATA_TYPE_ADV、
sizeof (advertData)、advertData);
HUFPERIPHERAL_ASSERT (status == Success);
//加载由应用静态分配的第2组的扫描响应数据
状态= GapAdv_loadByHandle (advHandleLongRange、GAP_ADV_DATA_TYPE_SCAN_RSP、
sizeof (scanRspData)、scanRspData);
HUFPERIPHERAL_ASSERT (status == Success);
//为组#2设置事件掩码
状态= GapAdv_setEventMask (advHandleLongRange、
GAP_ADV_EVT_MASK_START_AFTER_ENABLE | //*显示 GAP_EVT_ADV_START_AFTER_ENABLE 事件*/
GAP_ADV_EVT_MASK_END_AFTER_DISABLE | //*显示 GAP_EVT_ADV_END_AFTER_DISABLE *
GAP_ADV_EVT_MASK_SET_TERMINATED); //显示 GAP_EVT_ADV_SET_TERMINATED*
//为组#2启用远距离广播
状态= GapAdv_enable (advHandleLongRange、GAP_ADV_ENABLE_OPTIONS_USE_MAX、0);
HUFPERIPHERAL_ASSERT (status == Success);




