如何使用 dbus/bluez 在 python 中获取当前 MTU

Posted

技术标签:

【中文标题】如何使用 dbus/bluez 在 python 中获取当前 MTU【英文标题】:how to get the current MTU in python using dbus/bluez 【发布时间】:2018-05-19 23:17:25 【问题描述】:

有没有办法使用 dbus bluez 在 python 中获得当前客户端连接的 MTU?

如果我看btmon我可以看到连接后的值(503):

# btmon | grep MTU
  ATT: Exchange MTU Request (0x02) len 2
    Client RX MTU: 517
  ATT: Exchange MTU Response (0x03) len 2
    Server RX MTU: 517
  ATT: Exchange MTU Request (0x02) len 2
    Client RX MTU: 503
  ATT: Exchange MTU Response (0x03) len 2
    Server RX MTU: 517

但是在 dbus.bluez api 中似乎没有这个值的句柄

有什么想法吗?

【问题讨论】:

我没有见过这样的东西,但你可以尝试使用实验性的 WriteValue 方法,它返回原始文件描述符和 MTU。见git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/… 看起来是一个非常有用的文档!谢谢 【参考方案1】:

Bluez 不会在 dbus api 上公开 MTU 大小。但是,此信息在选项参数中的读取、写入等回调中给出。

        Methods     arraybyte ReadValue(dict options)

        Issues a request to read the value of the
        characteristic and returns the value if the
        operation was successful.

        Possible options: "offset": uint16 offset
                  "mtu": Exchanged MTU (Server only)
                  "device": Object Device (Server only)

【讨论】:

以上是关于如何使用 dbus/bluez 在 python 中获取当前 MTU的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spark 中使用 Python 查找 DataFrame 中的分区数以及如何在 Spark 中使用 Python 在 DataFrame 中创建分区

我如何在 Python 中使用 GCP 枚举?

如何在 python 脚本中使用 awscli?

如何在python中使用nice命令?

如何在 Python 中使用 Selenium?

如何在Python中使用textcat?