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.

[参考译文] CC2340R5:无法获取扫描的器件名称(仅获取 MAC 地址)

Guru**** 2335380 points
Other Parts Discussed in Thread: CC2340R5
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1447493/cc2340r5-unable-to-get-scanned-device-names-getting-only-mac-address

器件型号:CC2340R5

工具与软件:

嗨、团队:

使用 cc2340r5 SDK 8.1和 IDE 12.5

尝试使用 Basic_ble Examples( Observer )获取具有名称的建议报告。

扫描不可连接的设备、Im 正在获取 MAC 地址、但无法获取设备名称。

已参考以下链接、但无法找到解决方案、请帮助我们解决此问题。

谢谢。此致
Chandra Shekar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您调用"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 中找不到任何名称,您能帮助我们吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Abinesh、您好!

    对这里没有回应表示歉意。 由于假期、我们需要更长时间才能联系到您。 您能不能向我展示在调用您的函数时输出是什么样的? 我还想了解您是如何测试的。 广播设备是另一个 CC23xx 器件、还是电话/其他外设? 期待收到您的回复。

    此致!
    Achyut Ray