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.

[参考译文] CC2564C:BLE 发现

Guru**** 2779905 points

Other Parts Discussed in Thread: CC2564C

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/841477/cc2564c-ble-discovery

器件型号:CC2564C

  CC2564C BT3.0产品已经大规模生产、发现功能是通过这种方式实现的。 CC2564C 具有按钮输入。 按下后、它将启用300的搜索。 与主机连接后、禁止查找。
   这样、连接的手机就可以直接连接、这会阻止不允许的手机连接到我的蓝牙设备。 如何通过 BLE 实现此类功能、我将使用 SPPLEDEMO。

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

    您好!

    以确保我理解。 您想知道如何在建立与主机的连接后禁用发现? 请确认。

    Jesu

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

    您好,Jesu

    感谢您的回复。

    我们必须执行两个蓝牙模块、一个经典蓝牙模块、一个双模蓝牙模块。

    在经典蓝牙模块(SPPdemo)中、我调用以下 API 实现来启用发现300秒:

     GAP_SET_DISCONIAL_Mode (BluetoothStackID、dmDiscoverGeneralableMode、300);

    配对成功后、我将在 SNV 中存储连接信息,我调用以下 API 来禁用发现:

      GAP_SET_DISCONNICE_Mode (BluetoothStackID、dmNonDiscoverableMode、0);

    这样、成功配对的移动电话仍然可以正常连接到蓝牙设备、

    如果没有配对的移动电话、则无法找到蓝牙设备。

    在双模蓝牙模块,中、我使用 SPPLEDEMO。

    SPPLEDEMO 是 SPP + BLE,在 SPP 模式下、我可以使用上述方法来实现相似的功能,

    如何在 SPPLE 模式下实现上述功能?

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

    您好!

    对拖延表示歉意。 如果您查看 SetDisc 函数、您将看到一个示例、说明如何在 BLE 端管理可发现性。 API 基本上是相同的、但也有 一个 LE_Parameters 参数变量。  只要准备就绪,就将其设置为 dmNonDiscoverableMode。

    Jesu

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

    您好!

    有两个问题:

    1. dmNonDiscoverableMode 不起任何作用, 在 IOS 中使用 lightblue 的测试软件, 请查看以下日志文件:  

    SPP+LE>
    SPP+LE>RegisterSPPLE
    已成功注册 SPPLE 服务。

    SPP+LE>
    SPP+LE>SetDiscoverabilityMode 0
    可发现性:非。

    SPP+LE>

    SPP+LE>SetCBDiscoverabilityMode 0
    可发现性:非。

    SPP+LE>
    SPP+LE>AdvertiseLE 1.
    GAP_LE_Advertising_Enable 成功。

    SPP+LE>
    SPP+LE>
    大小为16的 etLE_Connection_Complete。
    状态:0x00。
    角色:从设备。
    地址类型:随机。
    BD_ADDR:0x49836B1706DF。

    SPP+LE>
    大小为16的 etGATT_Connection_Device_Connection:
    连接 ID:1.
    连接类型:LE。
    远程设备:0x49836B1706DF。
    连接 MTU:23。

    SPP+LE>
    SPP+LE>
    大小为12的 etGATT_Connection_Device_Disconnection:
    连接 ID:1.
    连接类型:LE。
    远程设备:0x49836B1706DF。

    2. IOS 每次都是随机地址,如何使用白名单?

    我想实现这个目标。 每次连接后、我都会将 IOS 蓝牙地址保存到白名单中、

    然后  、我在连接时使用白名单机制(AddertisingParameters.Connect_Request_Filter = fpWhiteList)、以便 IOS 电话无法连接到我的设备

    如果不是白名单。但 IOS 电话连接使用随机地址,每次都会更改该地址。 我可以如何使用白名单机制?

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

    您好!

    尝试将下面的调用添加到 SPPLEDemo.c 中的 SetLEDiscoverabilityMode、并告知我它是否正常工作。

    SetCBDiscoverabilityMode (TempParam); 

    我刚刚测试了它、它对我来说很有用。 问题似乎是、它禁用 BLE 的发现、但不禁用 BT 经典的发现、并且 CLI 不区分用于在两者之间禁用它的命令。  

    请告诉我这是否可以解决您的问题。

    Jesu