无法使用 ZeroC 的 Ice 的 IceBT 插件建立蓝牙连接

Fail to build Bluetooth Connection with IceBT plugin from ZeroC's Ice

我目前正在使用 Ice 和 Python 在两个 Raspberry Pi 4B 之间建立一个 Ice Session。 我已经通过蓝牙工作获得了底层连接/配对,但现在我正在努力连接 Ice 服务器和客户端。当我尝试启动 Ice 服务时,这两个设备已经连接(当它们都不是时它不起作用)。 问题是,客户端在尝试连接时总是超时(大约一分钟后)。我确信我输入了正确的代理字符串,因为当我更改它时,我得到了不同的错误。

我正在尝试从 ZeroC 的网站复制 printer example,仅使用蓝牙,所以这将是我的代码的准系统:

服务器:

   adapter_name = "Printer"

    ice_init_data = Ice.InitializationData()
    ice_init_data.properties = Ice.createProperties()
    ice_init_data.properties.setProperty("Ice.Plugin.IceBT", "IceBT:createIceBT")
    ice_init_data.properties.setProperty(adapter_name + ".Endpoints", f"bt -u {CONST_UUID}")
   
    with Ice.initialize(ice_init_data) as communicator:

        adapter = communicator.createObjectAdapter(adapter_name)

        adapter_identity = communicator.stringToIdentity("Printer")
        adapter.add(PrinterI(), adapter_identity)
        adapter.activate()

        communicator.waitForShutdown()

客户:

ice_init_data = Ice.InitializationData()
ice_init_data.properties = Ice.createProperties()
ice_init_data.properties.setProperty("Ice.Plugin.IceBT", "IceBT:createIceBT") #activate BT

with Ice.initialize(sys.argv, ice_init_data) as communicator:
    base = communicator.stringToProxy(f"Printer:bt -a \"{device_address}\" -u {uuid}")
    printer = Demo.PrinterPrx.uncheckedCast(base)
    printer.printString("Hello World!")


如果有人能给我提示我做错了什么,我将不胜感激:) ZeroC 确实有两个使用 IceBT 的示例,但是查看它们并没有真正的帮助:/

提前感谢您的帮助:)

塞维林

问题是,因为我也在以编程方式进行配对,所以我在那里犯了一个错误。我忘记将新配对的设备标记为受信任,导致了这个timeout-error。现在可用,当客户端是受信任的设备时。