无法使用 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。现在可用,当客户端是受信任的设备时。
我目前正在使用 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。现在可用,当客户端是受信任的设备时。