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.

[参考译文] CC2642R:使用 CC2642R 并与 CC2640R2F 和移动设备(Android/IOS)相连的外设

Guru**** 2535150 points
Other Parts Discussed in Thread: CC2640R2F, CC2642R

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1301159/cc2642r-peripheral-using-cc2642r-connected-with-cc2640r2f-and-mobile-device-android-ios

器件型号:CC2642R
主题中讨论的其他器件:CC2640R2F

大家好!

我有一个项目运行一个外设、有片外负载。 该外设由运行于移动(Android/IOS)设备上的应用进行控制、并且每次仅接受一个连接。  

现在、我需要连接第二个器件(可能是 CC2640R2F)来控制该外设。 我的疑问如下:

外设是否可以同时接受多个连接?

2-如果问题1为真,是否可以使用之前连接的移动应用命令在 CC2640R2F 和 CC2642R 之间建立连接?

在恢复中、我需要同时连接一个 CC2640R2F 和一个移动器件以控制外设。 具有 CC2640R2F 的器件将没有显示功能、因此我认为应使用移动应用来建立连接。

我将感谢您提供的任何建议。 非常感谢。  

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

    您好!

    [报价用户 id="326442" url="~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1301159/cc2642r-peripheral-using-cc2642r-connected-with-cc2640r2f-and-mobile-device-android-ios "]

    外设是否可以同时接受多个连接?

    [/报价]

    可以、可以将单个外围设备连接到多个中央设备。 如果在建立连接后禁用了可连接通告,则需要重新启用这些通告。

    [报价用户 id="326442" url="~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1301159/cc2642r-peripheral-using-cc2642r-connected-with-cc2640r2f-and-mobile-device-android-ios "]

    2-如果问题1为真,是否可以使用之前连接的移动应用命令在 CC2640R2F 和 CC2642R 之间建立连接?

    [/报价]

    这可能有点棘手、但应该可以实现。 您应该启用其中一个器件以多角色(中央+外设)运行。 然后、智能手机设备可以扫描并连接到多角色设备、然后可以使多角色设备扫描并以外设角色连接到第二个设备。 根据设置为特定值的给定特性向多角色项目添加一些逻辑以进行扫描和连接、这将使您能够通过移动应用启动扫描和连接过程。

    此致、

    1月

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

    好的、我喜欢你的方法、但我需要一些帮助。 我将分几部分排除我的疑问,不要在这里混淆。

    在 CC2642R 中重新启用可连接广播的正确方式是什么? 我正在寻找材料、但我没有找到任何与此相关的信息。

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

    您好!

    不用担心! 我强烈建议参考 SimpleLink Academy。 具体而言、 扫描和广告 实验室提供了有关广告如何工作以及如何修改默认广告行为的许多有价值的信息。

    此致、

    1月

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

    大家好、Jan、感谢您的建议。 现在我可以连接到外设、但无法向其写入数据。

    void write(uint8_t value)
    {
        bStatus_t status;
    
        attWriteReq_t req;
    
        req.handle = ???????????
        req.pValue = GATT_bm_alloc(connHandleMap[0].connHandle, ATT_WRITE_REQ, 1, NULL);
        req.len = 1;
        req.pValue[0] = value;
        req.sig = 0;
        req.cmd = 0;
    
        status = GATT_WriteCharValue(connHandleMap[0].connHandle, &req, selfEntity);
        if ( status != SUCCESS )
        {
            GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
        }
    
    }

    在上述代码中、要分配什么 req.handle????? 是 Characteristic 的 UUID?

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

    您好!

    这将是您尝试在 GATT 属性表中写入的属性的句柄。 我强烈建议参考 simple_central 项目、因为该项目在默认情况下已经执行写入、并且该项目是参考代码的好地方。

    此致、

    1月

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

    好的。 我正在为 POC 使用 multi_role 项目。 有一个名为 disInfo 的变量、该变量具有已发现的服务和特征的信息、我可以看到一个我认为属于 simple_peripheral 项目的 char1的句柄。 如何检查每个特征的句柄???

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

    您好!

    有几种不同的方法可以找到句柄、使用哪种方法取决于您执行程序的方式。

    1.如果您想发现每一个特征,那么 GATT_DiscAllPrimaryServices()函数可能是最佳的。

    2.如果您只想发现与某个 UUID 匹配的特征,那么 GATT_DiscCharsByUUID()函数将能够提供该特征。

    3.如果您只想通过 UUID 发现主服务,那么 GATT_DiscPrimaryServiceByUUUEFA()将会很有帮助。

    GATT API 指南中还有一些发现函数: https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_10_02_23/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___a_t_t___g_a_t_t.html#gaa9323c71f318bcf8a1cddad9ac4458ac

    这可能很有用、具体取决于您希望如何组织自己的逻辑。

    此致、

    1月