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:动态供电

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1479475/cc2340r5-tx-power-updation-dynamically

器件型号:CC2340R5
主题中讨论的其他器件:SysConfig

工具与软件:

您好!  

我正在动态更新外围设备的 TX 功率。

在 SysConfig 中、在无线电部分下将其设置为默认 TX 功率值。 在广播参数中、将 TX 功率值设置为0。

仅根据特定条件、我才会将 TX 功率更改为最大值、一旦满足该条件、我就会再次改回为0。

我唯一担心的是、我能够使用以下代码更改广播参数

       uint8_t txPower = 8;
       GapAdv_setParam (GAP_ADV_PARAM_TX_POWER、&txPower);

 但我如何通过代码动态修改 SysConfig 的无线电部分、因为默认情况下它设置为0。

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

    您好、Satakshi、

    感谢您联系我们! SysConfig 在编译时运行、因此它会设置初始值、但是一旦您在运行时(即通过代码)更改该值、就不再需要更改 SysConfig 文件。 因此、通过简单地运行 GAPADV_setParam 函数、您将能够更改 TX Power 的值。 我希望这对您有所帮助!

    此致、

    Tarek

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

    尊敬的 Tarek:

    非常感谢您的澄清。 我还有几个疑问。

    我的代码如下:

    void connectionEventHandler(uint32 event, BLEAppUtil_msgHdr_t *pMsgData)
    {
    gapCbData_t connEvtData = {0};
    switch (event)
    {
    case BLEAPPUTIL_LINK_ESTABLISHED_EVENT:
    {
    connEvtData.evt = BT_EVT_CONNECT;
    connEvtData.error = ERR_SUCCESS;
    pfnGapCb(connEvtData);
    BLEAppUtil_advStop(peripheralAdvHandle_1);
    uint8_t txPower = 8;
    GapAdv_setParam(GAP_ADV_PARAM_TX_POWER, &txPower);
    break;
    }
    case BLEAPPUTIL_LINK_TERMINATED_EVENT:
    {
    Log_message(LOG_INFO, "device is disconnected");
    BLEAppUtil_advStart(peripheralAdvHandle_1, &advSetStartParamsSet_1);
    break;
    }
    default:
    {
    Log_message(LOG_ERROR,"unhandled peripheral event");
    break;
    }
    }
    }

    建立连接后、我更新了 TX 功率、当发生断开时、应该会正确更新 TX 功率、但不会更新。 我在检查时仍然在 NRF 连接应用程序中显示0dBm。 或者说 TX 功率在变化、但由于我在广播数据部分和扫描响应数据部分设置了0、它仍然显示0dBm、但实际上增加了?

    文档中提到它

    @WARNING 要设置此参数、必须@ref GAP_ADV_PARAM_PROPLS
    *设置为包含@ref GAP_ADV_PROP_TX_POWER

    我无法理解如何将 TX 电源包含在 GAP_ADV_PARAM_PROPLS 中。 在 SysConfig 中、我无法执行此操作。 请引导我完成此操作。

    此外、这是通告 TX 功率设置。 连接后、如果我希望在一段时间内保持更高的 TX 功率、我应该使用哪个 API、如何使用? 请引导我、因为我无法理解。

    在您的文档中、我看到了  HCI_EXT_SetTxPowerDbmCmd (int8  txPower、 uint8  fraction)。 请说明我应使用哪个 API 能够在广播期间和连接后正确更改 TX 功率。 我的用例是、当我按下一个给定的按钮时、广播 TX 功率将增加到最大值、与中央设备连接后、它将以最大 TX 功率传输数据、执行命令后、我会在连接和广播时移回默认的0dBm 值。

    此外、无论我使用哪个 API、我都需要停止广播并重新启动它?

    我有下面的代码

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

    您好、Satakshi、

    我相信你在你的 G522403 Adv_Set 函数中缺少一个参数。 您未包括外设广播处理程序。  该函数应如下所示:Adv_Set (clhandle, Adv_Param paramID, void * pValue)  
    有关如何使用此函数和类似函数的更多信息、请参阅 BLE5-Stack API 文档。

    此致、

    Tarek

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

    尊敬的 Tarek:

    您能否确认   仅 HCI_EXT_SetTxPowerDbmCmd (INT8 txPower、uint8 Fraction) API  在广播期间和连接后是否会更改 TX 功率、或者我是否必须在    连接期间同时使用 GWin2000 Adv_Set 和 HCI_EXT_SetTxPowerDbmCmd (INT8 txPower、uint8 Fraction)?

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

    嘿、Satakshi、

    要在广播时更改 Tx 功率、请停止广播、使用 G3824200F Adv_Set 函数更改该值、然后重新启动广播。 我认为广播部分不需要 HCI_EXT_SetTxPowerDbmCmd。 但是、如果您需要更多信息、我在下面提供了这两个函数的 API 文档。 我希望这对您有所帮助!

    https://dev.ti.com/tirex/content/simplelink_lowpower_f3_sdk_8_40_00_61/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___gap_adv.html#ga65020be0895c76efdaf18cb6da791a60
    https://dev.ti.com/tirex/content/simplelink_lowpower_f3_sdk_8_40_00_61/docs/ble5stack/ble_user_guide/doxygen/ble/html/group___h_c_i.html#gaa61487d3db72c8628aa9d529e8de1bed

    此致、

    Tarek

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

    尊敬的 Tarek:

    感谢您的澄清。 更改广播参数对我来说不是问题。 该部件能够正常工作。 我只想确认 HCI 命令是否用于在有效连接期间更改 TX 功率、API 文档中并未提及。

    如何在有源连接期间更改 TX 功率?

    提前感谢。

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

    您好、Satakshi、

    谢谢你的澄清,所以很抱歉的误解! 是的、正确、需要使用  HCI_EXT_SetTxPowerDbmCmd 函数在运行时动态更改 TX 功率的值。 我在下面提供了相关的文档链接:

    https://software-dl.ti.com/simplelink/esd/simplelink_lowpower_f3_sdk/8.40.00.61/exports/docs/ble5stack/ble_user_guide/html/cc23xx/txpower-cc23xx.html#changing-txpower-at-run-time

    我希望这能解答您的问题!

    此致、

    Tarek

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

    尊敬的 Tarek:

    感谢您的澄清。