工具与软件:
嗨、团队:
使用 cc2340r5 SDK 8.1和 IDE 12.5
尝试使用 Basic_ble Examples( Observer )获取具有名称的建议报告。
扫描不可连接的设备、Im 正在获取 MAC 地址、但无法获取设备名称。
已参考以下链接、但无法找到解决方案、请帮助我们解决此问题。


This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
您调用"SimpleCentral_getDeviceName"的 API 在 Basic_BLE 上不存在。 您需要创建自己的函数、在 pData 指针处读取数据来获得 dataLen 字节数、并将其转换为您的器件名称。 如果在 BLEAPPUTIL_ADV_REPORT 中设置断点并检查变量视图以查看 pScanRpt 变量、您应该能够看到所选广播器的 pData 和 dataLen 已正确填充。 然后需要将字节转换为字符、并从数据中提取 DEV 名称。
此致!
Achyut Ray
尊敬的 Ray:
我们已经创建了如下函数、用于获取 advt 名称、
/**
*从广播数据中查找设备名称的函数。
*/
bool FindDeviceName (uint8_t * pAdvData、uint8_t advDataLen、char * deviceName、size_t maxLen)
{
uint8_t 索引= 0;
while (index < advDataLen)
{
uint8_t len = pAdvData[index];
if (len == 0 ||(index + len >= advDataLen))
{
break;//格式错误的数据
}
uint8_t type = pAdvData[index + 1];
if (type == 0x09 || type == 0x08)//完整的本地名称或缩写的本地名称
{
uint8_t nameLen = len - 1;//长度不包括类型
如果(nameLen >= maxLen)
{
nameLen = maxLen - 1;//如果 name 太长、则截断
}
memcpy (deviceName、&pAdvData[index + 2]、nameLen);
DeviceName[nameLen]='\0';//空-终止该字符串
返回 true;
}
index +=(len + 1);
}
return false;//未找到器件名称
}
我们在 pAdvData 中找不到任何名称,您能帮助我们吗?