TI中文支持网
TI专业的中文技术问题搜集分享网站

Resolvable Private Address

我在peripheral.c文件中加入如下代码,使能 Resolvable Private Address模式

stat = GAP_ConfigDeviceAddr(ADDRMODE_PRIVATE_RESOLVE, NULL);

if (stat != SUCCESS)
{
gapRole_state = GAPROLE_ERROR;
}
//Set timeout value to 5 minute
GAP_SetParamValue( TGAP_PRIVATE_ADDR_INT , 5);

我的问题是,本机如何获取这个Resolvable Private Address。

我用这个函数 GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress) 获取到的都是public address, 固定的。

万分感谢!!

linghua liu:

回复 Kevin Qiu1:

Kevin 谢谢

linghua liu:

回复 linghua liu:

还有我想再请教一个问题,peripheral怎么获取center设备的public Address?

linghua liu:

回复 linghua liu:

比如说从机想获取手机安卓端的蓝牙Public 地址。我查询连接的蓝牙设备地址返回的是Private地址

Kevin Qiu1:

回复 linghua liu:

gapEstLinkReqEvent_t *pPkt = (gapEstLinkReqEvent_t *)pMsg;if ( pPkt->hdr.status == SUCCESS )
{
VOID osal_memcpy( gapRole_ConnectedDevAddr, pPkt->devAddr, B_ADDR_LEN );

这取决于central 设备,如果central设备本身用的是public 地址的话,那么得到的肯定就是public 地址。如果用的是random 的话,那么你每次得到都会不一样

linghua liu:

回复 Kevin Qiu1:

也就是说如果central设备使用random地址的话,是无法获取central的public地址,是吗?即使在配对绑定后?
另外,我 调用 extern hciStatus_t HCI_LE_ReadLocalResolvableAddressCmd( uint8localIdAddrType,uint8 *localIdAddr );
读取本机的Random地址,发现根本没有读出来,全是0

linghua liu:

回复 linghua liu:

我是这样使用的
/*获取本机蓝牙地址*///GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);//public addressflag = HCI_LE_ReadLocalResolvableAddressCmd(HCI_RANDOM_DEVICE_ADDRESS, ownAddress);//private resolvable address

Kevin Qiu1:

回复 linghua liu:

如果central设备使用random其他地址的话,用ReadLocalResolvableAddressCmd是无法获取地址的

linghua liu:

回复 Kevin Qiu1:

我想知道的是本机(peripheral)使用的是ramdom地址,如何获取本机当前的Ramdom地址?是自己获取自己当前的Ramdom地址。

Kevin Qiu1:

回复 linghua liu:

Random Device Address分为Static Device Address和Private Device Address,是设备设定后才会有的

可以查一下关于Random Device Address的说明

赞(0)
未经允许不得转载:TI中文支持网 » Resolvable Private Address
分享到: 更多 (0)