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.

[参考译文] LP-CC2651R3SIPA:谁决定了连接间隔?

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1443117/lp-cc2651r3sipa-who-dictates-the-connection-interval

器件型号:LP-CC2651R3SIPA
主题中讨论的其他器件:SysConfig

工具与软件:

我修改了 Simple_Central 和 Simple_Peripheral 示例以接收/发送通知。 连接成功后、中央设备以100ms 的固定间隔接收通知、但在6秒后 处理 GAP_LINK_PARAM_UPDATE_EVENT、它会显示:

已更新:0xCC037B3D944E、连接超时:6000、连接间隔:800

从那里收到通知的间隔为1秒(800*1.25=1000 )。

我已使用 syscfg 修改了这两个器件的设置以将连接间隔缩短到200ms、它会反映在 ti_ble_config.h 中:

//初始方 PHY 参数

//默认要启动的 PHY
#define DEFAULT_INIT_PHY INIT_PHY_1M

//默认扫描间隔(以0.625ms 为单位)
#define INIT_PHYPARAM_SCAN_INT 16

//默认扫描窗口(以0.625ms 为单位)
#define INIT_PHYPARAM_SCAN_WIN 16.

//默认最小连接间隔(以1.25ms 为单位)
#define INIT_PHYPARAM_MIN_CONN_INT 80

//默认最大连接间隔(以1.25ms 为单位)
#define INIT_PHYPARAM_MAX_CONN_INT 80

//默认连接延迟
#define INIT_PHYPARAM_CONN_LAT 0

//默认监控超时(以10ms 为单位)
#define INIT_PHYPARAM_SUP_TO 2000

//默认 RSSI 轮询周期(以 ms 为单位)
#define DEFAULT_RSSI_PERIOD 3000

//如果自动更新参数、则最小连接间隔(单位为1.25ms)
//请求已启用
#define DEFAULT_UPDATE_MIN_CONN_INTERVAL 160

//如果参数自动更新、则最大连接间隔(单位为1.25ms)
//请求已启用
#define DEFAULT_UPDATE_MAX_CONN_INTERVAL 160

//启用自动参数更新请求时要使用的外设延迟
#define DEFAULT_UPDATE_PERIPHERAL_LATENCY 0

//如果自动更新参数、则监控超时值(单位为10ms)
//请求已启用
#define DEFAULT_UPDATE_CONN_TIMEOUT 3200

但应用程序会忽略它:此外,更改后的连接超时也不会更改。

那么、我如何更改连接间隔?

谢谢!

Dalibor

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

    尊敬的 Dalibor:

    中央设备是最终决定连接参数协商的设备。 如果希望中央设备接受外设请求的连接参数、则可以在 SimpleCentral_processGapMsg 内的 GAP_UPDATE_LINK_PARAM_REQ_EVENT 情况下完成此操作。

    此致、

    1月

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

    尊敬的 Dalibor:

    中央设备是最终决定连接参数协商的设备。 如果希望中央设备接受外设请求的连接参数、则可以在 SimpleCentral_processGapMsg 内的 GAP_UPDATE_LINK_PARAM_REQ_EVENT 情况下完成此操作。

    此致、

    1月

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

    您好、Jan:

    好的、感谢您快速回答。 但是、如果我的中央设备负责、如何防止 它在6秒后更改连接间隔并保留初始值?  

    谢谢!

    Dalibor

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

    尊敬的 Dalibor:

    6秒延迟听起来像是外设发送参数更新的超时。 这可以通过取消选中 simple_peripheral.syscfg 文件中的"Send parameter Update request"按钮来禁用。

    此致、

    1月

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

    您好、Jan:

    我想我们的距离越来越近、但是 "发送参数更新请求"复选框仅在 Simple_Peripheral simple_central.syscfg 上可用、而不在 simple_central.syscfg 上可用。 我已经将其取消选中、但结果是相同的。 我缺少什么?

    请告知:

    Dalibor

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

    尊敬的 Dalibor:

    6秒延迟是否仍在发生? 默认情况下为 simple_central 项目、我认为接受 simple_peripheral 提供的参数。 因此、我猜"发送参数更新请求"功能的6秒超时即将到期、外设正在发送请求、中心设备正在接受请求。 您还可以转到中央代码并使其拒绝任何收到的请求并仅使用自己的参数。

    此致、

    1月

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

    您好、Jan:

    是的、6秒延迟仍在发生。 两种配置文件上的 syscfg 选项必须存在问题:

    - simple_central:没有"发送参数更新请求"复选框、并且所有的计时更改都没有实现

    - simple_peripheral:不允许更改间隔,禁用不起作用,因为有硬编码设置:

    //将参数更新传递给应用程序以供其决定。
    #define DEFAULT_PARAM_UPDATE_REQ_REQ_UPDATE_REQ_PASS_TO_APP

    //将参数更新传递给应用程序以供其决定。
    #define DEFAULT_SEND_PARAM_UPDATE_REQ

    在 ti_ble_config.h 中所做的任何更改都会被手动覆盖。

    我已在 simple_central.c 中进行了更改:

    static bool acceptParamUpdateReq = false;in:

    案例 GAP_UPDATE_LINK_PARAM_REQ_EVENT:

    注释掉了 if (acceptParamUpdateReq)、因此它在拒绝请求时响应 false。

    但是、获取 GAP_LINK_PARAM_UPDATE_EVENT 和时序仍然会发生更改。

    看起来 simple_peripheral 未接受拒绝。

    有什么建议吗?

    谢谢!

    Dalibor

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

    尊敬的 Dalibor:

    - simple_central:没有"发送参数更新请求"复选框并且未实现所有时序更改

    正确。 参数更新请求过程只是外设可以执行的操作。 中央设备不需要请求、因为它在受控设备中。

    - simple_peripheral。:不允许更改间隔、并且禁用操作不起作用、因为存在硬编码设置:

    您是否可以尝试更改"Send Update Request"下的参数值以使用所需的内容?

    在 ti_ble_config.h 中所做的任何手动更改均被覆盖

    这是预期行为、因为该文件由 SysConfig 生成。 但是、如果要按认为合适的方式对该文件进行修改、可以从 SysConfig 生成中排除该文件。 相关说明如下所示:

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_41_00_17/docs/ble5stack/ble_user_guide/html/sysconfig/sysconfig-disable.html

    此致、

    1月

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

    谢谢您、Jan、

    我已将 ti_ble_config.h 从工程中排除、并复制到应用程序目录、在更改后它保持了正确的时间间隔。

    此致、

    Dalibor