Bluetooth Optical Mouse BM083 and BM013
This message contains the following attachment(s):
Bluetooth Optical Mouse BM083 and BM013.tar.gz
Hello everybody,
I bought two new bluetooth mouses for testing and both do not work with the simple-agent.py script. Would somebody be willing to fix the command line tool to connect mouses? I got the logs and device information attached in this mail.
Thanks in advance,
Best regards,
Jelle
#!/usr/bin/python
import gobject
import sys
import dbus
import dbus.service
import dbus.mainloop.glib
class Rejected(dbus.DBusException):
_dbus_error_name = "org.bluez.Error.Rejected"
class Agent(dbus.service.Object):
exit_on_release = True
def set_exit_on_release(self, exit_on_release):
self.exit_on_release = exit_on_release
@dbus.service.method("org.bluez.Agent",
in_signature="", out_signature="")
def Release(self):
print "Release"
if self.exit_on_release:
mainloop.quit()
@dbus.service.method("org.bluez.Agent",
in_signature="os", out_signature="")
def Authorize(self, device, uuid):
print "Authorize (%s, %s)" % (device, uuid)
@dbus.service.method("org.bluez.Agent",
in_signature="o", out_signature="s")
def RequestPinCode(self, device):
print "RequestPinCode (%s)" % (device)
return raw_input("Enter PIN Code: ")
@dbus.service.method("org.bluez.Agent",
in_signature="o", out_signature="u")
def RequestPasskey(self, device):
print "RequestPasskey (%s)" % (device)
passkey = raw_input("Enter passkey: ")
return dbus.UInt32(passkey)
@dbus.service.method("org.bluez.Agent",
in_signature="ou", out_signature="")
def DisplayPasskey(self, device, passkey):
print "DisplayPasskey (%s, %d)" % (device, passkey)
@dbus.service.method("org.bluez.Agent",
in_signature="ou", out_signature="")
def RequestConfirmation(self, device, passkey):
print "RequestConfirmation (%s, %d)" % (device, passkey) confirm = raw_input("Confirm passkey (yes/no): ") if (confirm == "yes"):
return
raise Rejected("Passkey doesn't match")
@dbus.service.method("org.bluez.Agent",
in_signature="s", out_signature="")
def ConfirmModeChange(self, mode):
print "ConfirmModeChange (%s)" % (mode)
@dbus.service.method("org.bluez.Agent",
in_signature="", out_signature="")
def Cancel(self):
print "Cancel"
def create_device_reply(device):
print "New device (%s)" % (device)
mainloop.quit()
def create_device_error(error):
print "Creating device failed: %s" % (error) mainloop.quit()
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object("org.bluez", "/"),
"org.bluez.Manager")
if len(sys.argv) > 1:
path = manager.FindAdapter(sys.argv[1])
else:
path = manager.DefaultAdapter()
adapter = dbus.Interface(bus.get_object("org.bluez", path),
"org.bluez.Adapter")
path = "/test/agent"
agent = Agent(bus, path)
mainloop = gobject.MainLoop()
if len(sys.argv) > 2:
if len(sys.argv) > 3:
device = adapter.FindDevice(sys.argv[2]) adapter.RemoveDevice(device)
agent.set_exit_on_release(False) adapter.CreatePairedDevice(sys.argv[2], path, "DisplayYesNo",
reply_handler=create_device_reply, error_handler=create_device_error)
else:
adapter.RegisterAgent(path, "DisplayYesNo")
print "Agent registered"
mainloop.run()
#adapter.UnregisterAgent(path)
#print "Agent unregistered"
DQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBsaW51eC1ibHVldG9vdGgtb3du ZXJAdmdlci5rZXJuZWwub3JnDQo+W21haWx0bzpsaW51eC1ibHVldG9vdGgtb3duZXJAdmdlci5r ZXJuZWwub3JnXSBPbiBCZWhhbGYgT2YgSmVsbGUgZGUgSm9uZw0KPlNlbnQ6IDIwMDnE6jLUwjEw yNUgMjE6NTcNCj5UbzogQmx1ZVogZGV2ZWxvcG1lbnQNCj5TdWJqZWN0OiBCbHVldG9vdGggT3B0 aWNhbCBNb3VzZSBCTTA4MyBhbmQgQk0wMTMNCj4NCj5UaGlzIG1lc3NhZ2UgY29udGFpbnMgdGhl IGZvbGxvd2luZyBhdHRhY2htZW50KHMpOg0KPkJsdWV0b290aCBPcHRpY2FsIE1vdXNlIEJNMDgz IGFuZCBCTTAxMy50YXIuZ3oNCj4NCj5IZWxsbyBldmVyeWJvZHksDQo+DQo+SSBib3VnaHQgdHdv IG5ldyBibHVldG9vdGggbW91c2VzIGZvciB0ZXN0aW5nIGFuZCBib3RoIGRvIG5vdCB3b3JrDQo+ d2l0aCB0aGUgc2ltcGxlLWFnZW50LnB5IHNjcmlwdC4gV291bGQgc29tZWJvZHkgYmUgd2lsbGlu ZyB0byBmaXggdGhlDQogIFdoeSB5b3Ugd2FudCB1c2Ugc2ltcGxlLWFnZW50IHRvIG1ha2UgbW91 c2Ugd29yaz8NCg0KPmNvbW1hbmQgbGluZSB0b29sIHRvIGNvbm5lY3QgbW91c2VzPyBJIGdvdCB0 aGUgbG9ncyBhbmQgZGV2aWNlDQo+aW5mb3JtYXRpb24gYXR0YWNoZWQgaW4gdGhpcyBtYWlsLg0K ICANCg0KICBNYWtlIHRoZSBtb3VzZSBpbiBwYXJpbmcgc3RhdHVzLCBQZXJoYXBzIGp1c3QgcmVz dCBzb21lIGJ1dHRvbiBpbiBtb3VzZS4NCiAgSGlkZCAtLSBzZWFyY2ggDQogIA0KDQo+DQo+VGhh bmtzIGluIGFkdmFuY2UsDQo+DQo+QmVzdCByZWdhcmRzLA0KPg0KPkplbGxlDQo=
Quoted 8 lines · Zhigang
Quoted 7 lines
This message contains the following attachment(s):
Bluetooth Optical Mouse BM083 and BM013.tar.gzHello everybody,
I bought two new bluetooth mouses for testing and both do not work with the
simple-agent.pyscript. Would somebody be willing to fix theWhy you want use simple-agent to make mouse work?
I would like to be able to configure my system from the command line and documented all steps to get it running. This way I can also automate the process and provide better support. There are tons of reasons why to use the command line.
Quoted 7 lines
Quoted 3 lines
command line tool to connect mouses? I got the logs and device information attached in this mail.
Make the mouse in paring status, Perhaps just rest some button in mouse. Hidd -- search
Using hidd --search is depreciated and insecure, at leased this is tolled to in the past by some developers, so i am not using it. I am also using the latest git and the hidd tool is disabled for compiling by default.
Quoted 7 lines
Quoted 7 lines
Thanks in advance,
Best regards,
Jelle