Skip to contentSkip to conversation

Bluetooth Optical Mouse BM083 and BM013

DISCUSSION Jelle de Jong 2 participants 3 messages Feb 10, 2009 – Feb 11, 2009 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

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"

#1 lore raw

DQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBsaW51eC1ibHVldG9vdGgtb3du ZXJAdmdlci5rZXJuZWwub3JnDQo+W21haWx0bzpsaW51eC1ibHVldG9vdGgtb3duZXJAdmdlci5r ZXJuZWwub3JnXSBPbiBCZWhhbGYgT2YgSmVsbGUgZGUgSm9uZw0KPlNlbnQ6IDIwMDnE6jLUwjEw yNUgMjE6NTcNCj5UbzogQmx1ZVogZGV2ZWxvcG1lbnQNCj5TdWJqZWN0OiBCbHVldG9vdGggT3B0 aWNhbCBNb3VzZSBCTTA4MyBhbmQgQk0wMTMNCj4NCj5UaGlzIG1lc3NhZ2UgY29udGFpbnMgdGhl IGZvbGxvd2luZyBhdHRhY2htZW50KHMpOg0KPkJsdWV0b290aCBPcHRpY2FsIE1vdXNlIEJNMDgz IGFuZCBCTTAxMy50YXIuZ3oNCj4NCj5IZWxsbyBldmVyeWJvZHksDQo+DQo+SSBib3VnaHQgdHdv IG5ldyBibHVldG9vdGggbW91c2VzIGZvciB0ZXN0aW5nIGFuZCBib3RoIGRvIG5vdCB3b3JrDQo+ d2l0aCB0aGUgc2ltcGxlLWFnZW50LnB5IHNjcmlwdC4gV291bGQgc29tZWJvZHkgYmUgd2lsbGlu ZyB0byBmaXggdGhlDQogIFdoeSB5b3Ugd2FudCB1c2Ugc2ltcGxlLWFnZW50IHRvIG1ha2UgbW91 c2Ugd29yaz8NCg0KPmNvbW1hbmQgbGluZSB0b29sIHRvIGNvbm5lY3QgbW91c2VzPyBJIGdvdCB0 aGUgbG9ncyBhbmQgZGV2aWNlDQo+aW5mb3JtYXRpb24gYXR0YWNoZWQgaW4gdGhpcyBtYWlsLg0K ICANCg0KICBNYWtlIHRoZSBtb3VzZSBpbiBwYXJpbmcgc3RhdHVzLCBQZXJoYXBzIGp1c3QgcmVz dCBzb21lIGJ1dHRvbiBpbiBtb3VzZS4NCiAgSGlkZCAtLSBzZWFyY2ggDQogIA0KDQo+DQo+VGhh bmtzIGluIGFkdmFuY2UsDQo+DQo+QmVzdCByZWdhcmRzLA0KPg0KPkplbGxlDQo=

#2 lore raw
Quoted 8 lines · Zhigang
Quoted 7 lines

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

Why 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