使用 Bluez API 将树莓派连接到蓝牙热敏打印机

问题描述 投票:0回答:1

我正在尝试使用

Bluez API
将热敏打印机连接到运行 Raspbian GNU/Linux 12 (bookworm) 的树莓派 4。 到目前为止,我已成功与打印机配对,但现在我很难将 raspi 与其连接。由于打印机使用蓝牙的串行端口配置文件,我设法通过 CLI 使用
rfcomm
与其连接,但我想通过嵌入 django 应用程序中的某种向导以 100% 编程方式完成此操作。

我知道我首先需要配置配置文件,我显然是这样做的:

import dbus
bus = dbus.SystemBus()
device_path = "/org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx"

manager = dbus.Interface(bus.get_object("org.bluez", "/org/bluez"),
                        "org.bluez.ProfileManager1")


manager.RegisterProfile(device_path, "00001101-0000-1000-8000-00805f9b34fb", {})

当我尝试通过

connect()
连接到打印机时,出现以下错误:

dbus.exceptions.DBusException: org.bluez.Error.NotAvailable: br-connection-profile-unavailable

我真的很感谢有关这个问题的一些帮助。

python-3.x printing bluetooth raspberry-pi4 bluez
1个回答
0
投票

按照@ukBaz的好建议,我设法使用

python-sockets
连接到BT4.0打印机:

dongle_addr = xx:xx:xx:xx:xx:xx (MAC-address of bluetooth adapter)
port = 1

s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
s.bind((dongle_addr, port))

try:
    s.connect((printer_addr, port))
    print(f'Device {printer.name} connected')
except Exception as error:
    print(type(error).__name__, error)
    s.close()

s.send(b"Hello World\n")

我根据这里的代码成功连接到BLE打印机。 感谢@ukBaz 的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.