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.

[参考译文] LAUNCHXL-CC26X2R1:HCI_LE_SetDefaultPhyCmd ()未被遵守以及文档是否出现拼写错误?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1254397/launchxl-cc26x2r1-hci_le_setdefaultphycmd-not-honoured-and-doc-typo

器件型号:LAUNCHXL-CC26X2R1
主题中讨论的其他器件:CC2642R

您好!

我们在这里的目标是允许1M 或编码但不是2M。  

在初始化时和建立连接之前、我们会调用  

    HCI_LE_SetDefaultPhyCmd(HCI_PHY_USE_PHY_PARAM, HCI_PHY_1_MBPS|HCI_PHY_CODED, HCI_PHY_1_MBPS|HCI_PHY_CODED);

但是、建立连接后、iPhone SE 请求将 PHY 更改为2M、并且该请求被接受(在应用中没有任何此类请求)。 我可以在 Ellisys 蓝牙捕获上看到这一点。  

首先要注意的是、我认为这个文档和源代码的质量都很低。 从`的链接可以看出、` allPhy 可以是 HCI_PHY_USE_PHY_Param 或 HCI_PHY_USE_ANY_PHY。  在任何地方都没有关于这些问题的详细和明确的解释。

实际上、  

https://software-dl.ti.com/lprf/simplelink_cc26x2_latest/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/phy-coded.html#id8 

谁写了这篇文章可能也犯了一个错误?  如果我们要使用给定的参数、这不应该是 HCI_PHY_USE_PHY_PARAM?  

根据下一个示例、我猜我们是否认为 API 是一致的。

我们使用多角色、我看到以下  

这是否意味着、如果我们不希望HCI_LE_SetPhyCmd为连接的器件调用``、则会影响和更改将来可能连接其他器件的默认 PHY、 我们 需要HCI_LE_SetDefaultPhyCmd在以后每次都调用HCI_LE_SetPhyCmd以便"恢复"后续连接的默认 PHY?

谢谢!
杰罗姆  

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

    您好、Jerome、

    感谢您与我们联系。 我们将对此进行研究、并尽快与您联系。 与此同时、您能否向我们提供您正在使用的 SDK 版本?

    此致、

    1月

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

    您好、Jerome、

    如果我可以、您要参考相当旧的文档、我建议参考以下文档: https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/7.10.01.24/exports/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/phy.html

    此外、您可以在此处找到最新的 SDK 版本: https://www.ti.com/tool/download/SIMPLELINK-LOWPOWER-F2-SDK

    当谈到您最初的问题(即强制 CC2642R 使用1M 或编码的 PHY)时、最佳方法实际上是"告诉"其他器件不支持2M PHY。 否则、其他器件可能希望使用 LE 2M PHY、您将不得不切换到它、因为您声称支持它。
    以下是禁用对 LE 2M PHY 的支持的方法:

    • 转到应用程序的初始化函数,然后将 HCI_LE_ReadLocalSupportedFeaturesCmd ();添加到它的最末。
    • 转到 应用程序的 processCmdCompleteEvt 函数、然后将以下情况添加到 switch 语句中
      case HCI_LE_READ_LOCAL_SUPPORTED_FEATURES:
          {
              if (pktStatus == SUCCESS)
              {
                uint8_t featSet[8];
      
                // Get current feature set from received event (bits 1-9)
                // of the returned data
                memcpy( featSet, &pMsg->pReturnParam[1], 8 );
      
                // Clear relevant bit(s) of byte 1 
                CLR_FEATURE_FLAG( featSet[1], LL_FEATURE_2M_PHY );
                // CLR_FEATURE_FLAG( featSet[1], LL_FEATURE_CODED_PHY ); // This one is only if you want to disable LE Coded PHYs too
      
                // Update controller with modified features
                HCI_EXT_SetLocalSupportedFeaturesCmd( featSet );
            }
          }
          break;

    我希望这将有所帮助。

    此致、

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

    感谢克莱门特,我没有意识到 URL 没有指向最新的文档,尽管名称。 此 CLR_FEATURE_FLAG LL_FEATURE_2M_PHY 解决了我们的问题。 谢谢!