【问题标题】:Write data to Bluetooth device with DBus and Bluez使用 DBus 和 Bluez 将数据写入蓝牙设备
【发布时间】:2021-12-10 06:27:34
【问题描述】:

我需要使用 Python dbus 库通过 DBus 和 Bluez 将数据写入蓝牙设备。

但只知道如何连接和断开设备:

import dbus

system_bus = dbus.SystemBus()
device = system_bus.get_object('org.bluez','/org/bluez/hci0/dev_FF_FF_99_96_64_60')
object = dbus.Interface(device, dbus_interface='org.bluez.Device1')
object.Connect()

object.Disconnect()

这是来自 DFeet 应用程序的方法描述:

<method name="WriteValue">
    <arg name="value" type="ay" direction="in"/>
    <arg name="options" type="a{sv}" direction="in"/>
</method>

更新:添加了写入转换字节的代码

import dbus
import binascii

system_bus = dbus.SystemBus()
device = system_bus.get_object('org.bluez','/org/bluez/hci0/dev_FF_FF_99_96_64_60')
object = dbus.Interface(device, dbus_interface='org.bluez.Device1')
object.Connect()

device_2 = system_bus.get_object('org.bluez','/org/bluez/hci0/dev_FF_FF_99_96_64_60/service000c/char000d')
object_2 = dbus.Interface(device_2, dbus_interface='org.bluez.GattCharacteristic1')

#bytes = dbus.ByteArray(binascii.unhexlify("025a06000000"))
bytes = binascii.unhexlify("025a06000000")

object_2.WriteValue(bytes,{})

object.Disconnect()

【问题讨论】:

  • 这是蓝牙 LE 设备还是蓝牙经典设备?假设它是 BLE,您需要找到要写入的 GattCharacteristic1 接口的 DBus 路径。更多信息可能对您有帮助:stackoverflow.com/a/63751113/7721752
  • @ukBaz 是的,它是 BLE。我已经找到了路径和接口,我的核心问题是如何准备字节或字节数组(例如“025a06000000”)并发送它。
  • 您可能想要更新您的问题,显示您如何进行写入以及如何转换为字节。对于您在此处给出的示例:binascii.unhexlify("025a06000000") = b'\x02\x5a\x06\x00\x00\x00'
  • @ukBaz 感谢您的回答。添加了写入命令,但不确定是“bytearray”还是“unhexlify”的结果。我会尽快使用 BtleJuice 框架进行检查。

标签: python bluetooth dbus bluez


【解决方案1】:

经过 BtleJuice 框架的一些测试可以确认这足以发送字节:

bytes = binascii.unhexlify("025a06000000")
object_2.WriteValue(bytes,{})

在这样描述的方法中:

<method name="WriteValue">
    <arg name="value" type="ay" direction="in"/>
    <arg name="options" type="a{sv}" direction="in"/>
</method>

至少它在我的情况下有效。

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2014-08-29
    • 2019-08-02
    • 2014-04-23
    • 2017-08-12
    • 2020-03-08
    • 2016-02-16
    • 2014-03-06
    相关资源
    最近更新 更多