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.

[参考译文] CC2640R2L:CC2640R2L:在 BTool 上以外围模式播放

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1079888/cc2640r2l-cc2640r2l-play-as-peripheral-mode-on-btool

部件号:CC2640R2L
“Thread:TestCC2640 (线程:测试,CC2640)”中讨论的其它部件

您好,

环境:

SDK:simplelink_cc2640r2_sdk_5_10_00_02

项目: bl5_host_test_cc2640r2lp_app

我想通过 BTool 将 cc2640配置为外设。

以下是我的步骤:

HCIExt_ResetSystemCmd  

2, 与 Peripher-ADDRMODE_PULICE-00:11:22:AA:BB:CC 的 GAP 设备信息

3. Gapadv_create

4. Gapadv_enable

问题1. 我通过 LightBlue 等应用程序找到了该设备,但我不知道什么是可以通过中心连接的 bdaddr。

问题2.  是否可以将 cc2640配置为具有固定自定义 bdaddr 的外设,以与其它中心连接?

问题3. 在 Gapadv_enable step 完成并与 LightBlue 连接后,cc2640不是在广告中自动放置? 汽车广告是否可行?

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

    你好,哈赞,

    [引用 userid="485076" url="~ë/support/wireless-connectivity /蓝牙组/蓝牙/f/Bluetooth-forum/1079888/cc2640r2l-cc2640r2l-play-as peripheral-mode-on"

    问题1. 我通过 LightBlue 等应用程序找到了该设备,但我不知道什么是可以通过中心连接的 bdaddr。

    问题2.  是否可以将 cc2640配置为具有固定自定义 bdaddr 的外设,以与其它中心连接?

    [/引用]

    所用的 BD-ADDR 显示在工具的左侧,即 F0:F8:F2:DA:00:1C。 请参阅  我的同事发布的这篇相关文章,该文章描述了蓝牙 LE 外设的不同地址可能性。 通常,您只需使用所用设备的默认 BD_ADDR/设备 ID,该 ID 是固定的,只要使用公共地址,就不会更改。 如果使用随机地址,则用于连接的地址可能会发生变化。

    [引用 userid="485076" url="~ë/support/wireless-connectivity /蓝牙组/蓝牙/f/Bluetooth-forum/1079888/cc2640r2l-cc2640r2l-play-as peripheral-mode-on"

    问题3. 在 Gapadv_enable step 完成并与 LightBlue 连接后,cc2640不是在广告中自动放置? 汽车广告是否可行?

    [/引用]

    这是预期行为。 要恢复广告,您必须再次明确地调用 Gapadv_enable。 您在此阶段使用 BTOOL 有什么具体原因? 如果您使用 simple_peripheral,则可以添加逻辑以自动恢复广告(默认示例已经这样做了)。

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

    您好,

    当 Gap_DeviceInit 时,我尝试了“随机地址”,但它显示如下:

    如果使用了 sime_peripheral,我可以用任何命令自定义 bdaddr 吗?

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

    您好,  

    我想补充一点。

    默认情况下, 如果我第一次使用以下代码,sime_peripheral 将使用主 bdaddr 进行通告。

    GAP_DeviceInit(GAP_PROFILE_PERIPHERAL, selfEntity, ADDRMODE_PUBLIC, NULL);

    我可以用 cc2640已经发布的任何命令自定义 bdaddr 吗?

    例如,  

    首先禁用广告 ,然后更改 bdaddr,最终启用广告 ?

    我尝试使用此命令,但它不起作用。

    uint8 bdAddress[B_ADDR_LEN] = { 0x00, 0x11, 0x22, 0xAA, 0x55, 0x66 };
    HCI_EXT_SetBDADDRCmd(bdAddress);
    // Set device's Sleep Clock Accuracy
    HCI_EXT_SetSCACmd(40);

    我需要使用自定义的 bdaddr 通告数据包。

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

    嗨,哈赞,

    [引用 userid="485076" url="~ë/support/wireless-connectivity /蓝牙组/蓝牙/f/Bluetooth-forum/1079888/cc2640r2l-cc2640r2l-play-as peripheral-mode-on-in-btool/3998327#3998327"]我曾尝试过“DeviceGap”[当引用随机设备间隙]

    根据您的描述,我认为使用随机地址不是您所需要的。 随机地址是自定义的,但看起来需要 BD-addr 是静态的,而不是随机的。

    [引用 userid="485076" url="~ë/support/wireless-connectivity /蓝牙组/蓝牙/f/Bluetooth-forum/1079888/cc2640r2l-cc2640r2l-play-as peripheral-mode-on"工具/3998587#3998587"]我尝试此命令,但它不起作用/quote/quote.]

    我可以使用 BTOOL 使此命令正常工作。 必须在创建和启用通告集之前调用 SetBDADDRCmd。 如果您已启用广告集,则需要先停止广告,然后再重置 BD_ADDR。 下面是我的 BTOOL 日志,其中显示了我遵循的步骤。

    19] : <Tx> - 12:49:54.021
    -Type           : 0x01 (Command)
    -OpCode         : 0xFC1D (HCIExt_ResetSystemCmd)
    -Data Length    : 0x01 (1) byte(s)
     Type           : 0x00 (0) (Chip Reset)
    Dump(Tx):
    0000:01 1D FC 01 00                                  .....
    --------------------------------------------------------------------
    [20] : <Rx> - 12:49:54.041
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x05 (5) bytes(s)
     Event          : 0x041D (1053) (HCIExt_ResetSystemCmdDone)
     Status         : 0x00 (0) (SUCCESS)
     CmdOpCode      : 0xFC1D (HCIExt_ResetSystemCmd)
    Dump(Rx):
    0000:04 FF 05 1D 04 00 1D FC                         ........
    --------------------------------------------------------------------
    [21] : <Tx> - 12:50:04.515
    -Type           : 0x01 (Command)
    -OpCode         : 0xFE00 (GAP_DeviceInit)
    -Data Length    : 0x08 (8) byte(s)
     ProfileRole    : 0x04 (4) (
                      Peripheral)
     AddrMode       : 0x00 (0) (ADDRMODE_PUBLIC)
     RandomAddr     : 00:00:00:00:00:00
    Dump(Tx):
    0000:01 00 FE 08 04 00 00 00 00 00 00 00             ............
    --------------------------------------------------------------------
    [22] : <Rx> - 12:50:04.535
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x06 (6) bytes(s)
     Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
     Status         : 0x00 (0) (SUCCESS)
     OpCode         : 0xFE00 (GAP_DeviceInit)
     DataLength     : 0x00 (0)
    Dump(Rx):
    0000:04 FF 06 7F 06 00 00 FE 00                      .........
    --------------------------------------------------------------------
    [23] : <Rx> - 12:50:04.551
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x2C (44) bytes(s)
     Event          : 0x0600 (1536) (GAP_DeviceInitDone)
     Status         : 0x00 (0) (SUCCESS)
     DevAddr        : 0C:61:CF:A2:B3:F4
     DataPktLen     : 0x00FF (255)
     NumDataPkts    : 0x05 (5)
     IRK            : 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
     CSRK           : BD:63:54:13:94:06:C4:E1:92:9D:14:C3:3F:03:F9:27
    Dump(Rx):
    0000:04 FF 2C 00 06 00 F4 B3 A2 CF 61 0C FF 00 05 00 ..,.......a.....
    0010:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BD ................
    0020:63 54 13 94 06 C4 E1 92 9D 14 C3 3F 03 F9 27    cT.........?..'
    --------------------------------------------------------------------
    [24] : <Tx> - 12:51:00.875
    -Type           : 0x01 (Command)
    -OpCode         : 0xFC0C (HCIExt_SetBDADDRCmd)
    -Data Length    : 0x06 (6) byte(s)
     BLEAddress     : 11:33:33:44:55:66
    Dump(Tx):
    0000:01 0C FC 06 66 55 44 33 33 11                   ....fUD33.
    --------------------------------------------------------------------
    [25] : <Rx> - 12:51:00.899
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x05 (5) bytes(s)
     Event          : 0x040C (1036) (HCIExt_SetBDADDRCmdDone)
     Status         : 0x00 (0) (SUCCESS)
     CmdOpCode      : 0xFC0C (HCIExt_SetBDADDRCmd)
    Dump(Rx):
    0000:04 FF 05 0C 04 00 0C FC                         ........
    --------------------------------------------------------------------
    [26] : <Tx> - 12:51:06.818
    -Type           : 0x01 (Command)
    -OpCode         : 0xFE3E (GapAdv_create)
    -Data Length    : 0x15 (21) byte(s)
     Properties     : 0x0013 (19) (
                      GAP_ADV_PROP_CONNECTABLE
                      GAP_ADV_PROP_SCANNABLE
                      GAP_ADV_PROP_LEGACY)
     IntervalMin    : 0x0000A0 (160)
     IntervalMax    : 0x0000A0 (160)
     PrimaryChMap   : 0x07 (7) (
                      GAP_ADV_CHAN_37
                      GAP_ADV_CHAN_38
                      GAP_ADV_CHAN_39)
     PeerAddrType   : 0x00 (0) (PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID)
     PeerAddress    : 00:00:00:00:00:00
     FilterPolicy   : 0x00 (0) (
                      AdvFilterPolicy Bit Mask Is Not Set)
     TxPower        : 0x7F (127)
     PrimaryPHY     : 0x01 (1) (GAP_ADV_PRIM_PHY_1_MBPS)
     SecondaryPHY   : 0x01 (1) (GAP_ADV_SEC_PHY_1_MBPS)
     SID            : 0x00 (0)
    Dump(Tx):
    0000:01 3E FE 15 13 00 A0 00 00 A0 00 00 07 00 00 00 .>..............
    0010:00 00 00 00 00 7F 01 01 00                      .........
    --------------------------------------------------------------------
    [27] : <Rx> - 12:51:06.848
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x07 (7) bytes(s)
     Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
     Status         : 0x00 (0) (SUCCESS)
     OpCode         : 0xFE3E (GapAdv_create)
     DataLength     : 0x01 (1)
     Handle         : 0x00 (0)
    Dump(Rx):
    0000:04 FF 07 7F 06 00 3E FE 01 00                   ......>...
    --------------------------------------------------------------------
    [28] : <Tx> - 12:51:09.059
    -Type           : 0x01 (Command)
    -OpCode         : 0xFE3F (GapAdv_enable)
    -Data Length    : 0x04 (4) byte(s)
     Handle         : 0x00 (0)
     EnableOptions  : 0x00 (0) (GAP_ADV_ENABLE_OPTIONS_USE_MAX)
     DurationMaxEvnt: 0x0000 (0)
    Dump(Tx):
    0000:01 3F FE 04 00 00 00 00                         .?......
    --------------------------------------------------------------------
    [29] : <Rx> - 12:51:09.077
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x06 (6) bytes(s)
     Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
     Status         : 0x00 (0) (SUCCESS)
     OpCode         : 0xFE3F (GapAdv_enable)
     DataLength     : 0x00 (0)
    Dump(Rx):
    0000:04 FF 06 7F 06 00 3F FE 00                      ......?..
    --------------------------------------------------------------------
    [30] : <Tx> - 12:51:20.828
    -Type           : 0x01 (Command)
    -OpCode         : 0xFE41 (GapAdv_destroy)
    -Data Length    : 0x01 (1) byte(s)
     Handle         : 0x00 (0)
    Dump(Tx):
    0000:01 41 FE 01 00                                  .A...
    --------------------------------------------------------------------
    [31] : <Rx> - 12:51:20.849
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x06 (6) bytes(s)
     Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
     Status         : 0x00 (0) (SUCCESS)
     OpCode         : 0xFE41 (GapAdv_destroy)
     DataLength     : 0x00 (0)
    Dump(Rx):
    0000:04 FF 06 7F 06 00 41 FE 00                      ......A..
    --------------------------------------------------------------------
    [32] : <Tx> - 12:51:38.544
    -Type           : 0x01 (Command)
    -OpCode         : 0xFC0C (HCIExt_SetBDADDRCmd)
    -Data Length    : 0x06 (6) byte(s)
     BLEAddress     : 11:55:33:44:55:66
    Dump(Tx):
    0000:01 0C FC 06 66 55 44 33 55 11                   ....fUD3U.
    --------------------------------------------------------------------
    [33] : <Rx> - 12:51:38.570
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x05 (5) bytes(s)
     Event          : 0x040C (1036) (HCIExt_SetBDADDRCmdDone)
     Status         : 0x00 (0) (SUCCESS)
     CmdOpCode      : 0xFC0C (HCIExt_SetBDADDRCmd)
    Dump(Rx):
    0000:04 FF 05 0C 04 00 0C FC                         ........
    --------------------------------------------------------------------
    [34] : <Tx> - 12:51:45.584
    -Type           : 0x01 (Command)
    -OpCode         : 0xFE3E (GapAdv_create)
    -Data Length    : 0x15 (21) byte(s)
     Properties     : 0x0013 (19) (
                      GAP_ADV_PROP_CONNECTABLE
                      GAP_ADV_PROP_SCANNABLE
                      GAP_ADV_PROP_LEGACY)
     IntervalMin    : 0x0000A0 (160)
     IntervalMax    : 0x0000A0 (160)
     PrimaryChMap   : 0x07 (7) (
                      GAP_ADV_CHAN_37
                      GAP_ADV_CHAN_38
                      GAP_ADV_CHAN_39)
     PeerAddrType   : 0x00 (0) (PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID)
     PeerAddress    : 00:00:00:00:00:00
     FilterPolicy   : 0x00 (0) (
                      AdvFilterPolicy Bit Mask Is Not Set)
     TxPower        : 0x7F (127)
     PrimaryPHY     : 0x01 (1) (GAP_ADV_PRIM_PHY_1_MBPS)
     SecondaryPHY   : 0x01 (1) (GAP_ADV_SEC_PHY_1_MBPS)
     SID            : 0x00 (0)
    Dump(Tx):
    0000:01 3E FE 15 13 00 A0 00 00 A0 00 00 07 00 00 00 .>..............
    0010:00 00 00 00 00 7F 01 01 00                      .........
    --------------------------------------------------------------------
    [35] : <Rx> - 12:51:45.610
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x07 (7) bytes(s)
     Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
     Status         : 0x00 (0) (SUCCESS)
     OpCode         : 0xFE3E (GapAdv_create)
     DataLength     : 0x01 (1)
     Handle         : 0x00 (0)
    Dump(Rx):
    0000:04 FF 07 7F 06 00 3E FE 01 00                   ......>...
    --------------------------------------------------------------------
    [36] : <Tx> - 12:51:48.304
    -Type           : 0x01 (Command)
    -OpCode         : 0xFE3F (GapAdv_enable)
    -Data Length    : 0x04 (4) byte(s)
     Handle         : 0x00 (0)
     EnableOptions  : 0x00 (0) (GAP_ADV_ENABLE_OPTIONS_USE_MAX)
     DurationMaxEvnt: 0x0000 (0)
    Dump(Tx):
    0000:01 3F FE 04 00 00 00 00                         .?......
    --------------------------------------------------------------------
    [37] : <Rx> - 12:51:48.325
    -Type           : 0x04 (Event)
    -EventCode      : 0x00FF (HCI_LE_ExtEvent)
    -Data Length    : 0x06 (6) bytes(s)
     Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
     Status         : 0x00 (0) (SUCCESS)
     OpCode         : 0xFE3F (GapAdv_enable)
     DataLength     : 0x00 (0)
    Dump(Rx):
    0000:04 FF 06 7F 06 00 3F FE 00                      ......?..
    

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

    您好,

    感谢你的回复。

    如果我想在设备 使用 sime_peripheral (bl5)进行广告时使用另一个特定的 bdaddr 进行广告,我该怎么办?

    以下功能是否正确? “Gapadv_destroy”函数是否必需?  

    int changeAdvBDaddress(){
        uint8 bdAddress[6] = { 0x00, 0x11, 0x22, 0xAA, 0x55, 0x66 };
        bStatus_t status = FAILURE;
        
        GapAdv_destroy(advHandleLegacy,GAP_ADV_FREE_OPTION_ALL_DATA);
        GapAdv_destroy(advHandleLongRange,GAP_ADV_FREE_OPTION_ALL_DATA);
        HCI_EXT_SetBDADDRCmd(bdAddress);
        // Create Advertisement set #1 and assign handle
        status = GapAdv_create(&SimpleSerialSocketServer_advCB, &advParamLegacy,
                               &advHandleLegacy);
        // Create Advertisement set #2 and assign handle
        status = GapAdv_create(&SimpleSerialSocketServer_advCB, &advParamLongRange,
                               &advHandleLongRange);
        //enable advertising
        GapAdv_enable(advHandleLegacy, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0);
        GapAdv_enable(advHandleLongRange, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0);
        return 0;
    }

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

    很明显,我认为你不能用不同的 BD_ADDR 同时发布广告。

    尽管如此,我认为上述逻辑没有问题。 我建议您在结束时试用,看看您的中心是否可以通过新的 BD_ADDR 发现更新后的广告。