背景资料:
1,CC2640R2作为peripheral,开发包为“simplelink_cc2640r2_sdk_1_50_00_58”
2, Central 为RPAs 地址模式,
3, GBM_GATT_NO_CLIENT编译选项为没有定义,即支持CLIENT模式。
操作步骤如下:
1, 当前链接成功后通过如下API获得Central的地址信息并保存。
GAPRole_GetParameter(GAPROLE_CONN_BD_ADDR, bdAddr);
GAPRole_GetParameter(GAPROLE_BD_ADDR_TYPE, &bdAddrType);
2,链接断线若干分钟后通过如下API设置后并广播
uint8_t param = GAP_ADTYPE_ADV_HDC_DIRECT_IND;
GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE, sizeof(uint8_t), ¶m);
GAPRole_SetParameter(GAPROLE_ADV_DIRECT_TYPE, sizeof(uint8_t), &&bdAddrType);
GAPRole_SetParameter(GAPROLE_ADV_DIRECT_ADDR, B_ADDR_LEN, bdAddrr);
param = GAP_FILTER_POLICY_ALL;
VOID GAPRole_SetParameter(GAPROLE_ADV_FILTER_POLICY, sizeof(uint8_t), ¶m);
param = TRUE;
GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8_t), ¶m);
3, 按如上操作不能成功链接最后的Central, 是否还有其他参数配置漏掉或者还需要获取其他参数信息? 是否有涉及再链接时序问题?谢谢
Viki Shi:
首先建议更新到最新版SDK进行测试,然后建议按照如下链接的文档进行广播参数的设置:
dev.ti.com/…/node
bing zhou:
回复 Viki Shi:
谢谢,Viki, 链接描述的通用广播参数设置,使用GAPROLE_ADVERT_ENABLED特定广播的参数设置似乎没有具体描述,另外上述的参数设置是否OK? 当然我会尝试升级到最新版本测试,但我想知道使用GAPROLE_ADVERT_ENABLED广播的正确流程是如何操作。
Viki Shi:
回复 bing zhou:
地址没看到,定向广播地址设置参考下如下代码:
uint8_t advEvType = GAP_ADTYPE_ADV_LDC_DIRECT_IND; GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE, sizeof(uint8_t), &advEvType); uint8_t myFriend[B_ADDR_LEN] = {0x57, 0xE6, 0xD4, 0xF7, 0xB1, 0x34}; // address is 0x34B1F7D4E657 GAPRole_SetParameter(GAPROLE_ADV_DIRECT_ADDR, B_ADDR_LEN, &myFriend);