模拟蓝牙HID:配置蓝牙服务以在配对后重新连接到windows

2024-09-27 04:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在我的Raspberry Pi 3上设置一个蓝牙键盘服务器,但在配对后重新启动服务器时出现自动连接问题。你知道吗

我在这里试图遵循这个要点:https://gist.github.com/ukBaz/a47e71e7b87fbc851b27cde7d1c0fcf0

一切都很好,但我有困难理解如何重新连接配对后,我的RPi(键盘)到我的Win 10电脑。问题是,当重新启动btkbserver.py文件,BT键盘将不会自动重新连接到我的Win 10 PC。解决方法是在PC上关闭BT并再次打开。然后它会连接并正常工作。有人知道我如何更改dbus配置,以便在btk\u服务器必须重新启动时重新连接吗?你知道吗

我尝试使用bluetoothctrl手动连接到我的win10mac地址,但每次都会失败。如果没有人知道这个答案,也许有人能帮我了解我的Win 10 PC正在发送什么到RPi服务器重新连接它?可能有一个windows设置需要更改,所以通过切换蓝牙适配器发出的任何信号都会在一定的时间间隔内自动发生。你知道吗

有人知道更改下面的opts参数是否有好处吗?我正在努力理解我的根本问题是什么。你知道吗

https://gist.github.com/ukBaz/a47e71e7b87fbc851b27cde7d1c0fcf0#file-btk_server-py-L181

     def config_hid_profile(self):
        """
        Setup and register HID Profile
        """

        print('Configuring Bluez Profile')
        service_record = self.read_sdp_service_record()

        opts = {
            'Role': 'server',
            'RequireAuthentication': False,
            'RequireAuthorization': False,
            'AutoConnect': True,
            'ServiceRecord': service_record,
        }

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

        HumanInterfaceDeviceProfile(self.bus,
                                    BTKbDevice.PROFILE_DBUS_PATH)

        manager.RegisterProfile(BTKbDevice.PROFILE_DBUS_PATH,
                                BTKbDevice.UUID,
                                opts)

        print('Profile registered ')

编辑:

我的问题是我通过插座.接受()方法: https://gist.github.com/ukBaz/a47e71e7b87fbc851b27cde7d1c0fcf0#file-btk_server-py-L245

       self.ccontrol, cinfo = self.scontrol.accept()

我能做些什么改变,当我已经配对时插座.接受是否可以与我的Win 10 PC配对而不必在Win 10 PC上切换蓝牙?你知道吗


Tags: pyhttpsselfgithub服务器comserver键盘

热门问题