From c5cd075ab7e84f7222a754cf1bee014d87646f73 Mon Sep 17 00:00:00 2001 From: Hasan Ibraheem Date: Sat, 11 Apr 2020 15:43:14 -0400 Subject: [PATCH 1/2] Make device pairable before trying to pair to switch --- joycontrol/device.py | 7 +++++++ joycontrol/server.py | 2 ++ 2 files changed, 9 insertions(+) diff --git a/joycontrol/device.py b/joycontrol/device.py index 739df5c..f2366bf 100644 --- a/joycontrol/device.py +++ b/joycontrol/device.py @@ -47,6 +47,13 @@ class HidDevice: """ self.properties.Set(self.adapter.dbus_interface, 'Discoverable', boolean) + def pairable(self, boolean=True): + """ + Make adapter pairable + """ + self.properties.Set(self.adapter.dbus_interface, 'Pairable', boolean) + + async def set_class(self, cls='0x002508'): """ Sets Bluetooth device class. Requires hciconfig system command. diff --git a/joycontrol/server.py b/joycontrol/server.py index e4d9fae..8d54140 100644 --- a/joycontrol/server.py +++ b/joycontrol/server.py @@ -75,6 +75,7 @@ async def create_hid_server(protocol_factory, ctl_psm=17, itr_psm=19, device_id= itr_sock.listen(1) hid.powered(True) + hid.pairable(True) # setting bluetooth adapter name and class to the device we wish to emulate await hid.set_name(protocol.controller.device_name()) await hid.set_class() @@ -100,6 +101,7 @@ async def create_hid_server(protocol_factory, ctl_psm=17, itr_psm=19, device_id= # stop advertising hid.discoverable(False) + hid.pairable(False) else: # Reconnection to reconnect_bt_addr From 2d56e38b2bde9f32c73a6f61bc460b3fb4aaace4 Mon Sep 17 00:00:00 2001 From: Robert Martin Date: Sun, 12 Apr 2020 05:08:11 +0900 Subject: [PATCH 2/2] cleanup --- joycontrol/device.py | 1 - joycontrol/server.py | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/joycontrol/device.py b/joycontrol/device.py index f2366bf..f92c0d6 100644 --- a/joycontrol/device.py +++ b/joycontrol/device.py @@ -53,7 +53,6 @@ class HidDevice: """ self.properties.Set(self.adapter.dbus_interface, 'Pairable', boolean) - async def set_class(self, cls='0x002508'): """ Sets Bluetooth device class. Requires hciconfig system command. diff --git a/joycontrol/server.py b/joycontrol/server.py index 8d54140..b6a98af 100644 --- a/joycontrol/server.py +++ b/joycontrol/server.py @@ -76,6 +76,7 @@ async def create_hid_server(protocol_factory, ctl_psm=17, itr_psm=19, device_id= hid.powered(True) hid.pairable(True) + # setting bluetooth adapter name and class to the device we wish to emulate await hid.set_name(protocol.controller.device_name()) await hid.set_class()